Arduinobasierter DIY Zubehördecoder - V6.2.0

Bereich für alle Themen rund um Digitaltechnik und digitale Umbauten.

cab
Regionalbahn (RB)
Beiträge: 27
Registriert: Do 11. Nov 2010, 13:57
Nenngröße: H0
Stromart: digital
Alter: 56
Deutschland

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#51

Beitrag von cab »

Hallo Klaus,

also 0,8A ist ein ganz normaler Servo-Motorstrom. der kann unter Volllast auch noch größer werden. Er ist außerdem vom Servotyp abhängig.

Carsten


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#52

Beitrag von KlausMerkert »

Hallo Carsten,

es mag Servos geben, wo das normal ist. Bei meinen Mini-Servos ist es nicht normal.
Ich will den Ablauf genauer schildern:
Das Servo läuft zunächst langsam um, nach ca. 90° läuft es sehr schnell zurück vermutlich gegen den Anschlag, daher der große Strom.
Ich vermute, dass die Ansteuerung nicht korrekt ist.

Viele Grüße

Klaus


cab
Regionalbahn (RB)
Beiträge: 27
Registriert: Do 11. Nov 2010, 13:57
Nenngröße: H0
Stromart: digital
Alter: 56
Deutschland

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#53

Beitrag von cab »

Hallo Klaus,

Scheinbar springt durch einen Überlauf ab einem bestimmten Punkt, die Ansteuerung auf einen minalen oder maximalen Impuls. Das würde das Verhalten erklären.

Carsten

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#54

Beitrag von MicroBahner »

Hallo Klaus,
ich kann das Verhalten bei mir nicht nachvollziehen. Welche Werte stehen denn in den CV's? Und war das Verhalten schon immer so oder seit wann ist das aufgetreten?
Die Grenzwerte der Impulslängen bei 0 bzw 180 sind standardmäßig auch kleiner bzw größer als 1ms ( liegen bei 0,7 bzw 2,3ms, kann man ändern ) . Vielleicht hat dein Servo damit Probleme?

Beim write-Befehl werden Werte > 180 als Impulslänge in µs interpretiert. Da 181 aber eine viel zu kleine Impulslänge wäre, wird das auf 0,7ms begrenzt. D.h. 180 bedeutet maximale Impulslänge, 181 minimale Impulslänge. Das ist vielleicht etwas unglücklich, aber das Verhalten bei dir kann das auch nicht erklären.
Ich werde das aber wohl so ändern, dass Werte bis 255 auf jeden Fall als Winkel interpretiert werden ( und dann auf 180 Grad begrenzt werden ).


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#55

Beitrag von KlausMerkert »

Hallo Franz-Peter,

hast du mein Programm benutzt?

Viele Grüße

Klaus

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#56

Beitrag von MicroBahner »

Hallo Klaus,
ja, wobei ich den Inhalt deiner CV's ja nicht kenne - oder trat das Problem auch bei einer 'Grundinitiierung' mit den Werten aus der .h-Datei auf ( das habe ich gemacht) ?


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#57

Beitrag von KlausMerkert »

Hallo Franz-Peter,

morgen muss ich mich - leider - zunächst um andere Sachen kümmern.
Ich habe eigentlich nur deine Tipps eingebaut. Ich melde mich wieder.

Viele Grüße

Klaus


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#58

Beitrag von KlausMerkert »

Hallo Franz-Peter,

ich habe gerade Folgendes gemacht:
- neueste Version von github geladen, kompiliert, getestet, Servos liegen an 4. und 5. Stelle,
- meine Zusätze in ino-Datei eingebaut, Header-Datei auf

Code: Alles auswählen

const byte iniTyp[]     =   {    FSERVO,   FSERVO };
const byte out1Pins[]   =   {       A0,        A1 };  // output-pins der Funktionen
const byte out2Pins[]   =   {       NC,        NC };
const byte out3Pins[]   =   {       NC,        NC };
und

Code: Alles auswählen

const byte iniFmode[]     = { 1,           1   };
const byte iniPar1[]      = { 0,           0   };
const byte iniPar2[]      = { 180,         180 };
const byte iniPar3[]      = { 8,           8   };
*.ino auf 1. und 2. Stelle angepasst, jetzt tritt der bekannte Fehler auf

