RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#126 von Detsimbo , 16.05.2017 10:28

Irgendwie geht's hier nicht weiter ... Schade


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#127 von Bodo , 16.05.2017 10:35

Den Kommentar halte ich jetzt für absolut unangemessen ...


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.475
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

#128 von MicroBahner , 16.05.2017 11:56

Naja, irgendwie gibt es auch noch ein Leben neben der Moba

Ich bin schon dabei, einen universellen Lichtsignaldecoder als Beispieldatei für den Zubehördecoder zu entwerfen. Ich möchte es aber so gestalten, dass möglichst viele was davon hätten ( auch wenn das Interesse sich in Grenzen hält - wenn ich's mache, dann richtig )

Damit ihr schonmal was zu lesen habt, hier der derzeitige Entwurf des entsprechenden Abschnitts im Manual:
[attachment=0]DCC-Lichtsignal-Decoder-Entwurf.pdf[/attachment]
und hier die zugehörige Konfigurationsdatei:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
/* Universeller DCC - Zubehördecoder
**************************************************************************************************
* Beispieldatei für L i c h t h a u p t s i g n a l e (ohne Vorsignale am gleichen Mast).
* Die Pins sind für den Arduino Nano ausgelegt.
* Es können 3- oder 5-begriffige Hauptsignale angesteuert werden. Die Anzahl der
* Ansteuerbaren Signale hängt von der Zahl der Led's ab:
* Ohne Zugbeeinflussungsrelais können 6 3-Begriffige (3 Leds) oder 3 4-begriffige Signale ( 5/6 Leds) angesteuert werden
* Es müssen nur gegebenenfalls die PinZuordnungen angepasst werden. Alle anderen Paramter können
* unverändert bleiben.
* Die Leds werden aktiv HIGH angesteuert. Für 16V ausgelegte Lichtsignale müssen über einen invertierenden
* ULN2803 (o.ä.) angesteuert werden
* Beim Lichtsignaldecoder ist kein Rückkanal für das Auslesen der CV-Werte vorgesehen
**************************************************************************************************
*
*
* Eigenschaften:
* Bis zu 8 (aufeinanderfolgende) Zubehöradressen ansteuerbar. Je nach verfügbaren Digitalausgängen
* sind ggfs auch mehr möglich.
* 1. Adresse per Programmierung einstellbar
*
* Das Verhalten der konfigurierten Funktionen wird über CV-Programmierung festgelegt:
* Bei Servoausgängen die Endlagen und die Geschwindigkeit
* bei Doppelspulenantrieben die Einschaltzeit der Spulen.
* bei blinkenden Ausgängen das Blinkverhalten ( in V3.0 noch nicht realisiert )
*
* Aufteilung der CV's:
* CV Bedeutung
* 47 Kennung für Erstinitiierung, allgemeine Optionen die für den gesamten Decoder gelten
* 48/49 Pom-Adresse
* 50-54 Parameter für 1. Weichenadresse
* 55-59 Parameter für 2. Weichenadresse
* ...
* Bedeutung der CV's bei den verschiedenen Funktione (CV-Nummern für 1. Weichenadresse)
* FSIGNAL2 Lichtsignalfunktion mit 1..3 Weichenadressen
* bei den Folgeadressen ist als Typ FSIGNAL0 einzutragen
* Lichtsignale starten beim Einschalten immer im Zustand 0 (Bitmuster CV51)
* CV50 Signalmodus: Bit7=1 : invertiert die Softled-Ausgänge (HIGH=OFF) (MobaTools ab V0.9)
* Bit 2..0: Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und welche Ausgänge weich überblenden (Bit=0)
* CV51 Bitmuster der Ausgänge für Befehl 1.Adresse 0 (rot)
* CV52 Bitmuster der Ausgänge für Befehl 1.Adresse 1 (grün)
* CV53 Index des Vorsignals am gleichen Mast ( 0 …. )
* CV54 Bitmuster der Zustände, bei denen das Vorsignal dunkel ist:
* Bit 0: Befehl 1.Adresse 0 (rot)
* Bit 1: Befehl 1.Adresse 1 (grün)
* Bit 2: Befehl 2.Adresse 0 (rot)
* u.s.w.
* FSIGNAL0 1. Folgeadresse (optional)
* CV55 Bit 2.. 0 Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und Welche Ausgänge weich überblenden (Bit=0)
* CV56 Bitmuster der Ausgänge für Befehl 2.Adresse 0 (rot)
* CV57 Bitmuster der Ausgänge für Befehl 2.Adresse 1 (grün)
* CV58 reserved
* CV59 reserved
* FSIGNAL0 2. Folgeadresse (optional)
* CV60 Bit 2.. 0 Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und Welche Ausgänge weich überblenden (Bit=0)
* CV61 Bitmuster der Ausgänge für Befehl 3.Adresse 0 (rot)
* CV62 Bitmuster der Ausgänge für Befehl 3.Adresse 1 (grün)
* CV63 reserved
* CV64 reserved
*
* FVORSIG Vorsignalfunktion
* weitgehend wie FSIGNAL2 ausser:
* CV53 low Byte der Adresse des angekündigten Hauptsignals
* CV54 high Byte der Adrsse des angekündigten Hauptsignals
*/
#define ENCODER_DOUBLE // Eigenschaften des Drehencoders (Impulse per Raststellung)
 

// vom Anwender änderbare Parameter um den Zubehördecoder an die verwendete HW anzupassen
 
// Beispiel für Variante mit Licht-Ausfahrsignal mit Vorsignal, mit Betriebsmode Led an Pin 13 (interne Led)
 
//----------------------------------------------------------------
// Hardwareabhängige Konstante ( nicht per CV änderbar)
//----------------------------------------------------------------
const byte dccPin = 2;
const byte ackPin = NC;
 
// Eingänge analog: ( Bei Nano und Mini - Versionen kann hier auch A7 und A6 verwendet werden, um mehr
// digital nutzbare Ports freizubekommen.
// beim UNO sind A7+A6 nicht vorhanden! )
const byte betrModeP = A7; // Analogeingang zur Bestimmung des Betriebsmodus. Wird nur beim
// Programmstart eingelesen!
const byte resModeP = A6; // Rücksetzen CV-Werte + Mittelstellung Servos
 
// Eingänge digital (die Ports A0-A5 lassen sich auch digital verwenden): ---------
 
// Drehencoder zur Servojustierung ...........
//#define ENCODER_AKTIV // Wird diese Zeile auskommentiert, wird der Encoder nicht verwendet.
// Die Encoder-Ports werden dann ignoriert, und können anderweitig
// verwendet werden.
const byte encode1P = NC; // Eingang Drehencoder zur Justierung.
const byte encode2P = NC;
// ............................................
//-------------------------------------------------------------------------------------------------------
// Betriebswerte ( per CV änderbar ) Diese Daten werden nur im Initiierungsmodus in die CV's geschrieben.
// Der Initiierungsmodus lässt sich per Mode-Eingang aktivieren oder er ist automatisch aktiv, wenn keine
// sinnvollen Werte im CV47 stehen.
//-------------------------------------------------------------------------------------------------------
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 };
//------------------------------------------------------------------------------------
 

 


