RE: Arduinobasierter DIY Zubehördecoder V7.1.0 freigegeben

#926 von MicroBahner , 22.02.2023 15:47

Hallo Kai,
ein paar Tips zu deinen Problemen:

Zitat von 50921825 im Beitrag #924
wie schon beschrieben habe ich den code entsprechend geändert.

Wenn Du Code zeigst ( also auch z.B. die .h-Dateien), dann bitte nicht als Bild, sondern als Text in Code-Tags ( das kleine Symbol mit <> rechts im Editor). Dann kann man den Code gegebenenfalss auch zum Test kopieren und auf den eigenen Arduino laden.

Zitat von 50921825 im Beitrag #924
wenn ich jetzt über die intellibox die weichenadresse 19 schalte

Bei deiner Konfigdatei wäre der FCOIL-Eintrag aber Adresse 22. ( Erste Adresse ist 17, und dann einfach weiterzählen ... )

Zitat von 50921825 im Beitrag #924
was meinst du mit die alte datei zerstören? ich habe in der hilfedatei nichts dazu gefunden.

Ich denke, Michael meint das Laden einer geänderten Konfig-Datei. Sind bereits gültige CV-Daten im Arduino, so wird diese beim erneuten Hochladen des Programms nicht automatisch in die CV's übernommen. Das dient dazu, dass manuell geänderte CV-Werte nicht bei jedem Hochladen wieder überschrieben werden. Dazu findest Du Hinweise im Manual unter 'Inbetriebnahme'. Es gibt verschiedene Möglichkeiten, das Übernehmen der Werte aus der Konfig-Datei in die CV's zu erzwingen.
Die Werte in der Konfig-Datei werden auch dann übernommen, wenn Du den Decoder komplett umkonfigurierst, also die iniTyp-Werte änderst. Dann macht es keinen Sinn die alten CV-Werte zu behalten. Aber das hast Du ja nicht gemacht.

Wenn Du das nicht beachtest, bleiben die Daten des ersten Hochladens erhalten, egal was Du in der Konfig-Datei veränderst.
Im Moment kann ich nicht nachvollziehen, was in deinem Decoder passiert, da nicht klar ist, wie die CV's im Decoder tatsächlich gesetzt sind.

Edit: Michael war schneller und hat ja schon alle Fragen beantwortet

Edit2:
Während Du noch mit der Konfig-Datei experimentierst, kann es sinnvoll sein, die Werte beim Hochladen grundsätzlich in die CV's zu übernehmen. Dazu kannst Du diese Zeilen:

1
2
3
4
 
// #define FIXMODE NORMALMODE    // Ist dieses define aktiv, wird der Betriebsmode fest gesetzt, betrModeP wird dann
// nicht gelesen und ignoriert. Mögliche Werte:
// NORMALMODE, POMMODE, INIMODE, ADDRMODE
 
 


ändern in

1
2
3
4
 
#define FIXMODE INIMODE    // Ist dieses define aktiv, wird der Betriebsmode fest gesetzt, betrModeP wird dann
// nicht gelesen und ignoriert. Mögliche Werte:
// NORMALMODE, POMMODE, INIMODE, ADDRMODE
 
 


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


h0-m-jk, kbs411 und 50921825 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 22.02.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.0 freigegeben

#927 von MicroBahner , 22.02.2023 16:53

Hallo Michael,

Zitat von kbs411 im Beitrag #925
Um nun die vorherige Konfiguration aus dem Arbeitsspeicher zu entfernen setzte ich die CV8 auf den Wert 255 und mache anschließend einen Reset mittels Strom aus- / einschalten.

Das Aus-Einschalten sollte gar nicht notwendig sein. Ein Schreiben auf CV8 ( egal welcher Wert ) soll nach NEM ein Rücksetzen auf die 'Werkseinstellungen' auslösen. Und das macht der Decoder auch - den Neustart führt er automatisch aus. Die 'Werkseinstellungen' sind hier halt das, was in der Konfig-Datei steht ;)


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.1.0 freigegeben

#928 von 50921825 , 22.02.2023 19:18

hallo zusammen,
als aller erstes: herzlichen dank michael und herzlichen dank franz-peter. leider hat nichts geholfen und der frust ist echt riesig.
weder ist es, wie auch von mir erwartet, die adresse 22 die angesprochen wird, noch hat sich irgendetwas im verhalten des nanos geändert. die unos habe ich dann nichtmehr ausprobiert, da ich sie wahrscheinlich schonst kleingebissen hätte. ich nehme an dieses gefühl kennt jeder.
ich versuche auf jeden tipp, jede gestellte frage und jeden tipp einzugehen. ebenfalls stelle ich den code ein, den ich auf den arduino gespielt habe. es wäre super nett von euch, wenn ihr die zeit findet um euch das mal anzusehen, was hier schiefläuft.

den fred muss ich leider in mehrer teile teilen.

Zitat von kbs411 im Beitrag #925
Du hast die beiden LEDs an D5 und D6 des Nano angeschlossen habe ich verstanden. Jetzt haben die meisten LEDs aber 2 Anschlüsse - eine Anode (+) und eine Kathode (-). Allgemein können die Ausgänge des Nanos oder anderer µCs sowohl eine Last mit dem High- oder mit dem Low-Pegel schalten.

ich habe die anode an die ausgänge angeschlossen und masse verbunden.

Zitat von kbs411 im Beitrag #925
Damit ist leider nicht die Frage beantwortet, ob diese Weichen eine Endabschaltung haben oder nicht. Du kannst das leicht herausfinden, indem du eine LED mit Vorwiderstand ! in Reihe zu der zuletzt betätigten Spule schaltest. Leuchtet die LED nicht, ist eine Endabschaltung sehr wahrscheinlich oder die Spule der Weiche ist im Weichenhimmel angekommen. Leuchtet die LED allerdings, hat sie entweder keine Endabschaltung oder sie ist defekt.

als erstes muss der testaufbau mit den led's funktionieren. da ich eh nur impulsweise schalten möchte ist das thema mit der endabschaltung für mich sekundär, ich werde mich aber bei gegebener zeit darum kümmern.

Zitat von kbs411 im Beitrag #925
C-Gleis Weichen von Märklin sind eine ganz andere Baustelle, da sie entweder mit Handhebel bedient werden oder unter der Weiche einen Digital-Decoder eingebaut haben. In diesem Fall kannst du sie direkt mit der Intellibox ansteuern. Aber Achtung! Ich bin nicht sicher, ob alle C-Weichendecoder beide Protokolle Märklin M2 und DCC beherrschen. Das musst du bei der Konfiguration berücksichtigen.

meine weichen haben lediglich einen antrieb verbaut und keinen decoder. momentan werden sie über ein stellpult geschaltet. dieses schalten soll ja der arduino übernehmen.

Zitat von kbs411 im Beitrag #925
Das ist ein großer Irrtum! MOS-FETs können zwar große Leistungen schalten, aber galvanisch (elektrisch) wird da gar nichts getrennt. Das ist an dieser Stelle aber meist auch nicht nötig - es sei denn, du möchstest deine analogen Weichen mit Wechselstrom aus einem anderen Netztrafo speisen. Dann solltest du keine Experimente mit MOS-FTEs machen, sondern besser Relais verwenden.


das hatte ich in der tat nichtmehr auf dem schirm. herzlichen dank für den hinweis, das werde ich auf jeden fall im hinterkopf behalten. da die spannungsversorgung für den arduino noch nicht feststeht und er momentan noch über usb versorgt wird steht das noch hinten an. auf jeden fall werde ich es nicht vergessen.

Zitat von kbs411 im Beitrag #925
Zunächst; Für die Programmierung sind in der PDF-Hilfedatei auf Seite 7 die Einstellungen für FCOIL zu finden. Der erste Parameter \'COILMOD\' setzt sich zusammen aus einer ODER-Verknüpfung von \'NOPOSCHK\' und \'CAUTOOFF\'. Das geschieht in der darüberbefindlichen Zeile
"#define COILMOD NOPOSCHK | CAUTOOFF".
Hast du nun an dieser Konfiguration Änderungen vorgenommen, musst du den Sketch zunächst wieder in den Nano schreiben.
Der Nano hat aber, wie alle µCs verschiedene Speichertypen, wie z.B. EEPROM RAM etc. Um nun die vorherige Konfiguration aus dem Arbeitsspeicher zu entfernen setzte ich die CV8 auf den Wert 255 und mache anschließend einen Reset mittels Strom aus- / einschalten.
Lies dazu bitte aber in der PDF-Hilfedatei die Seite 13 durch.

die programmierung der einzelnen cv's ist leider nicht möglich. die schaltung für den ack über das programmiergleis habe ich nicht. daher bleibt mir nur die programmierung über die dateien.

den code werde ich im anschluss einstellen. danke für die funktionserklärung, ich hoffe, es wird die suche einfacher machen.

Zitat von MicroBahner im Beitrag #926
Bei deiner Konfigdatei wäre der FCOIL-Eintrag aber Adresse 22. ( Erste Adresse ist 17, und dann einfach weiterzählen ... )


ja... genau diese überlegung hatte ich auch. leider ist es die 19. sowohl das schalten direkt mit der intellibox, als auch das schalten über rocrail.

Zitat von MicroBahner im Beitrag #926
Wenn Du das nicht beachtest, bleiben die Daten des ersten Hochladens erhalten, egal was Du in der Konfig-Datei veränderst.Im Moment kann ich nicht nachvollziehen, was in deinem Decoder passiert, da nicht klar ist, wie die CV\'s im Decoder tatsächlich gesetzt sind.Edit: Michael war schneller und hat ja schon alle Fragen beantwortet Edit2:Während Du noch mit der Konfig-Datei experimentierst, kann es sinnvoll sein, die Werte beim Hochladen grundsätzlich in die CV\'s zu übernehmen. Dazu kannst Du diese Zeilen:

ich habe die zeile entsprechend einkommentiert und geändert. leider hat auch das keine änderung gebracht. die rote led geht an und die grüne nach kurzer zeit aus. auch eine änderung der zeit in der ersten zeile ändert nichts. weder die einschaltdauer der led, noch etwas anderes. bei erneutem schalten erlischt die rote led.

Angefügte Bilder:
Sie haben nicht die nötigen Rechte, um die angehängten Bilder zu sehen

50921825  
50921825
Beiträge: 8
Registriert am: 19.02.2023
Spurweite H0, N
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.0 freigegeben

#929 von 50921825 , 22.02.2023 19:19


50921825  
50921825
Beiträge: 8
Registriert am: 19.02.2023
Spurweite H0, N
Stromart Digital

zuletzt bearbeitet 23.02.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.0 freigegeben

#930 von 50921825 , 22.02.2023 19:20

ein sehr langer post, ich hoffe, es war die mühe wert, auch die das ihr das gelesen habt. die entscheidenden änderungen sind eigtl nur in der zubehör.h.
ich danke euch schonmal wenn ihr euch bis hierhin gequält habt.
eins noch: für die einspeisung des dcc signals verwende ich folgende schaltung.
[[File:Opto.PNG|none|auto]]

ziel ist es: schalten, rote led impuls zeit X an. schalten, grüne led zeit X an.

ich hoffe, eine hilfe ist für mich überhaupt möglich. euch noch einen schönen abend.

gruß kai

nochmal sry für die mamutposts. code is raus


50921825  
50921825
Beiträge: 8
Registriert am: 19.02.2023
Spurweite H0, N
Stromart Digital

zuletzt bearbeitet 23.02.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.0 freigegeben

#931 von kbs411 , 22.02.2023 21:15

Hallo Kai,

ich habe mal nach den C-Gleis Weichen von Märklin geschaut: Es gibt tatsächlich einen "Märklin 74492 H0 C-Gleis (mit Bettung) Weichenantrieb" zum nachträglichen Einbau. Dieser hat auch eine integrierte Endabschaltung.

Ansonsten weiß ich nicht genau, warum du den Programmcode hier als Text eingefügt hast!?

Zitat von 50921825 im Beitrag #930
Zeile 51 //#define NOACK // Diese Zeile aktivieren, wenn keine HW zum CV auslesen vorhanden ist

Die zwei // vor #define NOACK solltest du entfernen, da du keine Hardware für das ACK-Signal hast.
Ich hoffe du hast dich hier mit dem Dateinamen nur verschrieben; Die Datei heißt "dcc_zubehoerdecoder.h" und nicht "dcc_zubehoer.h" !

Zitat von 50921825 im Beitrag #930
ein sehr langer post, ich hoffe, es war die mühe wert, auch die das ihr das gelesen habt. die entscheidenden änderungen sind eigtl nur in der zubehör.h

Ich fürchte, es war die Mühe nicht wert, da du schon richtig erkannt hast, dass die Änderungen zu 99,99% in der DCC_Zubehoerdecoder.h stattfinden.

Zitat von 50921825 im Beitrag #930
eins noch: für die einspeisung des dcc signals verwende ich folgende schaltung.

Das ist genau die richtige Schaltung - OHNE ACK Rückmeldung.

Zitat von 50921825 im Beitrag #928
ebenfalls stelle ich den code ein, den ich auf den arduino gespielt habe

Das war nicht nötig. Die Hauptsache ist, dass du die neueste Version (7.1.0) verwendest.

Zitat von 50921825 im Beitrag #930
auch den coilmod auf "CAUTOOFF" zu ändern hatte keinen effekt auf das verhalten der led\'s. ich habe die oder-verknüpfung daher wieder eingefügt.


Das verstehe ich nicht! Weißt du was eine ODER-Verknüpfung ist ? In Zeile 60 deiner DCC_Zubehoerdecoder.h Datei steht #define COILMOD NOPOSCHK|CAUTOOFF. Das bedeutet, dass in einer Speicherstelle mit dem Namen COILMOD bestimmte Bits - NOPOSCHK entspricht Bit 3 = 1 und CAUTOOFF entspricht Bit 0 = 1 - also aus 0000 0000 wird 0000 1001 binär oder dezimal 5. Du könntest also in die Zeile 70 "/* iniFmode (CV120,130,..*/ { SERVOMOD,0b11100100, 0, 0, 0, COILMOD }," statt COILMOD auch 5 oder 0b1001 reinschreiben. Das drückt alles dasselbe aus.

Zitat von 50921825 im Beitrag #928
die programmierung der einzelnen cv\'s ist leider nicht möglich. die schaltung für den ack über das programmiergleis habe ich nicht. daher bleibt mir nur die programmierung über die dateien.

Das stimmt so nicht: Möglichkeit 1 - Du kannst die CV-Programmierung auch über das Hauptgleis vornehmen. Heißt auf neudeutsch "Programming-On-Main" oder POM. Dazu musst du aber die gewünschte POM-Adresse in der Zeile 49 deiner DCC_Zubehoerdecoder.h eingeben. Achtung, hier ist die tatsächliche DCC-Adresse gemeint. Im Gegensatz dazu ist bei dem Parameter "DccAddr" die Geräteadresse des ersten Geräts der entsprechenden DCC-Adresse einzutragen. Ich weiß, das ist verwirrend, aber eine DCC-Adresse entspricht einem Byte, und ein Byte hat 8 Bit - also kann man mit einem Byte 4 Weichen mit je 2 Spulen steuern. Für weitere 4 Weichen wird dann automatisch eine Folgeadresse vergeben.
Vielleicht ein Beispiel dazu:
DCC-Adresse ist 5, Folgeadresse ist damit automatisch 6. Der erste Ausgang wäre dann 17.
const int DccAddr = 17; // entspricht 1. Weichenadresse
const int PomAddr = 5; // Adresse für die Pom-Programmierung ( CV48/49 )
...
...
// DEC-ADR ===== ====== 05/1+2 ====== 05/3+4 ====== 06/1+2 ====== 06/3+4
// Weichenadresse ===== -17/18- ===== -19/20- ===== -21/22- ====== -23/24-
...
...
Dann gibt es noch die zweite Möglichkeit nämlich die Programmierung über die USB-Schnittstelle. Schau dazu bitte in die PDF-Hilfedatei Seite 12 - Serielle Schnittstelle.

Und lösche bitte dein Programmlisting, da wir mit diesem Thema ohnehin schon lange den Rahmen dieses Threads sprengen.
Wenn du nicht gewillt bist, dich intensiv mit der Hilfedatei auseinanderzusetzen, wirst du hier vermutlich bald keine weitere Hilfe mehr bekommen.

Gruß Michael


 
kbs411
S-Bahn (S)
Beiträge: 14
Registriert am: 17.05.2020
Ort: Düsseldorf
Gleise Märklin K-Gleis
Spurweite H0
Steuerung weitestgehend Eigenbau auf Arduino Basis, auch ECoS2 und Märklin Mobile Station
Stromart Digital


Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#932 von MicroBahner , 22.02.2023 22:13

Hallo Kai,
kommentier mal die erste Zeile in deiner DCC_Zubehördecoder.h aus:

1
2
 
#define KONFIG_FILE "examples\DCC_Zubehoerdecoder_STATIC_COIL.h"  // Pfad zu einer alternativen Konfig-Datei
 
 


zu

1
2
 
//#define KONFIG_FILE "examples\DCC_Zubehoerdecoder_STATIC_COIL.h"  // Pfad zu einer alternativen Konfig-Datei
 
 


Ich habe gerade gesehen, dass das noch ein Fehler in der Standard-Konfig Datei der 7.1 ist. Diese Zeile muss für den 'Standard' auskommentiert sein. Die ist eigentlich nur für den Test der Beispiele drin. Da wird eine Beispieldatei für neue Funktionen in FCOIL geladen. Und damit kannst Du für deine Anwendung nichts anfangen.

Wie Michael schon geschrieben hat, macht es keinen Sinn, alle Dateien - vor allem die .ino - zu posten. Die werdet ihr in aller Regel sowieso nicht ändern. Das bläht die Posts nur unnötig auf. Poste immer nur das, wo Du auch geändert hast. Es wäre schön, wenn Du das wieder löscht. Leider ist diese Forumsoftware nicht so optimal für's posten von Code. Die darauf spezialisiert Foren zeigen Programmcode dann nur in einem kleineren scrollbaren Fenster an, da bleibt es auch bei so langen Codes übersichtlich. Das Forum hier ist halt nicht primär ein Programmiererforum ...

P.S. Da das doch ein sehr verwirrender Bug ist ( wie man ja sieht ... ) habe ich gleich eine korrigierte Version auf GitHub hochgeladen ( V7.1.1 ). Es sind zwar auch noch ein paar funktionale Dinge zu bereinigen, die sind aber im Moment aus meiner Sicht nicht so fundamental, bedeuten aber doch mehr Zeitaufwand. Und da komme ich derzeit einfach nicht dazu.


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


50921825 hat 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 22.02.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#933 von 50921825 , 23.02.2023 11:45

hallo zusammen,
franz-peter....danke danke danke. es lag wie es aussieht wirklich daran, dass diese beispieldatei nicht auskommentiert war. dann hatte das posten des gesamten codes ja doch etwas gutes.
nichtsdestotrotz habe ich ihn vorhin schon schnell wieder entfernt.
ich wusste es, es ist irgendeine kleinigkeit. allerdings hätte ich das ding niemals gefunden.
jetzt lassen sich die impulsdauern einstellen und auch adresse 22 passt jetzt.
ich möchte an dieser stelle auch eine kleinigkeit hinzufügen, bin mir aber nicht sicher, ob es an anderer stelle schonmal angesprochen wurde. bei rocrail wird die weiche über den port adressiert. die adresse funktioniert nicht. in meinem falle ist die adresse "0" und der port "22". damit klappt es einwandfrei.
ich werde jetzt erstmal etwas fleißarbeit machen, rückmelderplatinen löten und mich um die spannungsversorgung von arduino und weichenspulen kümmern.
sollte ich mich an signale trauen und probleme haben würde ich nochmal auf dich zukommen. nochmal vielen vielen dank. wenn ich soweit bin und interesse besteht stelle ich dann unter einem eigenen beitrag bilder ein.
4 tage frust vorbei

gruß kai


50921825  
50921825
Beiträge: 8
Registriert am: 19.02.2023
Spurweite H0, N
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#934 von MicroBahner , 23.02.2023 13:57

Hallo Kai,
schön, dass es jetzt funktioniert. Sorry, war ein dummer Bug in der letzten Release .

Zitat von 50921825 im Beitrag #933
dann hatte das posten des gesamten codes ja doch etwas gutes.

Naja, den ganzen Programmcode hättest Du nicht posten müssen, die DCC_Zubehoerdecoder.h reicht eigentlich immer aus um Probleme zu finden. Das war ja jetzt hier auch so

Zitat von 50921825 im Beitrag #933
bei rocrail wird die weiche über den port adressiert. die adresse funktioniert nicht. in meinem falle ist die adresse "0" und der port "22"

Ja, das ist bei Rocrail etwas unübersichtlich. Es gibt eine Beschreibung, wo die verschiedenen Adressierungsarten bei RocRail erklärt sind. Bemerkenswert ist der Hinweis:

Zitat
Merke: Auch wenn es naheliegend wäre: Die "Adresse" einer Weiche (die in diesem Dokument deshalb als Weichen-Nummer bezeichnet ist) wird nicht notwendigerweise in das Feld Adresse eingetragen!


Für meinen Arduino-Decoder musst Du bei RocRail immer die PADA Adressierung nutzen ( was Du ja letzendlich auch gemacht hast ).


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


kbs411 und 50921825 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 23.02.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#935 von kbs411 , 23.02.2023 15:15

Hallo zusammen,

ich freue mich natürlich auch darüber, dass es wieder einen zufriedenen Anwender für den DIY Zubehördecoder von Franz Peter gibt.

@ Franz-Peter

Zitat von MicroBahner im Beitrag #932
Ich habe gerade gesehen, dass das noch ein Fehler in der Standard-Konfig Datei der 7.1 ist.

Das ist mir doch tatsächlich völlig dadurch gegangen.
Das liegt daran, dass ich schon seit Version 6 alle nicht benötigten Dateien und nicht verwendete Einträge in der DCC_Zubehoerdecoder.h entfernt habe.
Ich habe mir dann ein Unterverzeichnis "Varianten" und dort für jeden Einsatzzweck ein weiteres Unterverzeichnis "Audio", "Licht", "Signale" sowie "Weichen" angelegt, dann eine DCC_Zubehoerdecoder.h eingerichtet, der ich eine Kennung voranstelle (dec01_ dec02_ usw.). Je nach Bedarf kopiere ich dann eine dieser Dateien in den Stammordner des Zubehördecoders und entferne dann das "Präfix" dec01_ oder dec02_ usw. Mittlerweile habe ich mehr als 20 Decoder im Einsatz, und es wäre viel zu viel Arbeit jeweils die DCC_Zubehoerdecoder.h zu ändern.

@ Kai
Falls du Interesse hast, weitere technische Details zu dem Decoder oder aber auch zu RocRail zu erfahren, melde dich bitte auch im RocRail-Forum an. Dort findest du auch viele Informationen zum Ablauf und zur Programmierung. Du kannst dort auch nach meinen Beiträgen (Alias "kbs411" ) suchen. Falls du vorhast mit den Ausgängen deines / deiner Decoder z.B. Licht oder Sounds zu steuern ist es wichtig, dass du alle Ausgänge einzeln ein- und ausschalten kannst, da du anderenfalls 50% der Ausgänge nicht nutzen kannst. RocRail hat auch eine ausgezeichnete Online-Hilfe, unterstützt aber leider keine direkte Ansteuerung der Decoder über das Gleissignal. Es gibt allerdings ein Projekt namens "DCC++" welches auf einem Arduino Mega basiert und mithilfe eines Netzwerk-Shields und eines Motortreiber-Shields zu einer preiswerten Alternative zur Intellibox o.ä. wird.
Aber das nur am Rande.

Gruß Michael


MicroBahner, 50921825 und h0-m-jk haben sich bedankt!
 
kbs411
S-Bahn (S)
Beiträge: 14
Registriert am: 17.05.2020
Ort: Düsseldorf
Gleise Märklin K-Gleis
Spurweite H0
Steuerung weitestgehend Eigenbau auf Arduino Basis, auch ECoS2 und Märklin Mobile Station
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#936 von 50921825 , 23.02.2023 20:41

hallo nochmal.
ich bin zu ausreichendem testen gekommen. 2 arduinos und drei weichen inklusive einer automatik simulation bei rocrail. alles schaltet wie es soll.
alles weitere werde ich dann in einen eigenen beitrag stecken wenn ich soweit bin.
nochmal herzlichen dank für eure mühen.

gruß kai


h0-m-jk und MicroBahner haben sich bedankt!
50921825  
50921825
Beiträge: 8
Registriert am: 19.02.2023
Spurweite H0, N
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#937 von Andi-Leipzig , 22.03.2023 15:03

Hallo ,
ich nutzte schon längere Zeit den Zubehördecoder zum Schalten von Weichen mittels Servos. Funktioniert tadellos und auch das nachjustieren mittels Drehencoder ist fantastisch.
Jetzt möchte ich gern die Herzstücke mit Polarisierunsrelais schalten. Das funktioniert auch (fast) richtig.

Mein Problem: Immer beim Einschalten ( oder Reset ) sind die zwei Ausgänge (je Herzstück) auf High Pegel und gehen erst nach dem erstmaligem Schalten der Weiche auf Low und beim Erreichen der Endlage geht der entsprechende Pin auf High. Dadurch wird natürlich bei der Inbetriebnahme ein Kurzschluss erzeugt. Kennt das jemand? Eine Idee ?
getestet mit der Version : DCC_Zubehoerdecoder-7.1.1 MobaTools-2.4.3 NmraDcc-2.0.15
bei der Version DCC_Zubehoerdecoder-7.0.0 dasselbe Problem

Viele Grüße
Andreas


Andi-Leipzig  
Andi-Leipzig
Beiträge: 9
Registriert am: 11.03.2019


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#938 von MicroBahner , 22.03.2023 22:07

Hallo Andreas,
kannst Du mal bitte deine Konfig-Datei zeigen?


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.1.1 freigegeben

#939 von Andi-Leipzig , 23.03.2023 07:16

ist es so Ausreichend? Programmiert auf den Arduino NANO

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
 

#define STATICRISE (250/50 << 4) // Softled riseTime = 250 ( max = 750 )
#define COILMOD NOPOSCHK|CAUTOOFF
#define SERVOMOD SAUTOOFF|NOPOSCHK|SDIRECT //|SAUTOBACK
#define SERVO0MOD SERVOMOD // Modbyte für Folgeservo (FSERVO0)
#define STATICMOD CAUTOOFF|BLKSOFT|BLKSTRT|STATICRISE // Wechselblinker mit beiden Leds an beim Start
const byte iniTyp[] = { FSERVO, FSERVO, FSERVO, FSERVO, FSERVO, FSERVO, FSERVO, FSERVO };
const byte out1Pins[] = { A0, A1, A2, A3, 12, 11, 10, 9 }; // output-pins der Funktionen
const byte out2Pins[] = { NC, NC, 5, 7, NC, NC, NC, NC };
const byte out3Pins[] = { NC, NC, 6, 8, NC, NC, NC, NC };
 
const byte iniCVx[10][sizeof(iniTyp)] = {
/* iniFmode (CV120,130,..*/ { SAUTOOFF, SAUTOOFF, SAUTOOFF, SAUTOOFF, SAUTOOFF, SAUTOOFF, SAUTOOFF, SAUTOOFF },
/* iniPar1 (CV121,131,..*/ { 20, 20, 20, 20, 20, 20, 20, 20 },
/* iniPar2 (CV122,132,..*/ { 130, 130, 130, 130, 130, 130, 130, 130 },
/* iniPar3 (CV123,133,..*/ { 20, 20, 20, 20, 20, 20, 20, 20 },
/* iniPar4 (CV124,134,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 },
/* iniPar5 (CV125,135,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 },
/* iniPar6 (CV126,136,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 },
/* iniPar7 (CV127,137,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 },
/* iniPar8 (CV128,138,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 },
/* iniState (CV129,139,..*/ { 0, 0, 0, 0, 0, 0, 0, 0 } // Status-Werte
};
//------------------------------------------------------------------------------------
#endif
 
 


Andi-Leipzig  
Andi-Leipzig
Beiträge: 9
Registriert am: 11.03.2019


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#940 von MicroBahner , 23.03.2023 22:03

Zitat von Andi-Leipzig im Beitrag #939
ist es so Ausreichend


Hallo Andreas,
ja, das war ausreichend, und Du hast da wohl noch einen Bug gefunden . Muss ich mir am Wochenende noch mal genauer anschauen, bin ihm aber schon auf der Spur ... Ich muss nur schauen, dass ich mir mit der Fehlerbehebung nicht bei einer anderen Servofunktion einen neuen Bug einbaue


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.1.1 freigegeben

#941 von murdok1980 , 30.07.2023 22:20

Hallo Franz
Du hast doch einen extra Thread für die Platinenversionen aufgemacht. Leider funktionieren dort die Verlinkungen nicht. Man landet immer auf Seite 2 von diesem Thread. Kannst du da Mal drüber schauen.
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: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#942 von murdok1980 , 07.08.2023 20:33

Hallo Franz
Ich baue gerade den Servodecoder mit einem Nano auf und möchte 10 bis 12 Servos steuern. Welche Ausgänge kann man dafür verwenden. Ich hatte da an D3 bis D12 gedacht und dann noch 2 an die analogen Anschlüsse. Geht das so?
Mir fehlt da gerade bissl die Ü.
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: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#943 von MicroBahner , 08.08.2023 21:53

Zitat von Andi-Leipzig im Beitrag #937
Mein Problem: Immer beim Einschalten ( oder Reset ) sind die zwei Ausgänge (je Herzstück) auf High Pegel und gehen erst nach dem erstmaligem Schalten der Weiche auf Low und beim Erreichen der Endlage geht der entsprechende Pin auf High.


Zitat von MicroBahner im Beitrag #940
Du hast da wohl noch einen Bug gefunden :


Hallo Andreas,
das ist jetzt wirklich schon ziemlich lange her. Deine Anfrage kam allerdings in einem für mich ungünstigen Zeitpunkt - Auszug aus dem verkauften Haus und Renovierung und Einzug in die Eigentumswohnung. Da ist mir das tatsächlich durchgegangen, und ich habs total vergessen. Werde mich aber jetzt drum kümmern.


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

zuletzt bearbeitet 08.08.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#944 von MicroBahner , 08.08.2023 21:57

Zitat von murdok1980 im Beitrag #941
Du hast doch einen extra Thread für die Platinenversionen aufgemacht.

Das ist aber schon ziemlich lange her - hast Du einen Link zu dem Beitrag?

Edit - Habs gefunden


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

zuletzt bearbeitet 08.08.2023 | Top

RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#945 von MicroBahner , 08.08.2023 21:58

Zitat von murdok1980 im Beitrag #942
Ich hatte da an D3 bis D12 gedacht und dann noch 2 an die analogen Anschlüsse. Geht das so?

Hallo Andre,
wüsste jetzt nicht, was dagegen spricht.


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.1.1 freigegeben

#946 von murdok1980 , 09.08.2023 21:23

Hallo
Danke für Info Franz, wenn ich einen Nano nehme und von den analogen Ein/Ausgängen z.B. A0 und A1 für Reset und Programmierung nehme kann ich dann A2 bis A7 für Servos nehmen? Plus die digitalen D3 bis D12 wären das dann in Summe 16 Servos?
Noch eine Frage an alle die schon solche Decoder gebaut haben.
Wie habt ihr die Versorgung des Arduinos und der Servos bei einem reinen Servodecoder gelöst?
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: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#947 von PhilippJ_YD , 09.08.2023 22:45

Zitat von murdok1980 im Beitrag #946
Hallo
Danke für Info Franz, wenn ich einen Nano nehme und von den analogen Ein/Ausgängen z.B. A0 und A1 für Reset und Programmierung nehme kann ich dann A2 bis A7 für Servos nehmen? Plus die digitalen D3 bis D12 wären das dann in Summe 16 Servos?
Noch eine Frage an alle die schon solche Decoder gebaut haben.
Wie habt ihr die Versorgung des Arduinos und der Servos bei einem reinen Servodecoder gelöst?
Grüße Andre


A6 und A7 können hardware bedingt niemals Ausgänge sein!

Die beiden sind also prädestiniert als Eingänge.

Ich selber habe leider noch keine Zeit gefunden, meine Decoder fertig zu stellen. Bei meinem Prototypen (Versorgung über Gleichrichter aus dem Gleissignal) stelle ich Problemem it, wenn ich den Programmiermodus am Gleis aktiviere. Dabei neigen die Servos dazu, wild durchzudrehen. Den Grund dafür konnte ich noch nicht ausmachen. Ich werde wohl a) eine separate Versorgung mittels eines DC Netzteils umsetzen, Größenordnung 7-9V und dann einen Regler auf jeden Decoder, der es auf 5V stabilisiert und b) eine Transistorschaltung, um die Versorgung der Servos außerhalb der Bewegung trennen zu können.


Gruß, Philipp


PhilippJ_YD  
PhilippJ_YD
CityNightLine (CNL)
Beiträge: 1.652
Registriert am: 20.06.2014
Spurweite H0
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#948 von Holger28 , 10.08.2023 07:03

Hallo Andre,

Ich habe meine Platinen zwar nicht für Servos sondern für Magnetspulen, also Relais aufgebaut und in Betrieb. Die Versorgungsspannung für Arduino und Relais kommen von einem separaten 12 V Netzteil mit Ringleitung unter der Anlage. Damit versorge ich auch andere Verbraucher und gehe Wechselwirkungen mit DCC aus dem Weg. Und mit den Schaltungsbeispielen von Franz ist DCC urch den Optokoppler auch galvanisch getrennt.

Viele Grüße, Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 289
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.1.1 freigegeben

#949 von MicroBahner , 10.08.2023 10:45

Zitat von murdok1980 im Beitrag #946
von den analogen Ein/Ausgängen z.B. A0 und A1 für Reset und Programmierung nehme kann ich dann A2 bis A7 für Servos nehmen?

Wie PhilippJ_YD schon anmerkte, können auf dem Nano A6 und A7 nur als analoge Eingänge genutzt werden. Die kannst Du für Reset und Programmierung verwenden, und dann A0..A5 als digitale Ausgänge für die Servos nutzen.

Zitat von PhilippJ_YD im Beitrag #947
eine Transistorschaltung, um die Versorgung der Servos außerhalb der Bewegung trennen zu können.

Das würde ich nicht machen und es ist eher kontraproduktiv, weil die Servos beim Einschalten der Versorgung gern mal unkontrolliert zucken. Mit dem AUTOOFF Flag schaltet der Decoder automatisch die Impulse ab, wenn die Endlage erreicht ist. Dann ziehen die Servos kaum noch Strom und bewegen/zittern nicht mehr, da sie die Position nicht mehr aktiv nachregeln.


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.1.1 freigegeben

#950 von murdok1980 , 10.08.2023 15:39

Hallo
Ich danke euch allen für die schnellen Antworten.
Die Info von Franz und Phillip war sehr hilfreich.
Die Spannungsversorgung ist schon nicht ganz einfach. Ich dachte entweder an das gleichrichten der DCC Spannung und nachfolgend einen Regler/Buckconverter auf 5V mit dem ich den Nano direkt und die Servos versorge. Oder halt ein 5V Netzteil.
Grüße Andre


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


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


   

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