RE: Einstig in den Arduino DCC Decoder 6.0

#1 von murdok1980 , 20.02.2018 15:42

Hallo MoBa Freunde
Ich habe mich nun schon länger mit universellen DCC Decodern auf Arduino Basis belesen und bin immer wieder hier im Forum gelandet.
Nun ergeben sich noch ein paar Fragen für mich.
Was ich möchte: - einem Modellbaukollegen helfen einen DCC Decoder zu bauen (ich komme aus einer etwas anderen Sparte des Modellbaus aber die
Modellbahngeschichten reizen mich trotzdem), erstmal zum Testen und um gemeinsam die Materie zu lernen und zu verstehen
Was wir haben: - eine kleine Spur N Anlage mit Rocco Multimaus Steuerung
Die elektronischen Bauteile habe ich soweit alle und könnte mit nem Testaufbau auf einem Breadboard beginnen. Welche Bibilotheken brauche ich noch um die Arduino IDE fit zu machen. Ziel ist es erstmal ein paar LEDs mit der Multimaus ein und auszuschalten und später dann Signale und Doppelspulenantriebe anzusteuern.
Grüße André

Edit: Arduino IDE 1.8.5 hab ich installiert und die MoBaTools 5 und die nmraDCC Version 1.4.2 über zip. Bibilothek einbinden hinzugefügt.
Und bei github die DCC_Zubehoerdecoder Version 5.0 als Zip runtergeladen. Wohin muss der Inhalt der Zip Datei?


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#2 von MicroBahner , 20.02.2018 17:29

Hallo André,
es ist egal, wo Du das enthaltene Verzeichnis auspackst. Du kannst Dir z.B. ein Verzeichnis anlegen, wo Du alles für deinen Test zusammenfasst und da packst Du dann auch die zip-Datei des Zubehördecoders aus. Darin befindet sich neben der Dokumentation auch das Unterverzeichnis 'DCC_Zubehoerdecoder' mit der gleichnamigen ino-Datei. Ein Doppelklick darauf öffnet den Sketch in der Arduino-IDE.

P.S. von den MobaTools gibt's noch keine Version 5, da sind wir erst bei 1.0.1


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: Einstig in den Arduino DCC Decoder 6.0

#3 von murdok1980 , 20.02.2018 19:45

Ok.
Und was hat es mit den verschiedenen .h Dateien in dem Unterordner auf sich?
Ich werde als erstes mal 2 ULN Treiber mit dem Nano verdrahten und LEDs anschließen, mit dem Ziel jede einzeln mit der Rocco Lokmaus an und aus zu schalten.
Grüße Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#4 von MicroBahner , 20.02.2018 21:01

Zitat

Und was hat es mit den verschiedenen .h Dateien in dem Unterordner auf sich?

Hallo Andre,
hast Du die Doku gelesen? Dieser Decoder ist über die .h-Datei(en) recht flexibel konfigurierbar. Da wirst Du ohne das Studium des Manuals nicht weit kommen .


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: Einstig in den Arduino DCC Decoder 6.0

#5 von murdok1980 , 20.02.2018 21:52

Hallo
Ja die Doku hab ich gelesen und auch die 2 verschiedenen Schaltpläne. Mir erschließt sich nur nicht wie man mit den h Dateien welche sich in dem anderen Ordner befinden umgeht z.B. die Nano LS.
Grüße
Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#6 von MicroBahner , 20.02.2018 21:59

Zitat von murdok1980 im Beitrag Einstig in den Arduino DCC Decoder 6.0

Mir erschließt sich nur nicht wie man mit den h Dateien welche sich in dem anderen Ordner befinden umgeht z.B. die Nano LS.

Du meinst die .h Dateien im examples Ordner? Das sind einfach unterschiedliche Beispiele für mögliche Konfigurationen. Wenn Du eine ausprobieren willst, musst Du sie in den Sketchordner kopieren und in DCC_Zubehoerdecoder.h umbenennen ( die originale kannst Du ja vorher in den examples Ordner verschieben ).


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: Einstig in den Arduino DCC Decoder 6.0

#7 von murdok1980 , 20.02.2018 22:36