Ist aber alles noch nicht endgültig getestet. und das Manual ist sicher auch noch nicht ganz vollständig. Aber wenn's unverständlich ist, könnt ihr das ja auch schonmal anmerken


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

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

 
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

#129 von juergiboy , 16.05.2017 13:00

Hallo zusammen,

zuerst einmal ein fettes Lob (und Daumen hoch) für dieses Projekt!
Mit diesem Decoder ist man nicht nur flexibler als mit einem gekauften, es wird auch noch günstiger.
Also weiter so, ich werde dabei bleiben.

Nun aber zu meinem Problem, vielleicht stehe ich ja auch nur auf der Leitung:
Ich habe den Decoder (in verschiedenen Konfigurationen) auf einem Mega zum Laufen bekommen. Servo, LEDs und Relais arbeiten wie gewünscht.
Nun habe ich exakt dieselben Dateien sowohl auf einem UNO als auch auf einem mini pro installiert - und nichts geht.
Für mich sieht es so aus, als würden diese die Signale von der Steuerung ignorieren, obwohl der Pin 2 doch bei allen interruptfähig ist.
Ich bin gerade etwas ratlos, warum derselbe Sketch nur auf dem Mega laufen will...
Gibt es da noch Unterscheide, die ich nicht beachtet habe?
Gruß
Jürgen


Gruß
Jürgen


juergiboy  
juergiboy
Regionalbahn (RB)
Beiträge: 44
Registriert am: 08.02.2016


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#130 von MicroBahner , 16.05.2017 15:11

Hallo Jürgen,
das freut mich natürlich, dass Du den Decoder nutzt

