Arduinobasierter DIY Zubehördecoder V7.1.2 freigegeben

#1 von MicroBahner , 06.01.2017 22:03

Hallo,
der eine oder andere kennt vielleicht meinen Thread zu den MobaTools. Dort habe ich einige Demo's vorgestellt, wie man diese Library einsetzen kann. U.a. auch einen DCC-Zubehördecoder.
Dieser Decoder hat inzwischen ein Stadium erreicht, das über eine Demo zur Anwendung der MobaTools doch deutlich hinausgeht. Wer gerne etwas Elektronik-Bastelei betreibt und Grundkenntnisse im Arduino-System hat sollte ihn zum Laufen bringen. Wirklich Programmieren muss man nicht, um ihn einsetzen zu können. Deshalb möchte ich ihn hier im Digital-Forum vorstellen. Vielleicht interessiert sich doch der eine oder andere dafür.

Eigenschaften (Version 7.1):

  • DCC Zubehördecoder für bis zu 12 aufeinanderfolgende Adressen (abhängig von den verfügbaren Digitalausgängen)
  • CV-programmierbare Parameter
  • Ab V7.0: neue Aufteilung der CV's / 10 CV je Funktion
  • Ansteuerung von Servos ( optional auch mit Relaisansteuerung zur Polarisierung )
    Die Endlagen der Servos können mit einem Drehencoder justiert werden.
  • logische Kopplung von 2 Servos für 3-begriffige Formsignale
  • 1 Servo über 2 Adressen um 4 Positionen anzusteuern
  • 2 Servo über 1 Adresse mit getrennter Endlagen und Geschwindigkeitseinstellung ( neu ab V7.0 )
  • Impuls-Funktion für Servos ( automatische Rückkehr in die Ruhelage )
  • Ansteuerung von Doppelspulenantrieben
  • einfaches Schalten von Ausgängen (z.B. für Beleuchtungen)
  • Funktionen zur Lichtsignalansteuerung
  • Signalbilder mit blinkenden Led's ( neu ab V7.0 )
  • Funktionen für Vorsignale
  • Vorsignale am gleichen Mast wie das Hauptsignal können dunkelgeschaltet werden, wenn das Hauptsignal Hp0 oder Hp00 zeigt.
  • Vorsignalen kann eine alternative Adresse zugewiesen werden. Damit können sie parallel mit dem zugehörigen Hauptsignal geschaltet werden.
  • Der Zubehördecoder läuft auch auf den STM32F1 Prozessoren ( Mit dem core von Roger Clark )
  • Der Decoder kann auch mit LocoNet betrieben werden. Die Umschaltung DCC/LocoNet wird über ein #define in der Datei 'interface.h' festgelegt.
  • Der Decoder kann wahlweise ( parallel zu DCC/LocoNet ) auch über die serielle Schnittstele gesteuert werden ( neu ab V7.0 )
  • Ab V7.1: Neue Funktionalität bei FCOIL, um die Ausgänge komplett unabhängig über DCC steuern zu können ( keine Verriegelung)
  • Ab V7.1: neu FSTATIC3 - bis zu 3 Ausgänge können individuell angesteuert werden ( statisch/blinken, hart/soft, invertiert, Blinkfrequenz )

Die verwendeten Funktionen und die Zuordnung zu den Digitalausgängen des Arduino werden in einer Parameterdatei festgelegt. Dort werden auch die Initialwerte für die CV'S definiert.
Ein Decoder kann eine beliebige Kombination der unterstützten Funktionen enthalten. Die Begrenzung liegt in der Zahl der verfügbaren Digitalausgänge.

Weitere Details können dem Manual und den Release-Notes entnommen werden. Das Manual enthält auch Beispielschaltbilder und die Beschreibung des Lichtsignaldecoders.

V7.1.1 enthält 'nur' einen Bugfix in der DCC_Zubehoerdecoder.h, der dazu führte, dass standardmäßig immer eine Beispieldatei statt der konfiguration in der DCC_Zubehoerdecoder.h geladen wurde.
V7.1.2 enthält einen Bugfix wenn einem Servo 2 Relaisausgänge zugeordnet waren. Nach Reset bis zum ersten Weichenbefehl waren beide Relais angezogen.

Neueste Version 7.1.2

Version 6 ( mit alter CV-Aufteilung ) V6.3.0
- für den Decoder mit DCC-Interface ist die NmraDCC Lib ab Version 1.1.4 notwendig