Hallo
Genau das wollte ich wissen. Hatte ich auch so vermutet.
Ich baue meine Testschaltung mal auf. Bei Fragen würde ich mich melden. Geplant ist für die Zukunft eine Grundplatine mit dem Nano und der DCC Auswertung sowie flexiblen Erweiterungen. In Layouten und Platinen fräsen bin ich wiederum sehr fit. Das stelle ich natürlich hier ein. Eine Hand wäscht die andere.
Grüße
Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#8 von murdok1980 , 21.02.2018 20:12

Hallo Franz-Peter
Doku hab ich nun mehrfach gelesen.
Frage: Wenn ich 8 Blocksignale (Rot/Grün) einzeln schalten will muss ich dann die DCC_Zubehoerdecoder.h so hier abändern oder hab ich das Prinzip falsch verstanden?

1
2
3
4
5
6
7
8
9
10
11
12
13
 
#define MAX_LEDS 16 // default ist 16. Kann auf die tatsächlich benutzte Zahl reduziert werden, um RAM zu sparen.
// Pro Softled werden 19 Byte benötigt

const byte iniTyp[] = { FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0 FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0 };
const byte out1Pins[] = { A0, NC, A2, NC, A4, NC, 3, NC, 5, NC, 7, NC, 9, NC, 11, NC };
const byte out2Pins[] = { A1, NC, A3, NC, A5, NC, 4, NC, 6, NC, 8, NC, 10, NC, 12, NC };
const byte out3Pins[] = { NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC, NC };