Zitat von juergiboy im Beitrag Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

Nun habe ich exakt dieselben Dateien sowohl auf einem UNO als auch auf einem mini pro installiert - und nichts geht.

Das ist für mich erstmal etwas verwunderlich, da es bei mir eher umgekehrt ist: Ich teste alles erstmal auf einem Nano ( der ja den gleichen Prozessor hat wie Uno und mini) Auf dem Mega teste ich dann eher nur sporadisch.
Nun hat der Mega ja wesentlich mehr Pins. Hast Du die auch im Konfigfile an die bei Uno vorhanden Pins angepasst?
Vielleicht zeigst Du hier mal dein Konfig-File, dann kann ich das mal ausprobieren.

P.S. Welche Version des Decoders und der IDE nutzt Du? Da gab's mal ein Problem mit den NC-Pins... wobei ich nicht weis, ob's da Unterschiede Mega/UNO gab . Im Zweifelsfall hol dir mal die aktuelle Entwicklerversion von GitHub


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

#131 von Detsimbo , 16.05.2017 18:50

Natürlich gib es ein Leben außer Moba
Ich möchte mich auch bedanken und werde sobald ich meine ChinaNanos zum laufen bekomme anfangen es zu testen...
vielleicht habt ihr auf diesem Wege einen Tip was sein könnte das die Nanos nicht erkannt werden...

Ich habe den passenden Treiber vom Hersteller herunter geladen (ch340) aber es funktioniert leider nicht...


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#132 von MicroBahner , 16.05.2017 19:34

Was funktioniert den nicht? Wird eine neue Com-Schnittstelle angelegt, wenn Du den Nano anschließt? Oder geht nur der Upload 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: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#133 von Detsimbo , 16.05.2017 19:41

Nein, der Nano wird überhaupt nicht erkannt wenn ich ihn über usb anschließe...


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#134 von MicroBahner , 16.05.2017 20:03

Dann sieht es so aus, als hättest Du nicht den richtigen Treiber.


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

#135 von juergiboy , 16.05.2017 20:11

Hallo Franz-Peter,

ich habe mein .h File mal angehängt, das ist meine Testkonfiguration, um Erfahrungen zu sammeln.
M. E. ist hier nichts drin, was ich hardwareabhängig anpassen müsste?!

Der Sketch lässt sich ja auch kompilieren und hochladen, laut Debug im SerialMonitor läuft er auch, nur die Steuerung über die Zentrale (MS2) scheint nicht anzukommen. Die Schaltung mit dem Optokoppler funktioniert, ist dieselbe wie beim Mega.

Gruß
Jürgen


Gruß
Jürgen

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

juergiboy  
juergiboy
Regionalbahn (RB)
Beiträge: 44
Registriert am: 08.02.2016


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#136 von juergiboy , 16.05.2017 20:35

Ok, alles zurück....

Ich habe gerade nochmal neu kompiliert, hochgeladen und neu verdrahtet.... und schon läuft auch der UNO.
Wo auch immer das Problem lag, jetzt ist es erstmal gelöst.

Trotzdem danke für die Hilfe.

Gruß
Jürgen


Gruß
Jürgen


juergiboy  
juergiboy
Regionalbahn (RB)
Beiträge: 44
Registriert am: 08.02.2016


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#137 von MicroBahner , 16.05.2017 20:49

Na super, ich wollt's gerade auch mal testen. Aber dann ist das ja unnötig


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

#138 von Detsimbo , 16.05.2017 21:19

Würde das ganze auch mit einem Uno funktionieren?
Da ich ja Anfänger bin... was genau ist eine h. Datei und was mache ich damit?

Die Nanos bekomme ich nicht ans laufen... ich schätze das ich wohl lieber keine Billigteile nehmen sollte bzw mit echtem ftdi Chip.....


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#139 von MicroBahner , 16.05.2017 21:31

Zitat

Würde das ganze auch mit einem Uno funktionieren?

Grundsätzlich ja. Der hat allerdings 2 Analogeingänge weniger als der Nano, was dann bei der Zuordnung der Pins zu berücksichtigen ist. Die Konfiguration für die Lichtsignale ist auf den Nano zugeschnitten.

Zitat

Da ich ja Anfänger bin... was genau ist eine h. Datei und was mache ich damit?

.h ist der Dateityp und steht für 'Header-Datei'. Die heissen so weil sie eigentlich immer im 'Kopf' eines C-Programms eingebunden werden. Header-Dateien enthalten üblicherweise keine ausführbaren Anweisungen, sondern nur Konstanten und Hinweise an den Compiler, wie z.B. die Unterprogramme in einer Library heissen und wie sie aufgerufen werden ( in der C-Terminologie 'Deklarationen' ).

Zitat

Die Nanos bekomme ich nicht ans laufen... ich schätze das ich wohl lieber keine Billigteile nehmen sollte bzw mit echtem ftdi Chip.....

Ich habe dir eine PN geschickt. Bisher hat noch jeder die 'Billigteile' zum Laufen gebracht


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

#140 von Detsimbo , 16.05.2017 22:33

Ich habs mit dem Treiber auch versucht aber es funktioniert trotzdem nicht... com/ltp oder Serial wird gar nicht angezeigt...

dann bin ich wohl der 1.

exit status 1
'NC' was not declared in this scope
Was heisst das ?


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#141 von MicroBahner , 17.05.2017 13:35

Zitat

Ich habs mit dem Treiber auch versucht aber es funktioniert trotzdem nicht.

Seltsam - und Du hast auch die richtige Treibervariante installiert (32/64Bit-System)? Aber da sollte eigentlich auch der Installer meckern, wenn man das falsche wählt.
Bist Du sicher, dass dein USB-Kabel i.O ist? hast Du das schon mit einem anderen Gerät erfolgreich getestet?


Zitat

exit status 1
'NC' was not declared in this scope
Was heisst das ?

Na ja, dass er eben mit dem Namen 'NC' nichts anzufangen weis. NC wird in 'DCC_Zubehoerdecoder.ino' definiert, bevor das 'DCC_Zubehoerdecoder.h' File eingebunden wird.
Was hast Du denn gemacht?


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

#142 von Detsimbo , 17.05.2017 13:46

Ich denke schon das ich die richtige Treibervariante genommen habe, weil wie Du sagst Windows dann meckert wenn es der das falsche ist.
Also die nanos die ich habe funktionieren alle nicht und Kabel habe ich mehrere ausprobiert.
Uno funktioniert wunderbar.

Ich habe das Beispiel von dir versucht auf einen Uno zu laden bzw. überprüft(kompiliert?) da kam schon die Fehlermeldung... habe einfach ausprobiert ohne etwas zu verändern ....

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
/* Universeller DCC - Zubehördecoder
**************************************************************************************************
* Beispieldatei für L i c h t h a u p t s i g n a l e (ohne Vorsignale am gleichen Mast).
* Die Pins sind für den Arduino Nano ausgelegt.
* Es können 3- oder 5-begriffige Hauptsignale angesteuert werden. Die Anzahl der
* Ansteuerbaren Signale hängt von der Zahl der Led's ab:
* Ohne Zugbeeinflussungsrelais können 6 3-Begriffige (3 Leds) oder 3 4-begriffige Signale ( 5/6 Leds) angesteuert werden
* Es müssen nur gegebenenfalls die PinZuordnungen angepasst werden. Alle anderen Paramter können
* unverändert bleiben.
* Die Leds werden aktiv HIGH angesteuert. Für 16V ausgelegte Lichtsignale müssen über einen invertierenden
* ULN2803 (o.ä.) angesteuert werden
* Beim Lichtsignaldecoder ist kein Rückkanal für das Auslesen der CV-Werte vorgesehen
**************************************************************************************************
*
*
* Eigenschaften:
* Bis zu 8 (aufeinanderfolgende) Zubehöradressen ansteuerbar. Je nach verfügbaren Digitalausgängen
* sind ggfs auch mehr möglich.
* 1. Adresse per Programmierung einstellbar
*
* Das Verhalten der konfigurierten Funktionen wird über CV-Programmierung festgelegt:
* Bei Servoausgängen die Endlagen und die Geschwindigkeit
* bei Doppelspulenantrieben die Einschaltzeit der Spulen.
* bei blinkenden Ausgängen das Blinkverhalten ( in V3.0 noch nicht realisiert )
*
* Aufteilung der CV's:
* CV Bedeutung
* 47 Kennung für Erstinitiierung, allgemeine Optionen die für den gesamten Decoder gelten
* 48/49 Pom-Adresse
* 50-54 Parameter für 1. Weichenadresse
* 55-59 Parameter für 2. Weichenadresse
* ...
* Bedeutung der CV's bei den verschiedenen Funktione (CV-Nummern für 1. Weichenadresse)
* FSIGNAL2 Lichtsignalfunktion mit 1..3 Weichenadressen
* bei den Folgeadressen ist als Typ FSIGNAL0 einzutragen
* Lichtsignale starten beim Einschalten immer im Zustand 0 (Bitmuster CV51)
* CV50 Signalmodus: Bit7=1 : invertiert die Softled-Ausgänge (HIGH=OFF) (MobaTools ab V0.9)
* Bit 2..0: Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und welche Ausgänge weich überblenden (Bit=0)
* CV51 Bitmuster der Ausgänge für Befehl 1.Adresse 0 (rot)
* CV52 Bitmuster der Ausgänge für Befehl 1.Adresse 1 (grün)
* CV53 Index des Vorsignals am gleichen Mast ( 0 …. )
* CV54 Bitmuster der Zustände, bei denen das Vorsignal dunkel ist:
* Bit 0: Befehl 1.Adresse 0 (rot)
* Bit 1: Befehl 1.Adresse 1 (grün)
* Bit 2: Befehl 2.Adresse 0 (rot)
* u.s.w.
* FSIGNAL0 1. Folgeadresse (optional)
* CV55 Bit 2.. 0 Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und Welche Ausgänge weich überblenden (Bit=0)
* CV56 Bitmuster der Ausgänge für Befehl 2.Adresse 0 (rot)
* CV57 Bitmuster der Ausgänge für Befehl 2.Adresse 1 (grün)
* CV58 reserved
* CV59 reserved
* FSIGNAL0 2. Folgeadresse (optional)
* CV60 Bit 2.. 0 Bitmuster hard/soft gibt an, welche Ausgänge 'hart' umschalten (Bit=1)
* und Welche Ausgänge weich überblenden (Bit=0)
* CV61 Bitmuster der Ausgänge für Befehl 3.Adresse 0 (rot)
* CV62 Bitmuster der Ausgänge für Befehl 3.Adresse 1 (grün)
* CV63 reserved
* CV64 reserved
*
* FVORSIG Vorsignalfunktion
* weitgehend wie FSIGNAL2 ausser:
* CV53 low Byte der Adresse des angekündigten Hauptsignals
* CV54 high Byte der Adrsse des angekündigten Hauptsignals
*/
#define ENCODER_DOUBLE // Eigenschaften des Drehencoders (Impulse per Raststellung)
 

// vom Anwender änderbare Parameter um den Zubehördecoder an die verwendete HW anzupassen
 
// Beispiel für Variante mit Licht-Ausfahrsignal mit Vorsignal, mit Betriebsmode Led an Pin 13 (interne Led)
 
//----------------------------------------------------------------
// Hardwareabhängige Konstante ( nicht per CV änderbar)
//----------------------------------------------------------------
const byte dccPin = 2;
const byte ackPin = NC;
 
// Eingänge analog: ( Bei Nano und Mini - Versionen kann hier auch A7 und A6 verwendet werden, um mehr
// digital nutzbare Ports freizubekommen.
// beim UNO sind A7+A6 nicht vorhanden! )
const byte betrModeP = A7; // Analogeingang zur Bestimmung des Betriebsmodus. Wird nur beim
// Programmstart eingelesen!
const byte resModeP = A6; // Rücksetzen CV-Werte + Mittelstellung Servos
 
// Eingänge digital (die Ports A0-A5 lassen sich auch digital verwenden): ---------
 
// Drehencoder zur Servojustierung ...........
//#define ENCODER_AKTIV // Wird diese Zeile auskommentiert, wird der Encoder nicht verwendet.
// Die Encoder-Ports werden dann ignoriert, und können anderweitig
// verwendet werden.
const byte encode1P = NC; // Eingang Drehencoder zur Justierung.
const byte encode2P = NC;
// ............................................
//-------------------------------------------------------------------------------------------------------
// Betriebswerte ( per CV änderbar ) Diese Daten werden nur im Initiierungsmodus in die CV's geschrieben.
// Der Initiierungsmodus lässt sich per Mode-Eingang aktivieren oder er ist automatisch aktiv, wenn keine
// sinnvollen Werte im CV47 stehen.
//-------------------------------------------------------------------------------------------------------
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 };
//------------------------------------------------------------------------------------
 

 


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#143 von MicroBahner , 17.05.2017 17:02

Dir ist aber schon klar, dass das nur die Konfigurationsdatei für den Zubehördecoder ist?

Du brauchst in deinem Sketchdirectory ( DCC_Zubehoerdecoder ) also 2 Dateien:

  • 1. DCC_Zubehoerdecoder.ino - das eigentliche Programm ( das musst Du nicht ändern, aber es muss da sein )
  • 2. DCC_Zubehoerdecoder.h - Die Konfigurationsdatei. Die hat dann den von mir oben geposteten Inhalt.


P.S. Wenn Du den Nano anschliesst, sieht Du denn dann im Gerätemanager einen Eintrag mit einem gelben Ausrufezeichen? Kommt überhaupt im Gerätemanager ein Eintrag dazu?


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

#144 von Detsimbo , 17.05.2017 18:01

Soooo es funktioniert... und es lag doch am Kabel... ich hatte bestimmt 5 verschiedene ausprobiert und das letzte was noch passte war es dann... 2 Tage rumgebastelt

Zitat

Du brauchst in deinem Sketchdirectory ( DCC_Zubehoerdecoder ) also 2 Dateien:
1. DCC_Zubehoerdecoder.ino - das eigentliche Programm ( das musst Du nicht ändern, aber es muss da sein )
2. DCC_Zubehoerdecoder.h - Die Konfigurationsdatei. Die hat dann den von mir oben geposteten Inhalt.



also das heisst den DCC_Zubehördecoder laden und Deine Datei dann hinein kopieren?


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#145 von MicroBahner , 17.05.2017 18:12

Zitat

Soooo es funktioniert... und es lag doch am Kabel... ich hatte bestimmt 5 verschiedene ausprobiert und das letzte was noch passte war es dann.

Na super! . Aber so einen Ausschuß an Kabeln hatte ich bisher noch nicht

Zitat

also das heisst den DCC_Zubehördecoder laden und Deine Datei dann hinein kopieren?

Genau! ( Den Inhalt der DCC_Zubehoerdecoder.h austauschen )


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

#146 von Detsimbo , 17.05.2017 21:45

Perfekt! Das hat alles super funktioniert. Ich habe den Sketch erfolgreich auf den Nano laden können.
Ja, das mit den Kabeln find ich auch sehr merkwürdig.
Nun zu dem was ich eigentlich gerne machen würde.
Hp0 Hp1 Hp2 schalten


wie muss ich was wo ändern?
Digitale Adressen vergeben damit ich die Signale ansteuern kann...


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#147 von MicroBahner , 17.05.2017 22:15

Hast Du die Hardware schon komplett aufgebaut, wie in dem Auszug des Manuals?
Dann sollte das 1. Signal (Leds an A0-A2) auf die DCC-Adressen 17/18 reagieren.


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

#148 von Detsimbo , 17.05.2017 22:51



die Pins sind irgendwie anders verteilt, kann ich ihn überhaupt verwenden? Die "Verbindungen" einfach anders, so das es passt?


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#149 von MicroBahner , 17.05.2017 23:03

Zitat

die Pins sind irgendwie anders verteilt, kann ich ihn überhaupt verwenden?

Was meinst Du mit 'anders verteilt? Ich hoffe, Du verwechselst einen Schaltplan nicht mit einem Bestückungsplan? Wenn in einem Schaltplan die Pinreihenfolge im Bild mit der Reihenfolge am Bauteil übereinstimmt ist das eher zufällig und keineswegs die Regel.
Da das Platinchen keine eindeutige Pin-Numerierung hat, musst Du dich da auschließlich nach den aufgedruckten Pinnamen richten.


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

#150 von Detsimbo , 17.05.2017 23:24

Zitat

Ich hoffe, Du verwechselst einen Schaltplan nicht mit einem Bestückungsplan?



anscheinend schon... ich bin davon ausgegangen das die Anordnung genauso ist wie auf Deinem Schaltplan... sorry ops:
wieder etwas gelernt.

Ich sag ja "Anfänger" flaster:

Dann werde ich Morgen mal ans löten gehen und hoffe das es klappt... einen Anfang hatte ich ja schon gepostet. Einwände gab es dazu keine also gehe ich davon aus das es ganz ordentlich aussieht. Das ist meine 1. Platine die ich gelötet habe!


Grüße Detlef


 
Detsimbo
RegionalExpress (RE)
Beiträge: 94
Registriert am: 17.12.2016
Ort: Schwarzwald
Gleise Roco Geoline
Spurweite H0
Steuerung Traincontroller 9 Gold
Stromart DC, Digital


   

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