Um den Sketch übersetzen zu können, werden noch 2 Libraries benötigt: die MobaTools, und die nmraDCC-Library. Beide Bibliotheken lassen sich über den Bibliotheksverwalter installieren ( was sich grundsätzlich empfiehlt, da die Masterversionen auf GitHub noch vorab Entwicklungsstände sein können).


Wer Fragen oder Anregungen zu dem Decoder, oder Probleme damit hat, kann sich gerne hier melden ;)
Wer Fehler findet, kann sie ebenfalls hier oder direkt in GitHub melden


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


PeetBr1, burgheim, khbury, h0-m-jk und 423Moba haben sich bedankt!
 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog

zuletzt bearbeitet 11.08.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#2 von Siki , 06.01.2017 22:26

Hi,

Wenn ich mir das so anschaue kann ich den auch als Signaldecoder Programmieren oder? Ein Relais mit ansteuern für Zugbeiflussung sollte ja auch möglich sein oder? Funktioniert das auch mit der CS2? Welche Arduinos kann man damit verwenden? Uno, Mega, Micro, Pro Micro, Nano, Pro Mini etc? Einen Arduino programmieren bekomme ich hin, aber mit dcc Signalen kenne ich mich überhaupt nicht aus ):
Daher meine Frage:
- Wie muss ich vorgehen, damit ich die DCC-Adresse festlegen kann im Sketch?
- Wie frage ich den Zustand eine Adresse ab?
Noch was zur Hardware, sehe ich das richtig eine Separate Stromversorgung für den Arduino und das daran angeschlossene ist nicht nötig?

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#3 von MicroBahner , 06.01.2017 23:11

Hallo Simon,
als Signaldecoder für Lichtsignale ist das bisher nicht vorgesehen. Da bräuchte man auch recht viele PWM-fähige Ausgänge, um das Überblenden realistisch hinzubekommen.
Der Decoder reagiert auf DCC-Zubehörbefehle im einfachen Format. Das sind die Standard-Weichenbefehle der Zentralen. Das erweiterte Format wird nicht unterstützt.
Auf den von Dir genannten Arduinos sollte der Decoder laufen.

Zitat von Siki
Wie muss ich vorgehen, damit ich die DCC-Adresse festlegen kann im Sketch?

Die DCC-Adresse kann direkt im Konfigurationsfile festgelegt werden. Oder man legt sie bei der Inbetriebnahme im Programmiermodus fest. Da wird die erste empfangene DCC-Adresse zur Basisadresse des Decoders.

Zitat von Siki
Wie frage ich den Zustand eine Adresse ab?