const byte iniFmode[] = { 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100, 0b100, 0b000100 };
const byte iniPar1[] = { 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001, 0b001, 0b110001 };
const byte iniPar2[] = { 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110, 0b110, 0b100110 };
const byte iniPar3[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
const byte iniPar4[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 


Grüße
André


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#9 von MicroBahner , 21.02.2018 21:40

Hallo André
Bei reinen rot/grün Blocksignalen reicht dir ja eine Zubehöradresse / Signal und Du brauchst auch nur 2 Ausgänge / Signal. Da brauchst Du den Folgeeintrag (FSIGNAL0) nicht. Die entsprechenden Spalten kannst Du herauslöschen. Das brauchst Du nur bei Signalen mit mehr als 2 Signalbildern, denn dann kommst Du zur Ansteuerung mit einer Zubehöradresse nicht aus (jede Spalte repräsentiert eine Adresse) .
Es sind zwar noch ein paar '1'-Bits drin, die sich auf den ungenutzten Ausgang 'NC' beziehen, aber die stören nicht.


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: Einstig in den Arduino DCC Decoder 6.0

#10 von murdok1980 , 22.02.2018 10:09

Hallo.
Danke für deine Hilfe so nach und nach kommt Licht ins dunkel. Ich hoffe ich stell mich nicht allzu blöd an.
Also lösche ich die FSIGNAL 0 Spalten raus und dann kann ich die 8 Blocksignale alle einzeln schalten.

Ich hab wirklich die halbe Nacht gelesen weil ich die Zusammenhänge der Bitmuster iniFmode, iniPar1 bis iniPar4 bei der Lichtgeschichte verstehen will. Warum steht z.B. bei dem Blocksignal 0b100 bei iniFmode und bei anderen 0b000. Genauso würde ich gerne verstehen wie sich die Bitmuster bei iniPar1 und 2 zusammensetzen. Mal haben sie 5 und mal 8 Stellen. Wann schreibt man die 1 und wann eine 0. Die Anfänge sind in den Beispielen immer 0b.
Wenn ich das verstehen könnte wäre super.
Vielleicht reicht ja ein Beispiel.
Oh man ich Stelle bestimmt blöde Fragen.
Grüße
Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#11 von MicroBahner , 22.02.2018 22:44

Hallo André,
ja die Bits und Bytes ... . Vielleicht sollte ich meine Beschreibung doch nochmal überarbeiten.

Grundsätzlich sind iniFmode und iniPar1-4 immer Bytes, olse 8 Bit breit, so wie CV-Werte eigentlich immer sind.
Nun kann man ein Byte als Dezimalzahl ( 0...255), als Hexzahl (0x00...0xFF) oder eben als Bitmuster(0b00000000...0b11111111) interpretieren und darstellen. Da in diesem Fall jedes Bit eine individuelle Bedeutung hat, ist es sinnvoll, die Darstellung als Bitmuster zu wählen. Damit der C-Compiler das auch erkennt, fangen die Werte immer mit 0bxxxxx an. Letztendlich werden dabei immer alle 8Bit definiert, aber wie bei anderen Zahlen auch, kann man führende '0' weglassen. 0b100 ist also das gleiche wie 0b00000100. Man spart sich dabei nur etwas Tiparbeit.
Es haben auch nicht immer alle Bits eine Bedeutung. Mal ein Versuch das etwas anders darzustellen. (Es ist kein Code, die Codetags habe ich nur verwendet, damit es ein passender Zeichensatz wird):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
iniFmode
0b00000000
↑ ↑↑↑
↑ ↑↑+--- 1: Pin 'out1Pins' schaltet hart um, 0: mit Überblenden
↑ ↑+---- 1: Pin 'out2Pins' schaltet hart um, 0: mit Überblenden
↑ +----- 1: Pin 'out3Pins' schaltet hart um, 0: mit Überblenden
+---------- 1: Pin = LOW für Led EIN, 0: Pin = HIGH für Led EIN
 
iniPar1:
0b00000000 Pins, die eingeschaltet werden bei Empfang von Off ( 0 , rot )
↑↑↑↑↑↑
↑↑↑↑↑+--- 1: FSIGNAL2 'out1Pins' wird eingeschaltet
↑↑↑↑+---- 1: FSIGNAL2 'out2Pins' wird eingeschaltet
↑↑↑+----- 1: FSIGNAL2 'out3Pins' wird eingeschaltet
↑↑↑ Bits 3-5 nur relevant, wenn FSIGNAL0 existiert:
↑↑+------ 1: FSIGNAL0 'out1Pins' wird eingeschaltet
↑+------- 1: FSIGNAL0 'out2Pins' wird eingeschaltet
+-------- 1: FSIGNAL0 'out3Pins' wird eingeschaltet
 
iniPar2:
0b00000000 Pins, die eingeschaltet werden bei Empfang von ON ( 1, grün )
↑↑↑↑↑↑
↑↑↑↑↑+--- 1: FSIGNAL2 'out1Pins' wird eingeschaltet
↑↑↑↑+---- 1: FSIGNAL2 'out2Pins' wird eingeschaltet
↑↑↑+----- 1: FSIGNAL2 'out3Pins' wird eingeschaltet
↑↑↑ Bits 3-5 nur relevant, wenn FSIGNAL0 existiert:
↑↑+------ 1: FSIGNAL0 'out1Pins' wird eingeschaltet
↑+--+---- 1: FSIGNAL0 'out2Pins' wird eingeschaltet
+-------- 1: FSIGNAL0 'out3Pins' wird eingeschaltet
 
 


Vielleicht ist es so etwas besser verständlich.


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: Einstig in den Arduino DCC Decoder 6.0

#12 von murdok1980 , 23.02.2018 00:06

Hallo.
Mal sehen ob ich das jetzt richtig verstanden habe.
Wenn bei einem einfachen Blocksignal in der iniFmode 0b100 steht und ich bei FSIGNAL2 nur output pin 1 und 2 definiert hab und der 3. auf NC steht dass der pin 1 und 2 weich übergeblendet wird und der 3. obwohl nicht definiert, hart umgeschaltet wird. Wenn dem so wäre könnte es doch 0b000 heißen oder.
Jetzt zu den inipar1 usw. wenn ich das richtig verstehe wird beim Bitmuster von hinten nach vorn gezählt.
In der Reihenfolge FSIGNAL2 out1Pins(Bit0), out2Pins, out3Pins dann weiter mit FSIGNAL0 out1Pins, out2Pins, out3Pins (Bit5). Fehlen da jetzt nicht noch 2 Bit? Die 0 und 1 im Muster gibt dann an ob der Output Pin ein oder ausgeschaltet wird.
Theoretisch brauch man sich mit den Bitmustern der iniPar1 usw. ja nicht rumärgern da du das in den Beispielen ja schon gemacht hast und die Signalzustände eine feste Größe sind.
Jedoch macht es für mich Sinn es zu verstehen damit man trotz Copy und Paste weiß worum es geht.
Grüße
Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#13 von MicroBahner , 23.02.2018 09:28

Hallo André,

Zitat

Wenn bei einem einfachen Blocksignal in der iniFmode 0b100 steht und ich bei FSIGNAL2 nur output pin 1 und 2 definiert hab und der 3. auf NC steht dass der pin 1 und 2 weich übergeblendet wird und der 3. obwohl nicht definiert, hart umgeschaltet wird. Wenn dem so wäre könnte es doch 0b000 heißen oder.

Richtig.
Die 0b100 sind gedacht, wenn man dem Blocksignal noch ein Relais spendiert, das z.B. den Fahrstrom schaltet.

Zitat

Fehlen da jetzt nicht noch 2 Bit?

Du kannst mit FSIGNAL2 und 1xFSIGNAL0 ja nur 6 Ausgangspins festlegen, deshalb brauchst Du auch nur 6 Bits. Die Bits 6+7 werden ignoriert.


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: Einstig in den Arduino DCC Decoder 6.0

#14 von murdok1980 , 02.07.2018 11:54

Hallo an Franz und alle anderen MoBa Freunde

Im Haupthtread hatte ich ja schon was geschrieben aber hier ist es besser aufgehoben.
Ich komme einfach nicht weiter.
Nachfolgend so detailliert wie möglich was ich alles gemacht habe und was das Ergebnis ist.

Es geht um den Decoder 6.0 welchen ich als Lichtsignaldecoder verwenden will.
Aufgebaut auf dem Steckboard ist alles nach Manual 6.0 Seite 17 mit dem ULN Treiber und 3 LEDs zum Testen.
A0 an den ULN und von dort auf Rote LED
A1 an den ULN und von dort auf Grüne LED
A2 an den ULN und von dort auf Gelbe LED
Es soll das 3 begriffige Signal geschaltet werden.

Arduino IDE:
Im Ordner Zubehoerdecoder hab ich folgenden Dateien drin
DCC_Zubehoerdecoder.h
DCC_Zubehoerdecoder.ino
DCC_Zubehoerdecoder-Micro.h
DCC_Zubehoerdecoder-STM32.h
Interface.h
Ich hab die DCC_Zubehoerdecoder-LS-Nano.h in den Ordner kopiert und in DCC_Zubehoerdecoder.h umbenannt. (zuvor das Original gesichert)
Im Sketch hab ich die Einstellungen in der DCC_Zubehoerdecoder.h so gelassen und lediglich die ROCOADDR einkommentiert. Zur Kontrolle ->

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 

const byte DccAddr = 17; // DCC-Decoderadresse
const byte iniMode = 0x50 | AUTOADDR | ROCOADDR; // default-Betriebsmodus ( CV47 )
const int PomAddr = 50; // Adresse für die Pom-Programmierung ( CV48/49 )
 

//Konstante für Lichtsignalfunktion
#define SIG_DARK_TIME 300 // Zeit zwischen Dunkelschalten und Aufblenden des neuen Signalbilds
#define SIG_RISETIME 500 // Auf/Abblendezeit
 
// Ausgänge: mit NC gekennzeichnete Ausgänge werden keinem Port zugeordnet. Damit können Ports gespart werden,
// z.B. wenn bei einem Servo kein Polarisierungsrelais benötigt wird
const byte modePin = 13; // Anzeige Betriebszustand (Normal/Programmierung) (Led)
 
#define MAX_LEDS 16 // default ist 16. Kann auf die tatsächlich benutzte Zahl reduziert werden, um RAM zu sparen.
// Pro Softled werden 19 Byte benötigt

const byte iniTyp[] = { FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0, FSIGNAL2, FSIGNAL0 };
const byte out1Pins[] = { A0, NC, A3, NC, 3, NC, 6, NC, 9, NC };
const byte out2Pins[] = { A1, NC, A4, NC, 4, NC, 7, NC, 10, NC };
const byte out3Pins[] = { A2, NC, A5, NC, 5, NC, 8, NC, 11, NC };

const byte iniFmode[] = { 0, 0b000100, 0, 0b000100, 0, 0b000100, 0, 0b000100, 0, 0b000100 };
const byte iniPar1[] = { 0b001001, 0b110001, 0b001001, 0b110001, 0b001001, 0b110001, 0b001001, 0b110001, 0b001001, 0b110001 };
const byte iniPar2[] = { 0b100010, 0b100110, 0b100010, 0b100110, 0b100010, 0b100110, 0b100010, 0b100110, 0b100010, 0b100110 };
const byte iniPar3[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
const byte iniPar4[] = { 0b000101, 0, 0b000101, 0, 0b000101, 0, 0b000101, 0, 0b000101, 0 };
 



Als Zentrale nutze ich einen Z21 Nachbau nach P.Gathow und zur Steuerung die neue Roco App für Android.

Ich hab Jumper 2 und 4 gesteckt und den Sketch aufgespielt. Dann den Jumper 4 gezogen und den Nano neu gestartet (Reset).
In der App hab im Stellwerk ein 3er Signal gewählt und die Adresse 17 und 18 vergeben.
In der vorgegebenen Tabelle in der App wo den Farben 0 und 1 zugeodnet ist, habe ich nichts geändert.
Auf jeden Fall denke ich, dass vielleicht da der Fehler liegt.
Schaut mal das Video an
[youtu-be]https://youtu.be/03mcowJ9kKU[/youtu-be]

Ich hoffe Franz oder ein anderer findiger MoBa-Freund findet den Fehler.
Grüße
André


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#15 von MicroBahner , 02.07.2018 15:30

Hallo André,
ich kenne zwar diese Z21 nicht, aber so wie die Konfigmaske auf deinem Video aussieht, scheint sie den Signalzustand nicht von einem einzelnen Zubehörbefehl abhängig zu machen, sondern von der Zustandskombination beider Adressen.
Ich vermute daher, dass sie jedesmal beim Wechsel des Signalzustandes 2 Befehle sendet. Dafür ist der Zubehördecoder nicht ausgelegt. Das war ganz am Anfang mal so, aber da das wohl die meisten Zentralen anders machen, habe ich das wieder geändert. Im Decoder ist jedem Signalzustand genau ein Befehl zugeordnet.
Kann man die z21 nicht so konfigurieren, dass jedem Signalzustand genau ein Zubehörbefehl zugeordnet ist?


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: Einstig in den Arduino DCC Decoder 6.0

#16 von murdok1980 , 02.07.2018 16:26

Hallo
Na das wär ja großer Mist. Die Z21 ist ein Nachbau der schwarzen Roco Z21. Normale Blocksignale gehen, das hab ich probiert aber die haben auch nur eine Adresse.
Statischer Ausgang geht auch.
Wie kann man denn mein Problem lösen?
Grüße Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#17 von MicroBahner , 02.07.2018 17:10

Zitat

Wie kann man denn mein Problem lösen?

Wie gesagt kenne ich mich mit der Z21 nicht aus. Aber vielleicht gibt's ja hier ein paar Spezialisten, die dazu was sagen können.


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: Einstig in den Arduino DCC Decoder 6.0

#18 von murdok1980 , 02.07.2018 21:58

Guten Abend
Hab noch bissl probiert. Ist das so jetzt richtig?
[youtu-be]https://youtu.be/3FSIAfJGrXk[/youtu-be]
Grüße
André


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#19 von MicroBahner , 02.07.2018 22:33

Hallo Andre,
das sieht doch schon ganz gut aus. Wenn auch die Reihenfolge der Signalbilder nicht ganz vorbildgerecht ist.:
Grün direkt nach Grün/gelb gibt's da nicht

P.S. Was hast Du denn jetzt geändert?


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: Einstig in den Arduino DCC Decoder 6.0

#20 von murdok1980 , 02.07.2018 23:13

Wie muss denn die Reihenfolge sein?
Vielleicht bekomm ich das noch hin dann wär hier bestimmt noch mehr Leuten geholfen.
Geändert hab ich einmal das hier:

1
2
 
const byte iniPar1[]      = { 0b001010
const byte iniPar2[] = { 0b100001
 


Und dann gibt es in der App so eine Art Zuordnungstabelle welche man editieren kann.
Hab ich hier gefunden.https://stummiforum.de/viewtopic.php?p=1...2bfa94#p1507863
[img=https://abload.de/thumb/a183b26e-2c86-41e3-9errq2.jpeg]
Das ruft nun dich Franz mit auf den Plan weil du mit der Theorie der Bits am besten vertraut bist.
Bei mir hat ja das 3er Signal die Adresse 17 und 18.
Nachdem was ich im Code geändert habe wird ja auf Adresse 17 der Ausgang A1 Grün eingeschaltet und auf
Adresse 18 der Ausgang A0 Rot eingeschaltet.
Zu den gerade genannten Schaltzuständen gehören ja noch 2 Weitere, wie ergeben die sich?
Die Frage ist bestimmt schlecht formuliert aber ich weiß nicht wie ich es sonst beschreiben soll.
In der App kann man dann die Schaltzustände der Einzelnen 2 Adressen noch indem 0 oder 1 markiert oder die Markierung weglässt.
Da fehlt mir aber auch noch der Zusammenhang. Es gibt auch nirgends eine Erläuterung seitens Roco dazu.
Wenn mir jetzt bissl zusammenarbeiten lösen wir das Rätzel bestimmt.
Grüße
Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#21 von MicroBahner , 03.07.2018 10:44

Hallo Andre,
Das ist schonmal gut: so kann man die Z21 offensichtlich auch dazu bewegen, pro Signalbild nur einen Zubehörbefehl zu senden.
Ich hätte allerdings die iniPar1/2 unverändert gelassen, und stattdessen lieber in der Z21 Konfiguration die Werte für rot und grün vertauscht. Der Zustand '0' ist bei den Zubehördecodern in der Regel der Grundzustand, und das sollte bei einem Signal 'rot' sein.

Zitat

Nachdem was ich im Code geändert habe wird ja auf Adresse 17 der Ausgang A1 Grün eingeschaltet und auf
Adresse 18 der Ausgang A0 Rot eingeschaltet.
Zu den gerade genannten Schaltzuständen gehören ja noch 2 Weitere, wie ergeben die sich?

Das ist so nicht ganz richtig. Du kannst ja mit jeder Adresse 2 Zustände ( 0/1 ) schalten. So wie Du es geändert hast, schaltest du mit Adresse 17/0 die grüne Led (A1) und mit Adresse 17/1 die rote(A0). Im Original ist es genau umgekehrt. Mit Adresse 18/1 schaltest du grün/gelb ( A1/A2 ). Adresse 18/0 wird nicht genutzt, da dein Signal ja nur 3 Signalbilder kennt. In der derzeitgen Decoder-Konfiguration würde da zwar auch die rote LED (A0) geschaltet, aber die Z21 sendet dieses Kommando gar nicht, da in der Konfigurationsmaske Adr2/0 gar nicht genutzt ist.


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: Einstig in den Arduino DCC Decoder 6.0

#22 von murdok1980 , 03.07.2018 11:10

Moin
Aber woher weiß ich denn jetzt was für die Adresse 17/1 undc18/1 programmiert ist?

const byte iniPar1[] = { 0b001010 das hier ist doch von hinten nach vorn gelesen der Schaltzustand für A0,A1,A2 auf Adresse 17/0 oder nicht? Hier in dem Fall wäre Grün also A1 an.
const byte iniPar2[] = { 0b100001 das hier ist doch von hinten nach vorn gelesen der Schaltzustand für A0,A1,A2 auf Adresse 18/0 oder nicht? Hier in dem Fall wäre Rot also A0 an.
Das kapier ich noch nicht ganz?
Das Bild was ich verlinkt hab ist nicht meine aktuelle Konfigurationsmaske sondern nur ein Beispiel.
Das kapier ich noch nicht ganz?
Grüße Andre


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#23 von MicroBahner , 03.07.2018 11:49

Zitat

const byte iniPar2[] = { 0b100001 das hier ist doch von hinten nach vorn gelesen der Schaltzustand für A0,A1,A2 auf Adresse 18/0 oder nicht? Hier in dem Fall wäre Rot also A0 an.

Nein, das sind die Schaltzustände für 17/1.
Die Schaltzustände für 18/0 stehen bei iniPar1 in der nächsten Spalte ( FSIGNAL0) und für 18/1 dann in inipar2 in dieser Spalte.

Die Spalte definiert immer die Adresse, und iniPar1 ist immer für '0' und iniPar1 für '1'.


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: Einstig in den Arduino DCC Decoder 6.0

#24 von murdok1980 , 03.07.2018 12:49

Verstehe ich das dann richtig das jetzt richtig dass ich sozusagen mit der 2 Spalte die Outpins der 1 Spalte mit schalte?


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


RE: Einstig in den Arduino DCC Decoder 6.0

#25 von murdok1980 , 03.07.2018 15:14

Hallo Franz
Ich hoffe mal das ist jetzt so richtig.
[youtu-be]https://youtu.be/Dj_DrQWHQAs[/youtu-be]
Wenn ja dann erklär ich die Lösung, wenn nicht geht try & error weiter
Grüße
André


Baubericht zur Z21 Pollin
viewtopic.php?p=1894982#p1894982


murdok1980  
murdok1980
InterRegioExpress (IRE)
Beiträge: 266
Registriert am: 11.02.2018


   


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