Um die Vermutung zu testen, dass es an obigen Grundeinstellungen liegt, habe ich durch

Code: Alles auswählen

const byte iniTyp[]     =   {    FCOIL,   FSIGNAL2, FSIGNAL0,   FSERVO,   FSERVO,          FSTATIC };
const byte out1Pins[]   =   {       A2,          9,       12,       A0,       A1,               NC };  // output-pins der Funktionen
const byte out2Pins[]   =   {       A3,         10,       NC,        7,        3,               NC };
const byte out3Pins[]   =   {       NC,         11,       NC,        8,       NC,               NC };
und

Code: Alles auswählen

const byte iniFmode[]     = { CAUTOOFF,         0,0b11110000,        0,        0,  BLKMODE|BLKSOFT };
const byte iniPar1[]      = {       50, 0b0000010,0b00000100,        0,        0,               50 };
const byte iniPar2[]      = {       50, 0b0000001,0b00001001,      180,      180,               50 };
const byte iniPar3[]      = {        0,        50,         8,        8,        8,              100 };
ersetzt und *.ino auf 4. und 5. Stelle angepasst, jetzt funktioniert alles prima. Wohlgemerkt mit meinen Zusätzen in *.ino.

Jetzt habe ich die 6.Spalte jeweils gelöscht, funktioniert weiterhin.

Mutig gemacht, habe ich die erste Spalte gelöscht. funktioniert weiterhin. Übrigens wurde immer im IniMode gestartet.


Viele Grüße

Klaus
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#59

Beitrag von KlausMerkert »

Hallo Franz-Peter,

ich habe geduldig den Fehler eingekreist und glaube, ihn reproduzieren zu können.
Wenn man in

Code: Alles auswählen

const byte iniTyp[]     =   {   FSERVO,   FSERVO };
const byte out1Pins[]   =   {       A0,       A1 };  // output-pins der Funktionen
const byte out2Pins[]   =   {       NC,       3 };
const byte out3Pins[]   =   {       NC,       NC };
bei den out2Pins NC einträgt, so wird der Fehler beim Umschalten durch DCC beim entsprechenden Servo ausgelöst.

Viele Grüße

Klaus
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#60

Beitrag von MicroBahner »

Hallo Klaus,
es tut mir sehr leid, aber ich kann deinen Fehler einfach nicht reproduzieren. Ich habe deine letzte zip-Datei heruntergeladen, und mit den Einstellungen in der .h-Datei getestet. Es macht bei mir keinen Unterschied, ob bei den Outpins ein NC oder eine Pinnumer steht.
Egal ob durch DCC-Kommandos, oder über deine Eingänge - die Servos fahren immer ordentlich hin und her.
Tritt das Problem bei dir denn auch auf, wenn Du die .ino von GitHub unverändert lässt und nur die .h Datei entsprechend anpasst?
Und welche Version der MobaTools hast Du im Einsatz?
Versorgst Du die Servo's noch aus den Arduino 5V oder hast Du es schon mal mit einer eigenen Stromversorgung für die Servos versucht ( ich würde Servos niemals vom Arduino her versorgen - vielleicht ist das auch noch ein Unterschied in der Testumgebung) ?


railfan2401
S-Bahn (S)
Beiträge: 11
Registriert: Do 11. Sep 2014, 19:46
Nenngröße: H0
Stromart: digital
Steuerung: Lenz DCC
Wohnort: München

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#61

Beitrag von railfan2401 »

Hallo Franz-Peter,
Ende Januar hatte ich Dir ja schon angekündigt, dass ich an der Lichtsignalsteuerung lebhaft interessiert bin. Nachdem das fertige Produkt vorliegt, versuche ich es in Betrieb zu nehmen. Zunächst einmal ein ganz großes Kompliment, nicht nur dass Du das Programm fertiggestellt sondern auch eine ausgezeichnete Dokumentation dazu geliefert hast. Auf dieser Basis ist es auch mir fast gelungen ans Ziel zu gelangen. Um das Erfolgserlebnis perfekt zu machen, bräuchte ich jedoch noch einige Bestätigungen bzw. Erläuterungen, die Dich hoffentlich nicht zu sehr in Anspruch nehmen.

Meine Fragen beziehen sich ausschließlich auf die Anwendung als Lichtsignaldecoder, zunächst zur Hardware.

1. Ist es richtig, dass Ausgang A4 über R8 10k mit +5V zu verbinden ist, auch wenn man den Encoder nicht benutzt?
2. Ist es hinsichtlich der Betriebsart richtig den Ausgang A5 neben R10 (+5V) mit R12 22k (GND) fest zu verbinden, wenn man ganz normalen Betrieb machen möchte? (Um ehrlich zu sein, so ganz verstanden habe ich die anderen Varianten nicht, scheine sie aber auch nicht zu benötigen)

Auf dieser Basis habe ich die Schaltung in Betrieb genommen und ein erfreuliches aber nicht ganz befriedigendes Ergebnis erzielt. Die Signalbilder sehen nicht so aus, wie sie eigentlich sollen. Ich nehme an, dass das an den von mir verwendeten Signalen von Viessmann liegt, deren gemeinsamer Leiter positiv ist und die nach GND geschaltet werden wollen. Soweit ich verstanden habe, sind bei Dir die aktiven Signalzustände HIGH, so dass ich es wohl mit einer verkehrten Welt zu tun habe. Falls meine Vermutung hinsichtlich der Signalbilder richtig sein sollte, kann ich das im Hauptprogramm ändern (an das Hauptprogramm habe ich mich aus guten Gründen bisher nicht herangetraut) oder muss ich das Signal hardwaremäßig invertieren?

Ansonsten scheint bei mir alles in Ordnung zu sein. Das DCC-Signal wird sauber entkoppelt, die Programmierung auf dem Programmiergleis funktioniert, die CVs können ausgelesen und geändert werden, und auch PoM funktioniert. Nicht ganz sicher bin ich, ob ich mit den Bitmustern der Signalbildern zurechtkomme, aber das muss ich dann erst einmal ausprobieren.
Beste Grüße
Burkhardt


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#62

Beitrag von KlausMerkert »

Hallo Franz-Peter,

ich habe jetzt mobatools und nmradcc jeweils als neueste Version installiert.
Der Fehler scheint damit behoben. ;-)
Es tut mir leid, dass ich das nicht schon vorher gemacht habe, aber ich dachte, ich wäre auf dem neuesten Stand.

Was hältst du davon, die mobatools (eventuell unter einem internationalen Namen) bei Arduino Libraries anzusiedeln?
https://www.arduino.cc/en/Guide/Libraries
If you want to add your own library open a new issue on github

Damit würde die Bibliothek automatisch aktualisiert, oder sehe ich das falsch?

Viele Grüße und vielen Dank für deine Geduld.

Klaus
Zuletzt geändert von KlausMerkert am So 12. Feb 2017, 17:10, insgesamt 1-mal geändert.

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#63

Beitrag von MicroBahner »

Hallo Burkhardt,
railfan2401 hat geschrieben:
So 12. Feb 2017, 12:58
1. Ist es richtig, dass Ausgang A4 über R8 10k mit +5V zu verbinden ist, auch wenn man den Encoder nicht benutzt?
Ja, da damit auch die CV-Werte wieder mit den Werten aus der .h-Datei überschrieben werden können (Wenn A4 beim Start des Programms auf Gnd gezogen ist)
railfan2401 hat geschrieben:
So 12. Feb 2017, 12:58
2. Ist es hinsichtlich der Betriebsart richtig den Ausgang A5 neben R10 (+5V) mit R12 22k (GND) fest zu verbinden, wenn man ganz normalen Betrieb machen möchte? (Um ehrlich zu sein, so ganz verstanden habe ich die anderen Varianten nicht, scheine sie aber auch nicht zu benötigen)
Wenn Du nur den 'Normalbetrieb' brauchst, kannst Du A5 fest mit 5V verbinden.
railfan2401 hat geschrieben:
So 12. Feb 2017, 12:58
Soweit ich verstanden habe, sind bei Dir die aktiven Signalzustände HIGH, so dass ich es wohl mit einer verkehrten Welt zu tun habe. Falls meine Vermutung hinsichtlich der Signalbilder richtig sein sollte, kann ich das im Hauptprogramm ändern (an das Hauptprogramm habe ich mich aus guten Gründen bisher nicht herangetraut) oder muss ich das Signal hardwaremäßig invertieren?
Das hast Du richtig verstanden, aktive Signalzustände sind HIGH. Wobei mein 'Testsignal' genauso verschaltet ist wie dein Viessmann-Signal (+ als gemeinsamer Anschluß). Ich habe es aber über einen ULN2003-Treiber angeschlossen, und der invertiert. Grundsätzlich könnte man das natürlich im Programm invertieren :roll: - mal schauen, ob ich dafür noch ein Flag spendiere :wink: . Allerdings ist die 'Glühbirnensimulation' der SoftLed - mit einem etwas längeren Nachglühen beim Ausschalten - auch so ausgelegt, dass OFF = LOW ist.
railfan2401 hat geschrieben:
So 12. Feb 2017, 12:58
Nicht ganz sicher bin ich, ob ich mit den Bitmustern der Signalbildern zurechtkomme, aber das muss ich dann erst einmal ausprobieren.
Damit erreichst Du aber auch erst die volle Flexibilität der Lichtsignalansteuerung :redzwinker:. So schwierig ist es aber auch nicht - jedes Bit entspricht einfach einem Ausgang. Versuch macht kluch :fool: - kaputtgehen kann dabei ja nichts.
Und wenn Du noch Fragen hast, einfach her damit 8)

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#64

Beitrag von MicroBahner »

Hallo Klaus,
ok, wundert mich zwar etwas, aber vielleicht probier ich das nochmal aus. Die Tiefen der Software sind ja manchmal unergründlich, und Fehler verstehen sich da perfekt zu verstecken :redzwinker:
KlausMerkert hat geschrieben:
So 12. Feb 2017, 15:14
Was hältst du davon, die mobatools (eventuell unter einem internationalen Namen) bei github anzusiedeln?
Die MobaTools liegen bereits dort.
Um sie bei Arduino anmelden zu können, müssten aber noch ein paar Anpassungen gemacht werden. Und Servo-Libs gibt's da bereits haufenweise. (Allerdings habe ich noch keine gefunden die auch die Geschwindigkeit kontrollieren kann, ohne dass dazu im Sketch etwas gemacht werden muss)
KlausMerkert hat geschrieben:
So 12. Feb 2017, 15:14
Damit würde die Bibliothek automatisch aktualisiert, oder sehe ich das falsch?
Automatisch geht das meines Wissens nicht. Aber die IDE informiert dich, wenn es Updates zu Bibliotheken gibt.


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#65

Beitrag von KlausMerkert »

Hallo Franz-Peter,
aber vielleicht probier ich das nochmal aus
Ich hatte vorher die Vorabversion von 0.8 benutzt.

Viele Grüße

Klaus


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#66

Beitrag von KlausMerkert »

Hallo Franz-Peter,

ich habe nun die POM-Programmierung mit Intellibox und Lenz-Zentale getestet, beide Mal leider ohne Erfolg. Vielleicht habe ich etwas falsch eingegeben. Welche Adresse muss als Lok-Adresse (?) eingegeben werden, die Decoder-Adresse oder die POM-Adresse? Ich habe eigentlich beides probiert.

Code: Alles auswählen

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 )
Ich habe CV48 als 48 und CV49 als 0 ausgelesen, wie passt das zu PomAddr = 50 ?

Wie sollte eigentlich modePin elektrisch verschaltet werden?

Viele Grüße

Klaus

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#67

Beitrag von MicroBahner »

Hallo Klaus,
KlausMerkert hat geschrieben:
Mo 13. Feb 2017, 12:00
Welche Adresse muss als Lok-Adresse (?) eingegeben werden, die Decoder-Adresse oder die POM-Adresse?
für die PoM-Adressierung muss die Zentrale die PoM-Adresse senden, also die Adresse, die in CV48/49 steht.
KlausMerkert hat geschrieben:
Mo 13. Feb 2017, 12:00
Ich habe CV48 als 48 und CV49 als 0 ausgelesen, wie passt das zu PomAddr = 50 ?
Gar nicht, da wurde CV48 offensichtlich geändert.
KlausMerkert hat geschrieben:
Mo 13. Feb 2017, 12:00
Wie sollte eigentlich modePin elektrisch verschaltet werden?
Im Manual zum Zubehördecoder ist ein beispielhafter Schaltplan, da ist auch die Beschaltung des modePin ersichtlich. Wenn Du alle Modi einstellen können möchtest, musst du beim Start am modePin 5V - 3,3V - 1,7V - 0V anlegen, je nach gewünschtem Modus. PoM ist nur bei 3,3V oder 0V aktiv ( ist auch im Manual beschrieben ).


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#68

Beitrag von KlausMerkert »

Hallo Franz-Peter,

POM funktioniert mit der IB. :-) Mein Fehler war, dass ich nach dem Jumperwechsel nicht neu gestartet habe.

Meine Frage nach dem PinMode-Ausgang zielte auf die Ledanzeige. Soll die Led gegen +5V oder Masse geschaltet werden?

Code: Alles auswählen

const byte modePin      =   13;     // Anzeige Betriebszustand (Normal/Programmierung) (Led)
Viele Grüße

Klaus

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Arduinobasierter DIY Zubehördecoder (DCC) - Vorabvers. mit Invertierung der Led-Ausgänge bei Lichtsignalen

#69

Beitrag von MicroBahner »

Hallo Klaus,
sorry, da habe ich dich falsch vertanden. Der modePin ist so ausgelegt, dass die OnBoard Led des Uno/Nano verwendet werden kann (die hängt am Pin13). Da ist dann HIGH='Led an'.

Hallo Burkhardt,
nochmal zur Invertierung der Led-Signale:

railfan2401 hat geschrieben:
So 12. Feb 2017, 12:58
Soweit ich verstanden habe, sind bei Dir die aktiven Signalzustände HIGH, so dass ich es wohl mit einer verkehrten Welt zu tun habe. Falls meine Vermutung hinsichtlich der Signalbilder richtig sein sollte, kann ich das im Hauptprogramm ändern (an das Hauptprogramm habe ich mich aus guten Gründen bisher nicht herangetraut) oder muss ich das Signal hardwaremäßig invertieren?
Da das doch häufiger so ist , dass die Led's gegen Gnd geschaltet werden habe ich das im Rahmen meiner derzeitigen Optimierungen der MobaTools noch eingebaut. Wenn Du es mal ausprobieren willst, brauchst Du die aktuellen Entwicklungsstände von MobaTools und Zubehördecoder. Im Zubehördecoder bestimmt nun das Bit 0 im Mode-CV des Lichtsignals ( im .h File der Downloadversion ist es CV 55 ) ob die Ausgänge der Softleds invertiert werden.


railfan2401
S-Bahn (S)
Beiträge: 11
Registriert: Do 11. Sep 2014, 19:46
Nenngröße: H0
Stromart: digital
Steuerung: Lenz DCC
Wohnort: München

Re: Arduinobasierter DIY Zubehördecoder (DCC) V3.1 mit Lichtsignalansteuerung

#70

Beitrag von railfan2401 »

Hallo Franz-Peter,
zunächst einmal vielen Dank für Deine Erläuterungen #63, die mir weitergeholfen, mich jedoch noch nicht ganz ans Ziel geführt habe. Mit den Bitmustern der Signalbilder habe ich, trotz Versuch macht kluch, meine Probleme, es heißt bei mir eher Versuch und Irrtum. Mein Testfeld sieht folgendermaßen aus:

AccDec-Adresse 50 (17 ist belegt und würde eine Weiche überstrpazieren)
PoM-Adresse 50
Vorlage ist dann das Beispiel aus dem Manual S. 2.
Die Zubehörfunktionen wurden reduziert auf FSIGNAL2 und FSIGNAL0. Die outputpins sind 5,6,7 und 8,9.
Jetzt zu den Bitmustern:

1. Spalte unter FSIGNAL2 (Adresse 50?)
iniFmode: 0. Ist reserviert, also lasse ich davon besser die Finger.
iniPar1 + 2: Bitmuster in der Reihenfolge der outputpins. Das funktioniert, schreibt man eine 1 in ein bit, so leuchtet die entsprechende Led.
iniPar3: 50. Das ist wohl die Überblendzeit.

2. Spalte unter FSIGNAL0 (Adresse 51?)
iniFmode: 0b10000. Werden hier die Übergänge von Pin 5-8 weich und von Pin 9 hart gestellt?
iniPar1 + 2: Bitmuster in der Reihenfolge der outputpins.
iniPar3: 8. Ist reserviert, also lasse ich davon besser die Finger.

Eingetragen habe ich jetzt in Par1 + 2 vier verschiedene Signalbilder (Hp0 rot+rot pin 5+6, Hp1 gr pin 7, Hp2 gr+ge pin 7+8, Sh1 rot+w pin 5+9). Alle Signalbilder erscheinen dann irgendwie, aber ich bin nicht in der Lage einen Übergang von Adresse 50 nach 51 und zurück zu finden, so dass ich sie gezielt aufrufen kann. Anscheinend mache ich irgendetwas falsch. Wenn Du mir hierzu einen Tipp geben könntest, wäre ich Dir sehr dankbar.

Die jetzt vorliegende neue Version mit der Schaltung nach GND habe ich mir bereits heruntergeladen und werde sie, nachdem ich obige Klippe umschifft habe, gerne ausprobieren.
Beste Grüße
Burkhardt

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Arduinobasierter DIY Zubehördecoder (DCC) - geänderte Lichtsignalansteuerung

#71

Beitrag von MicroBahner »

Hallo Burkhardt,
railfan2401 hat geschrieben:
Mi 15. Feb 2017, 20:35
iniPar1 + 2: Bitmuster in der Reihenfolge der outputpins. Das funktioniert, schreibt man eine 1 in ein bit, so leuchtet die entsprechende Led.
na das sieht doch schon gar nicht so schlecht aus :D
railfan2401 hat geschrieben:
Mi 15. Feb 2017, 20:35
iniPar3: 50. Das ist wohl die Überblendzeit.
genau
railfan2401 hat geschrieben:
Mi 15. Feb 2017, 20:35
iniFmode: 0b10000. Werden hier die Übergänge von Pin 5-8 weich und von Pin 9 hart gestellt?
So ist es. Da Du alle Ausgägne für Led's benutzt, solltest Du auchdas 5. Bit löschen, dann werden alle Led's weich auf/abgeblended. Die Einstellung 'hart' ist eigentlich nur dafür gedacht, wenn man z.B. auch ein Relais zur Zugbeeinflussung damit schalten will.
railfan2401 hat geschrieben:
Mi 15. Feb 2017, 20:35
1. Spalte unter FSIGNAL2 (Adresse 50?)
....
2. Spalte unter FSIGNAL0 (Adresse 51?)
Ja, das sind bei dir die Adressen 50 und 51. Welches Signalbild angewählt wird, bestimmt die Kombination der Zustände beider Adressen. Sind beide Adressen ausgeschaltet, so wird das Signalbild unter FSIGNAL2->iniPar1 angezeigt. Schaltest Du dann nur die Adresse 50 um, so wird das Signalbild unter FSIGNAL2->iniPar2 angezeigt. Belässt Du Adresse 50 aus, und schaltest nur Adresse 51 um, so wird das Signalbild unter FSIGNAL0->iniPar1 angezeigt. Schaltest Du beide Adressen um, so wird das Signalbild unter FSIGNAL0->iniPar2 angezeigt. So könnte also die Funktionstabelle aussehen:

Code: Alles auswählen

Adr50 rot  + Adr51 rot :  Hp00    (FSIGNAL2->iniPar1)
Adr50 grün + Adr51 rot :  Hp1     (FSIGNAL2->iniPar2)
Adr50 rot  + Adr51 grün : Hp2     (FSIGNAL0->iniPar1)
Adr50 grün + Adr51 grün : Hp0/Sh1 (FSIGNAL0->iniPar2)
Nachdem ich jetzt bei deiner Rückfrage nochmal nachgedacht habe, liegt der Denkfehler aber wohl bei mir: Das Signalbild sollte einfach vom zuletzt gesendeten Befehl abhängen, und nicht von der Kombination der Adresszustände. Wie machen das denn die Zentralen (ich habe leider keine :oops: ). Also z.B. so:

Code: Alles auswählen

Adr50 Befehl rot :  Hp00    (FSIGNAL2->iniPar1)
Adr50 Befehl grün : Hp1     (FSIGNAL2->iniPar2)
Adr51 Befehl rot :  Hp0/Sh1 (FSIGNAL0->iniPar1)
Adr51 Befehl grün : Hp2     (FSIGNAL0->iniPar2)
Da werde ich wohl nochmal drübergehen müssen. Das würde dann aber bedeuten, dass bei der Kombination von 3 Adressen nur 6 Signalzustände angewählt werden können und nicht 8 :roll: . Die Ansteuerung ist dann aber definitiv einfacher und übersichtlicher.
Wieviel Signalzustände sind denn bei einem Lichtsignal maximal sinnvoll/nötig?

railfan2401 hat geschrieben:
Mi 15. Feb 2017, 20:35
1. Spalte unter FSIGNAL2 (Adresse 50?)
iniFmode: 0. Ist reserviert, also lasse ich davon besser die Finger.
Dort wird dann in der aktuellen Version eingestellt, ob die Ausgänge invertiert werden (iniFmode=1)

P.S. Edit- Hab' mich jetzt mal ein bisschen schlau gemacht :redzwinker: . Also die Ansteuerung muss ich definitiv ändern und die Signalbilder den einzelnen Weichenbefehlen eindeutig zuordnen. Eine erste Version gibt's auch schon - vielleicht kommst Du damit schon besser zurecht :wink: . Getestet aber erstmal nur für 4 Signalbilder (FSIGNAL2) und das Manual ist auch noch nicht angepasst ...


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) - geänderte Lichtsignalansteuerung

#72

Beitrag von KlausMerkert »

Hallo Franz-Peter,
Das Signalbild sollte einfach vom zuletzt gesendeten Befehl abhängen, und nicht von der Kombination der Adresszustände. Wie machen das denn die Zentralen (ich habe leider keine :oops: ).
Wir benutzen im Club die locoIO-Bausteine gca50, hier kann man ein vierbegriffiges Signal genauso einrichten. Jeweils der letzte gesendete Befehl wählt einen von vier Zuständen an. Wir benutzen auch die Software Rocrail, die mit dieser Art der Ansteuerung umgehen kann. Da letztlich nur 'Weichenbefehle' benutzt werden, sollte jede Zentrale verwendet werden können.

Viele Grüße

Klaus

Benutzeravatar

Threadersteller
MicroBahner
InterCityExpress (ICE)
Beiträge: 2423
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 69

Re: Arduinobasierter DIY Zubehördecoder (DCC) - geänderte Lichtsignalansteuerung

#73

Beitrag von MicroBahner »

Hallo Klaus,
danke für die Info.
Ich werde die ganze Lichtsignalansteuerung jetzt so realisieren. Da braucht's ja dann auch Vorsignale, die abhängig vom Hauptsignal am gleichen Mast dunkelgeschaltet werden müssen, deren Signalbild selbst aber unabhängig davon geschaltet wird.


railfan2401
S-Bahn (S)
Beiträge: 11
Registriert: Do 11. Sep 2014, 19:46
Nenngröße: H0
Stromart: digital
Steuerung: Lenz DCC
Wohnort: München

Re: Arduinobasierter DIY Zubehördecoder (DCC) - geänderte Lichtsignalansteuerung

#74

Beitrag von railfan2401 »

Hallo Franz-Peter,

bei mir dauert es immer ein bisschen länger (gut Ding braucht Weile), aber ich versuche zu verstehen was ich da so mache. Jetzt habe ich die Lichtsignalversion #70 getestet und alles hat auf Anhieb geklappt. Vielen Dank für Deine Bemühungen und die Geduld.
Beste Grüße
Burkhardt


KlausMerkert
RegionalExpress (RE)
Beiträge: 75
Registriert: Sa 1. Aug 2015, 18:38
Nenngröße: H0
Stromart: digital
Steuerung: bidib, Loconet, rocrail
Gleise: Zweileiter H0
Wohnort: Kaiserslautern
Alter: 67
Kontaktdaten:

Re: Arduinobasierter DIY Zubehördecoder (DCC) - geänderte Lichtsignalansteuerung

#75

Beitrag von KlausMerkert »

Hallo Franz-Peter,

ich habe jetzt zwar den Schaltplan in kicad, aber bis zur Platine ist es noch weit.
Du sagst, du fädelst deine Platinen. Da interessiert mich, wie bekommst du die Isolation vom Fädeldraht?

Viele Grüße

Klaus

Antworten

Zurück zu „Digital“