Die kannst die CV-Adresse auslesen, in der der Zustand gespeichert ist. Überlicherweise erkennt man den Zustand aber ja auch an den Ausgängen (Servoposition, Relaisausgang ...

Zitat von Siki
Noch was zur Hardware, sehe ich das richtig eine Separate Stromversorgung für den Arduino und das daran angeschlossene ist nicht nötig?

Im Schaltbild ist jetzt mal eine 12V Versorgung für die Relais und den Arduino vorgesehen. Angeschlossene Servos kannst Du mit den intern erzeugten 5V nicht betreiben, die brauchen eine eigene Versorgung. Schliesst Du direkt Leds an den ULN2003 an, können die auch z.B. mit den 12V versorgt werden.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#4 von Siki , 06.01.2017 23:38

Mit dem Zustand dr Adresse meinte ich eigentlich wie ich beim Arduino erkenne was geschalten wurde demnach wenn er z.b eine Adresse 200 hat ob diese auf rot oder grün steht. Kann er auch mehrere adresse abfragen sprich kann ich ihm die adresse 200,201,202,204 zuordnen? Das Überblenden spielt nicht eine Hauptrolle, sprich ein normales digitalHIGH würde auch mal ausreichen und dies kann ja auf jedem Pin ausgegeben werden. Ich würde den decoder ausschliesslich für Led-Signale und pro Hauptsignal ein Relais zum Stromlos schalten einsetzen.

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#5 von MicroBahner , 07.01.2017 09:25

Zitat von Siki
Mit dem Zustand dr Adresse meinte ich eigentlich wie ich beim Arduino erkenne was geschalten wurde demnach wenn er z.b eine Adresse 200 hat ob diese auf rot oder grün steht.

Dannn musst du halt direkt am jeweiligen Arduino-Ausgang noch eine Led spendieren.

Zitat von Siki
Kann er auch mehrere adresse abfragen sprich kann ich ihm die adresse 200,201,202,204 zuordnen?

Ja, das geht. Allerdings müssen die Adressen unmittelbar aufeinander folgen. Du konfigurierst die Basis-Adresse des Decoders. Wenn Du nun z.B. insgesamt 8 Funktionen konfiguriert hast, so belegen die die Basisadresse und die 7 darauf folgenden.

Zitat von Siki
Ich würde den decoder ausschliesslich für Led-Signale und pro Hauptsignal ein Relais zum Stromlos schalten einsetzen.

Für einfache rot/grün Blocksignale ohne Überblenden kannst Du den Decoder schon verwenden. Das Relais schliesst Du dann z.B. parallel zur grünen Led an. Mit einer 2. Adresse sollte dann auch noch eine gelbe Led für 'Langsamfahrt' schaltbar sein.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#6 von fbstr , 07.01.2017 11:32

Hervorragendes Timing! Ich will in den nächsten 2 Wochen für meine Regalbahn den Arduino (bzw. 2 davon) verwenden um 9 Weichen mittels Servo zu schalten, sowie 11 Entkuppler (wo ich aber noch nicht weiß ob ich mir die REPA-Spulenteile zulege oder versuche über SG90-Servos was zu basteln.
Vielen Dank für Deine klasse Arbeit!


Gruss
Frank
---------------------------------------------------------------------------------------------------------------------
MobaLedLib Wiki
Projekt "Bahnpark Augsburg"
Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen


 
fbstr
Metropolitan (MET)
Beiträge: 2.510
Registriert am: 28.08.2016
Ort: Stuttgart
Gleise Peco Code 75, Trix C
Spurweite H0, H0e
Steuerung YD7001, MobaLedLib, MirZ21, Lenz LZV100
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#7 von Siki , 08.01.2017 11:19

Hallo nochmals,

Sehe ich das richtig, dass wenn ich den Decoder für etwas anderes gebrauchen möchte, muss ich mit dem Arduino Programm nur die DCC_Zubehoerdecoder.h verändern? Sehe ich das richtig, dass dort die erste DCC-Adresse angegeben ist (In deinem Sketch = 17) und dann einfach die 7 nachfolgenden auch verwendet werden (können)?
Und das man damit die Funktion der Adresse bestimmt:

1
2
3
4
5
 

const byte iniTyp[] = { FSERVO, FSERVO, FSERVO, FSERVO, FSTATIC, FSTATIC, FCOIL };
const byte out1Pins[] = { A0, A1, 11, 12, 7, 8, 10 }; // output-pins der Funktionen
const byte out2Pins[] = { 3, 5, 6, NC, NC, NC, 9 };
 
 


Stimmt das so Schaltzustand 1 schaltet "out1Pins" und Schaltzustand 2 "out2Pins"? Um ein Signal zuschaltet müsst ich wohl "FSTATIC" einsetzten bei "iniTyp". Kann man auch bei den out1Pins/out2Pins 2 Ausgänge einer Funktion zuordnen und Ausgänge doppelt verwenden? (Ich weiss noch nicht genau wiedie CS2 schaltet aber es ist möglich 4 Fahrbegriffe im Layout mit einem Symbol zuschalten, d.h. die Funktion belegt 2 Adressen = 4 Schaltzustände, aber es ist immer nur einer Aktiv --> Da ich SBB-Signale schalten würde müsste ich kombinationen haben wie grün1, grün1-gelb, rot, grün1-grün2). Da ich ja auch noch einen Stoppbereich mitschalten möchte, kann man ja einfach ein Monostabiles 5V-Relais nehmen, welches ohne Strom geschlossen ist und wenn man auf Rot schaltet öffnet.
Hier kann man noch festlegen wie die Funktion funktioniert richtig?

1
2
3
4
5
6
 

const byte iniFmode[] = { SAUTOOFF, SAUTOOFF, SAUTOOFF, 0, 0, 0, CAUTOOFF };
const byte iniPar1[] = { 0, 0, 0, 0, 0, 0, 100 };
const byte iniPar2[] = { 180, 180, 180, 180, 0, 0, 50 };
const byte iniPar3[] = { 8, 8, 8, 0, 0, 0, 0 };
 
 


Was müsste man hier angeben, damit unter FSTATIC je nach Schaltzustand der eine Ausgang konstant aktiv ist (vielleicht noch während dem Schalten auf und abblendet?) Einfach alles mit nullen füllen?

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#8 von MicroBahner , 08.01.2017 21:53

Hallo Simon,
also eigentlich sieht Du das alles schon ziemlich richtig

Zitat von Siki
Sehe ich das richtig, dass wenn ich den Decoder für etwas anderes gebrauchen möchte, muss ich mit dem Arduino Programm nur die DCC_Zubehoerdecoder.h verändern?

Solange Du die Funktionalität nicht über das bisher programmierte hinaus erweitern willst, ist das richtig so.

Zitat von Siki
Sehe ich das richtig, dass dort die erste DCC-Adresse angegeben ist (In deinem Sketch = 17) und dann einfach die 7 nachfolgenden auch verwendet werden (können)?

Auch das ist richtig. Wobei die Zahl der nachfolgenden Adresse nicht unbedingt fest 7 ist, sondern davon abhängt, wieviele Weichenadressen (=Funktionen) du in der Tabelle definiert hast.
Die erste DCC-Adresse lässt sich auch später bei der Inbetriebnahme noch ändern, da sie ja als CV gespeichert wird und damit veränderbar ist.

Zitat von Siki
Und das man damit die Funktion der Adresse bestimmt:

Genau das ist die Tabelle, die die Funktionen bestimmt (und die auch bestimmt, wieviel Adressen der Decoder belegt).

Zitat von Siki
Stimmt das so Schaltzustand 1 schaltet "out1Pins" und Schaltzustand 2 "out2Pins"? Um ein Signal zuschaltet müsst ich wohl "FSTATIC" einsetzten bei "iniTyp".

Wenn Du als iniTyp FSTATIC einsetzt, ist das genau so. Wobei Du nicht unbedingt beide Pins nutzen musst. Wenn Du in der unteren Zeile "NC" einträgst belegst Du nur einen Pin, der dann je nach Schaltzustand HIGH oder LOW ist. Ordnest Du der Adresse 2 Pins zu, dann schalten die im Gegentakt.

Zitat von Siki
Kann man auch bei den out1Pins/out2Pins 2 Ausgänge einer Funktion zuordnen und Ausgänge doppelt verwenden?

Das geht nicht. Die Zuordnung der Pins zu den Funktionen muss eindeutig sein. Wenn Du denselben Pin bei 2 unterschiedlichen Funktionen (=Weichenadressen) einträgst wird ein wenig Durcheinander entstehen

Zitat von Siki
(Ich weiss noch nicht genau wiedie CS2 schaltet aber es ist möglich 4 Fahrbegriffe im Layout mit einem Symbol zuschalten, d.h. die Funktion belegt 2 Adressen = 4 Schaltzustände, aber es ist immer nur einer Aktiv

Hier hast Du genau die Einschränkung, dass der Decoder (noch? ) nicht als Signaldecoder ausgelegt ist. Er kennt keine Abhängigkeiten/Logiken zwischen den Weichenadressen. Jede Weichenadresse schaltet für sich, unabhängig von den anderen. Wenn Du diese Funktionalität der CS2 abbilden willst, dass von 4 Schaltzuständen nur einer aktiv ist, musst Du das mit externer HW abbilden. Das lässt sich aber ganz einfach mt einem 74HC139 Baustein machen. Dann ordnest du jeder der 2 Weichenadressen nur einen pin zu, und diese beiden pins verbindest Du mit dem Eingang des HCT139. Der setzt das dann auf 4 Ausgänge um, von denen immer nur einer aktiv ist. Wobei ein IC zwei solche 'Umsetzer' enthält - also für 2 Signale taugt. Da Du dann nur einen Ausgangspin pro Weichenadresse brauchst, kannst Du auch mehr als 8 Weichenadressen definieren und damit mehr als 4 Signale steuern ( Mit einem Arduino Nano müssten 6 Signale möglich sein).

Zitat von Siki
Da ich ja auch noch einen Stoppbereich mitschalten möchte, kann man ja einfach ein Monostabiles 5V-Relais nehmen, welches ohne Strom geschlossen ist und wenn man auf Rot schaltet öffnet.

Das sollte kein Problem sein.

Zitat von Siki
Was müsste man hier angeben, damit unter FSTATIC je nach Schaltzustand der eine Ausgang konstant aktiv ist (vielleicht noch während dem Schalten auf und abblendet?) Einfach alles mit nullen füllen?

Das mit dem auf- und abblenden funktioniert ja noch nicht. Ansonsten ist es richtig, dass Du bei FSTATIC hier überall 0 reinschreiben musst. Dann werden die Ausgänge einfach statisch - je nach Schaltzustand - gesetzt.

N.B. Wenn Du die 'Tabelle' zur Konfiguration der Weichenadressen änderst, musst Du darauf achten, dass in allen Zeilen die gleiche Anzahl von Werten steht. Am besten macht man es so wie im Beispiel, dass die jeweils zugehörigen Werte immer schön untereinander stehen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#9 von Uwe HAL , 09.01.2017 07:37

Hallo Franz-Peter,

auch wenn es schon eine Weile her ist, aber zuerst möchte ich dir noch ein etwas verspätetes aber deswegen nicht weniger erst gemeintes gesundes und glückliches Jahr 2017 wünschen.

Ich verfolge deinen Moba-Tools-Thread von Anbeginn und bin immer noch schwer begeistert von den Möglichkeiten. Dem daraus entstandenen Zubehördecoder nun einen eigenen Beitrag zu spendieren finde ich SUPER Ich werde auch hier unbedingt dranbleiben und hin und wieder auch mal meinen Senf dazu geben. Im Moment wollte ich nur mal fix einen Fuß in die Tür stellen und habe das Thema abboniert

Liebe Grüße Uwe


Liebe Grüße aus Niemberg bei Halle (S) :D

Hier geht's zu meiner Anlage: http://stummiforum.de/viewtopic.php?f=64&t=140522


 
Uwe HAL
InterRegio (IR)
Beiträge: 114
Registriert am: 06.05.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#10 von Siki , 09.01.2017 13:25

Hallo nochmals,

Spricht etwas dagegen in der Schaltung bei den Optokopplern den BC556 durch einen BC557 zu ersetzten?

Was ist ein Drehencoder mit Taster? Ein Potentiometer? Da der Drehencoder laut Anleitung für die Servo, einstellung Verwendet wird, kann ich den weglassen, da ich ja nur die Statischefunktion benötigen werde. Sprich ich bau zwar die Widerstände R6, R7 und R8 ein, aber kein Dreh Encoder (J1).

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#11 von MicroBahner , 09.01.2017 18:38

Zitat von Siki
Spricht etwas dagegen in der Schaltung bei den Optokopplern den BC556 durch einen BC557 zu ersetzten?

Nein, der Transistor dort ist recht unkritisch, da lässt sich fast jeder pnp Kleinsignaltransistor verwenden.

Zitat von Siki
Was ist ein Drehencoder mit Taster? Ein Potentiometer?

Von der Bedienung ähnlich wie ein Potentiometer, nur ohne Anschlag. Technisch aber ganz anders. Du hast mit großer Wahrscheinlichkeit so was schon bedient - die Dinger werden in vielen Geräten auch im Haushalt verbaut. Wenn Du einen Knopf hast, an dem Du endlos drehen kannst um was einzustellen, und Du beim Drehen so leichte Rastungen spürst, bedienst Du einen Drehencoder. Da sind 2 Schalter drin, die sich beim Drehen leicht zeitversetzt öffnen und schließen.
Manche haben noch einen Taster eingebaut, wenn man auf den Drehknopf drückt. Die gleiche Funktionalität kann man aber auch mit einem getrennten Taster erreichen.
Es ist richtig, dass Du den nicht brauchst, da Du keine Servos anschließt. Da man ihn auch für die Servos nur zum Einstellen braucht, würde ich ihn immer als kleine getrennte Platine aufbauen, die nur zum Einstellen angesteckt wird - da reicht dann auch für mehrere Decoder eine aus. Die kannst Du dir ganz sparen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#12 von MicroBahner , 09.01.2017 22:45

Jetzt will ich doch eben mal auch meine anderen Besucher begrüßen

Hallo Frank,
ist ja klasse, wenn das zeitlich für dich so super passt. Manchmal treffen auch die Zufälle ins Schwarze .
Würde mich freuen von den Ergebnissen zu hören bzw. zu lesen

Hallo Uwe,
die Wünsche gebe ich gerne zurück. Mit dem Gedanken, einen eigenen Thread für den Decoder zu eröffnen schlage ich mich ja schon länger herum. Freut mich, dass es deine Zustimmung findet - und dein Senf ist immer willkommen


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#13 von MicroBahner , 11.01.2017 09:50

Hallo,
die Rückfragen von Simon bezüglich der Funktion als Signaldecoder haben mich ein wenig grübeln lassen .
Nun habe ich mir überlegt, wie man sowas umsetzen könnte und möchte Euch meine Ideen vorstellen. Der Decoder soll ja nur Dinge können, die dann bei Euch auch sinnvoll einsetzbar sind. Ich könnte mir vorstellen das folgendermaßen umzusetzen:

Es gibt eine neue Funktion FSIGNAL2 bzw. FSIGNAL3. Damit werden 2 bzw 3 aufeinanderfolgende Zubehöradressen als eine 'Signalansteuerung' zusammengefasst. Daraus ergeben sich 4 bzw 8 Zustände, die über die Kombination der Zubehöradressen angewählt werden können.
Entsprechend der bisherigen Möglichkeit der Pinzuordnug können so einem Signal maximal 4 bzw. 6 Ausgänge zugeordnet werden.
Ich würde das dann so realisieren, dass über die CV-Parameter für jeden der möglichen 4/8 Signalzustände eine beliebige Ein/Aus-Kombination der zugeordneten Ausgänge definiert werden kann. Damit sollten dann auch etwas komplexere Signalbilder schaltbar sein.


Beispiel für Simon:

Zitat von Siki
Da ich SBB-Signale schalten würde müsste ich kombinationen haben wie grün1, grün1-gelb, rot, grün1-grün2).


Er hat 4 Led's: grün1, grün2, gelb und rot = 4 Ausgänge ( sein Relais ist parallel zu rot angeschlossen )
Die Zuordnung könnte dann z.B. sein:
Zustand 0: nur rot aktiv
Zustand 1: nur grün1 aktiv
Zustand 2: grün1 und gelb aktiv
Zustand 3: grün1 und grün2 aktiv

Es würde mich freuen, wenn ihr mir Eure Meinung zu so einer Erweiterung des Decoders mitteilen könntet .
Macht das so Sinn? Was könnte/sollte/müsste man anders machen?


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#14 von MoBa_Alfred , 17.01.2017 13:03

Hallo Franz-Peter,
ich habe mal eine Frage zum Schaltplan in Manual.pdf der Version 3.0.
Du hast dort den 6N137 Optokoppler so dargestellt:

Das Schaltzeichen für den 6N137 ist laut Eagle und Datenblatt aber so:

Kannst Du das bitte aufklären oder habe ich da irgendetwas übersehen?

Viele Grüße
Alfred


=================================
Mä-M-Gleisanlage und C-Gleisanlage, Digital mit MoBaSbS und TrainController 10
H0e Module mit DR5000(YD7001) und multiMAUS
und aus Altbeständen 6021, IB und MobileStation
=================================


 
MoBa_Alfred
InterCity (IC)
Beiträge: 541
Registriert am: 19.10.2006
Gleise C-Gleis, M-Gleis, Roco H0e Gleis
Spurweite H0, H0e, Z
Steuerung MoBaSbS
Stromart Digital, Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#15 von MicroBahner , 17.01.2017 14:14

Hallo Alfred,
mein Zeichenprogramm für die Schaltpläne hat kein vordefiniertes Symbol für den 6N137, deshalb habe ich mir selbst eins gezeichnet. In Datenblättern gibt es verschiedene Varianten. Ich habe mich an dieses gehalten:

wobei ich das innere 'Kleinzeug' weggelassen, und nur den Schalttransistor am Ausgang eingezeichnet habe.
Das Eagle Schaltbild zeigt nicht, dass der Ausgang nur ein reiner OpenCollector Ausgang ist. Das der Enable Eingang intern einen Pullup hat, geht aus beiden nicht hervor.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#16 von MoBa_Alfred , 17.01.2017 20:52

Hallo Franz-Peter,
vielen Dank für die Erklärung. Jetzt habe auch ich es verstanden.
Grüße
Alfred


=================================
Mä-M-Gleisanlage und C-Gleisanlage, Digital mit MoBaSbS und TrainController 10
H0e Module mit DR5000(YD7001) und multiMAUS
und aus Altbeständen 6021, IB und MobileStation
=================================


 
MoBa_Alfred
InterCity (IC)
Beiträge: 541
Registriert am: 19.10.2006
Gleise C-Gleis, M-Gleis, Roco H0e Gleis
Spurweite H0, H0e, Z
Steuerung MoBaSbS
Stromart Digital, Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#17 von railfan2401 , 19.01.2017 15:02

Hallo Hans-Peter,
nach langer Abstinenz melde ich mich mal wieder. Zwischenzeitlich habe ich mich mit meinen eher bescheidenen Kenntnissen mit der Lichtsignalsteuerung befasst, weshalb mich Dein Beitrag #13 interessiert. Für zweibegriffige Signale habe ich es geschafft, mit Anleihen bei Ruud Boer und Geoff Bunza (MRH). Letzterer hatte dann auch noch eine App für mehrbegriffige DB-Signale entwickelt, allerdings auf Funktionsdecoder-Basis. An der Umsetzung für einen Zubehördecoder bin ich aber gescheitert.
Aus diesem Grunde hätte ich lebhaftes Interesse daran, wenn man mit Hilfe der Moba Tools ein Ausfahrsignal ansteuern könnte (vier Signalbilder, fünf LEDs).
Beste Grüße
Burkhardt


Beste Grüße
Burkhardt


railfan2401  
railfan2401
S-Bahn (S)
Beiträge: 11
Registriert am: 11.09.2014
Spurweite H0
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#18 von MicroBahner , 20.01.2017 11:39

Hallo Burkhard,
schön dass sich jemand für die Lichtsignalsteuerung interessiert.

Derzeit bin ich dabei, die MobaTools so zu ertüchtigen, dass das sanfte Auf- und Abblenden von Led's an allen IO's funktioniert und nicht nur an PWM Ausgängen. Das ist ja wichtig für ein realistisches Lichtsignal und bei den kleinen Arduinos gibt es nicht viele PWM Ausgänge. Ich hoffe, dass die Leistung der Nanos dafür aussreicht - mal sehen.
Auf der Basis habe ich dann vor, auch eine Lichtsignalsteuerung in den Zubehördecoder zu integrieren.

Ausserden möchte ich die MobaTools und die NmraDcc Lib auch auf der STM32F1 Plattform zum laufen bringen ( die NmraDcc-Lib hat einen ersten Testlauf erfolgreich hinter sich). Mit den STM32F1-- Prozessoren gibt es Platinen, die kaum größer und teurer als ein Nano sind, die aber etwas mehr IO's und einen wesentlich leistungsfähigeren Prozessor haben.

Mein Eisberg liegt deshalb allerdings mal wieder auf Eis


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#19 von Bodo , 20.01.2017 12:05

Hallo Franz-Peter,

[quote=MicroBahner]Derzeit bin ich dabei, die MobaTools so zu ertüchtigen, dass das sanfte Auf- und Abblenden von Led's an allen IO's funktioniert und nicht nur an PWM Ausgängen. Das ist ja wichtig für ein realistisches Lichtsignal und bei den kleinen Arduinos gibt es nicht viele PWM Ausgänge. Ich hoffe, dass die Leistung der Nanos dafür aussreicht - mal sehen.
Auf der Basis habe ich dann vor, auch eine Lichtsignalsteuerung in den Zubehördecoder zu integrieren.[/quote]
das wäre natürlich super ... dann würde ich meine eigenen Pläne mit separatem PWM-Treiberbaustein (ELV oder Adafruit) erstmal zurückstellen.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#20 von Siki , 20.01.2017 18:20

Hallo,

Erstmal vielen dank für deine Bemühungen, noch eine kleine Bemerkung, die anderen Pins machen ja dann auch was PWM ähnliches nehme ich mal an. Ein Relais wird aber an so etwas wohl kaum Freude haben oder sich sehr schnell abnutzen. Wäre es demnach möglich zur rot Phase einen 2ten Pin auf high zulegen ohne das blenden oder sowas wie einen kleinen Impuls auf einen Pin geben (wenn man auf rot Schaltet z.B. auf Pin A und wenn man auf das nächste Signalbild schaltet (von rot her) auf Pin B (so könnte man ein bi-stabiles Relais einsetzten und es würde wahrscheinlicher leiser sein))?

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#21 von Uwe HAL , 20.01.2017 21:26

Hallo Simon,
was du schreibst ist schon richtig, wenn man die Signale mit Relais ansteuern möchte. LED-Signale kann man aber auch ohne Relais direkt mit dem Arduino steuern. Nur einen Widerstand zwischen einen Ausgangs-PIN und die LED und schon funktioniert die Sache

Was Franz-Peter noch einbauen möchte ist ein weiches überblenden von einem Signalbild zum nächsten. Diese Funktion ist mit Relais-Steuerung unmöglich, aber mit PWM-Ausgängen am Arduino relativ einfach zu bewerkstelligen. Da aber der Arduino-Nano nur eine begrenzte Anzahl PWM-Pins hat, will Franz-Peter die normalen Digital-Pins so umprogrammieren, dass damit ein sanftes Ein- und Ausblenden möglich ist. Dies ist vorbildgetreuer als ein einfaches An/Aus.

Gruß Uwe


Liebe Grüße aus Niemberg bei Halle (S) :D

Hier geht's zu meiner Anlage: http://stummiforum.de/viewtopic.php?f=64&t=140522


 
Uwe HAL
InterRegio (IR)
Beiträge: 114
Registriert am: 06.05.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#22 von Siki , 20.01.2017 22:34

Hallo Uwe

Das Relais wollte ich nicht für die Signale verwenden, sondern, um Gleisabschnitte vor dem Signal Stromlos schalten zu können....
Mir war von Anfang an klar, dass man die LED's direkt anschliesst, deshalb (wenn ohne auf und abblenden) auch ganz einfach möglich wäre Relais und LED's Parallel zu schalten, aber mit PWM (artigem) ist dies dann nicht mehr eine so tolle Idee...

Lg Simon


Siki  
Siki
InterRegio (IR)
Beiträge: 131
Registriert am: 27.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#23 von Uwe HAL , 20.01.2017 23:03

Hi Siki,

jetzt habe ich es verstanden und ich gebe dir Recht, dass eine direkte Relais-Ansteuerung mit PWM vielleicht keine so gute Idee ist, wenn du aber galvanisch mit einem Optokoppler trennst und danach das Signal mit einem Elko glättest, könnte das auch funktionieren. Eine Treiberstufe zwischen Relais und Arduino-Pin würde ich auf alle Fälle einbauen (z.B. Transistor und Freilaufdiode parallel zum Relais).

Gruß Uwe


Liebe Grüße aus Niemberg bei Halle (S) :D

Hier geht's zu meiner Anlage: http://stummiforum.de/viewtopic.php?f=64&t=140522


 
Uwe HAL
InterRegio (IR)
Beiträge: 114
Registriert am: 06.05.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#24 von MicroBahner , 21.01.2017 21:37

Hallo Simon, hallo Uwe,
während der meisten Zeit würde ja an den Digitalausgägnen ein stabiles Signal HIGH oder LOW anstehen. Nur im Moment des Umschaltens würden für einen kurzen Zeitraum PWM-Impulse entstehen. Das sollte sich, wie von Uwe schon vorgeschlagen, mit ein paar Bauteilen für das Relais herausfiltern lassen.
Aber der Einwand von Simon, dass man neben den Signal-Leds gegebenenfalls auch ein Relais schalten will, ist sicher nicht von der Hand zu weisen. Vielleicht fällt mir dazu auch noch einen Software Lösung ein. Eine Möglichkeit wäre, dass man bei den einem Signal zugeordneten Ausgängen einzeln wählen kann, ob sie hart oder weich umschalten. Dann bräuchte man aber für die Relais immer eigene Pins.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#25 von MicroBahner , 29.01.2017 22:40

Hallo,
den Zubehördecoder bohre ich zur Zeit so auf, dass er auch Lichtsignale ansteuern kann. Die grundsätzlichen Funktionen sind:

  • Es können 2 oder 3 aufeinanderfolgende Weichenadressen zu einem Signal zusammengefasst werden
  • Dementsprechend stehen 4 oder 6 Ausgänge zur Ansteuerung von Leds und/oder Relais zur Verfügung
  • Für jeden der 4 bzw 8 Signalzustände ist per CV frei kombinierbar, wie die Ausgänge geschaltet werden sollen.
  • Für jeden Ausgang ist individuell konfiguriebar ob er 'weich' oder 'hart' schalten soll
  • Die Ausgänge schalten leicht verzögert zum Empfang der DCC-Telegramme. Das verhindert falsche Zwischenzustände, wenn sich 2 Einzelzustände gleichzeitig ändern ( die ja nur nacheinander gesendet werden können )


Braucht man zwar nur 4 Signalzustände, aber mehr als 4 Ausgänge, so müssen derzeit 3 Adressen verwendet werden, wobei die 3. dann 'brach' liegt ( da überlege ich noch, ob und wie man das auf 3Ausgänge/Adresse erweitern kann).

Zur Demo habe ich mal ein paar Led in Form eines Epoche 3 Ausfahrsignals zusammengelötet. In dem Video kann man das Umschalten sehen. Die Qualität ist zwar mies, aber ich denke man kann das Überblenden erkennen.
[youtu-be]https://youtu.be/MgOF5BnZEaQ[/youtu-be]


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


   

Lenz Booster LV102 mit Booster Mangementsystem BMS-D von Boll
rtDrive Lenz Digikeijs DR5000

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz