DCC++ ist eine auf dem Arduino UNO/MEGA und einem L298-Motor-Shield basierende Zentrale.
Durch die Rocrail-Implementation zusätzliche Eigenschaften:
Bitte beachten, dass dies ein echtes Selbstbau-Projekt ist.
Es wird weder von Rocrail noch von GCA unterstützt.
Mit diesen Modulen einfach nur beginnen, wenn man in der Lage ist, Arduino selbst zu programmieren.
Seit dem Übergang des ursprünglichen DCC++-Projekts zum jetzigen DCC EX-Team wurde das Projekt erheblich weiterentwickelt.
Es gibt jetzt einen Installer, mit dem Kenntnisse und Erfahrungen mit der komplexen "Arduino-IDE" normal nicht mehr benötigt werden.
Mit einer Übersetzungs-Funktion im Browser ist die Web-Seite des Projekts DCC EX auch ohne Englisch-Kenntnisse einfach anzuwenden.
Die Baudrate ist standardmäßig auf 115200 eingestellt.
Einige serielle Gerätetreiber unterstützen CTS und Hardware-Handshake nicht. In diesem Fall sollte CTS deaktiviert sein.
Eine TCP/IP-Verbindung kann verwendet werden, wenn der Arduino über ein Ethernet-Shield verfügt.
Der TCP/IP-Port ist fest auf 2560 einzustellen.
Serielle Lese-Zeitüberschreitung in ms.
Die Anzahl der Slots2) ist standardmäßig 12. Wenn ein MEGA verwendet wird, kann sie in den DCC++-Quellen erhöht werden.
Die Anzahl der Slots muss kleiner oder gleich der eingestellten Anzahl der Register in den DCC++-Quellen sein.
Die minimale Leerlaufzeit in Sekunden, bevor ein Slot freigemacht wird.
Die Freigabe ist deaktiviert, wenn Null eingestellt ist.
Nur für Stift 22..53 auf dem MEGA.
Zeit in ms, die gewartet wird, bevor ein Eingang als Aus gemeldet wird. (Der Wert muss ein Mehrfaches von 10 sein.)
Der Verzögerungs-Zeitgeber wird zurück gesetzt, wenn ein Eingang innerhalb dieser Zeit aktiv wird.
Fragt den Hauptgleis-Strom zur Anzeige in der Rocview-Status-Leiste ab.
Sendet Weichenbefehle zurück. Nur für Arduino I/O.
Tauscht die Gerade- und Abzweigend-Befehle.
Bei "Gleisspannung EIN" wird der DCC++-Befehl JOIN (Verbinden) anstelle von MAIN gesendet.
Damit wird das Gleissignal am Haupt- und am Programmier-Ausgang eingeschaltet.
Siehe DCC++-Dokumentation für mehr Einzelheiten.
In Fall von <a address port gate on/off>
4 Bytes-Befehle verwenden.
Ohne diese Option: <a address port gate>
Siehe DCC++-Dokumentation für mehr Einzelheiten.
Bestimmt den seriellen DTR-Pegel beim Start. „none“ (keiner) ist die Standardeinstellung.
Wird nur für inkompatible DCC++-Baugruppen verwendet.
Bestimmt den seriellen RTS-Pegel beim Start. „none“ (keiner) ist die Standardeinstellung.
Wird nur für inkompatible DCC++-Baugruppen verwendet.
Fügt einen neuen Ein-/Ausgang hinzu, wie er mit Typ/Stift/Optionen definiert ist.
Er wird temporär in der DCC++-Zentrale angelegt.
Ändert einen ausgewählten Ein-/Ausgang mit den Typ/Stift/Optionen-Einstellungen.
Er wird temporär in der DCC++-Zentrale geändert.
Löscht den ausgewählten Ein-/Ausgang.
Er wird temporär aus der DCC++-Zentrale entfernt.
Abfrage aller Ein-/Ausgänge in der DCC++-Zentrale.
Speichern aller Ein-/Ausgänge im EEPROM.
Löscht alle Ein-/Ausgänge aus dem EEPROM.
Eine neue Abfrage erfolgt automatisch.
Option | Bit | Wert |
---|---|---|
Umkehren | 0 | 0 = Direkter Betrieb (ACTIVE=HIGH / INACTIVE=LOW) 1 = Umgekehrter Betrieb (ACTIVE=LOW / INACTIVE=HIGH) |
Wiederherstellen | 1 | 0 = Status des Stifts bei Spannung EIN entweder ACTIVE oder INACTIVE abhängig vom Status bei Spannung AUS; Status des Stifts bei erstem Einrichten 1 = Status des Stifts EIN, bei Spannung EIN oder wenn erstmalig eingerichtet, auf ACTIVE oder INACTIVE abhängig von Bit 2 |
Anfang | 2 | 0 = Status des Stifts bei Spannung EIN oder bei erstem Einrichten auf INACTIVE 1 = Status des Stifts bei Spannung EIN oder bei erstem Einrichten auf ACTIVE |
Option | Bit | Wert |
---|---|---|
Pull-up | 0 | 1 = Internen pull-up-Widerstand für den Stift verwenden 0 = Internen pull-up-Widerstand für den Stift nicht verwenden |
In der Regel sind hier keine manuellen Einstellungen erforderlich. Rocrail definiert Arduino-Stifte automatisch als Eingangs- oder Ausgangsstifte, sobald die Stifte einer solchen DCC++-Zentrale für das Auslösen von Rückmeldern und das Schalten von Weichen oder Signalen verwendet werden. Bei Eingangsstiften wird hierbei standardmäßig die Option "Umkehren / Pull-up" eingeschaltet, d. h. es wird der interne pull-up-Widerstand verwendet.
Nur in dem Fall, dass beim Start andere, als die standardmäßig vorgegebenen Optionen verwendet werden sollen, muss hier manuell eingegriffen werden. Grundsätzlich empfiehlt es sich dabei, erst einmal alle Objekte im Plan mit den gewünschten Stiften anzulegen. Dann sollte Rocrail neu gestartet und alle Befehle von Objekten, die Ausgangsstifte verwenden, einmal ausgeführt werden; denn alle verwendeten Eingangsstifte werden beim Hochfahren und alle Ausgangsstifte beim Ausführen eines Befehls von Rocrail in der DCC++-Zentrale temporär angelegt. Danach werden bei "Abfrage" alle verwendeten Stifte aufgelistet und die Optionen können direkt geändert werden. Zum Schluss das Speichern nicht vergessen!
Bei Änderung der Option "Umkehren / Pull-up" ist noch folgendes zu beachten: Bei Ausgängen gilt das hier eingestellte "Umkehren" nur beim Start von Rocrail. Damit die Ausgänge für Weichen oder Signale auch während des Betriebs immer umgekehrt angesteuert werden, muss auf der Registerkarte "Schnittstelle" dieser Objekte der Wert im Feld "Parameter" auf "1" gesetzt werden.
Rückmelder und Ausgänge teilen den selben Adress-Raum; Überlappungen vermeiden, um unerwartetes Verhalten zu verhindern. |
DCC-Zubehör.
Weichen werden nach dem MADA-Schema mit Dekoder-Adresse und Port adressiert. (DCC)
Arduino I/O.
Befehl | Ausgang |
---|---|
gerade | Adresse + 0 |
abbiegen | Adresse + 1 |
Arduino I/O.
Befehl | Ausgang | Stift-Status |
---|---|---|
gerade | Adresse | AUS |
abbiegen | Adresse | EIN |
Freie Arduino-Stifte können als Rückmelder-Ports verwendet werden.
Je nach Hardware stehen dafür nur folgende Stifte zur Verfügung:
UNO | 4, 6, 7, 16…19 |
MEGA | 5…7, 16…19, 22…53 |
Ausgänge sind nach dem NMRA-Schema mit Dekoder-Adresse und -Port adressiert.
Freie Arduino-Stifte können als Ausgangs-Ports verwendet werden.
Je nach Hardware stehen dafür nur folgende Stifte zur Verfügung:
UNO | 4, 6, 7, 16…19 |
MEGA | 5…7, 16…19, 22…53 |
Um die Ausgänge für DCC zuzuordnen, muss die Ausgangs-Option Weiche aktiviert sein.
Begriffs-Nummer und Begriffs-Wert können verwendet werden.
Der Begriffs-Wert stellt eine Bit-Maske dar, die für die vier Signal-Adressen verwendet wird.
Typ-Code | Funktion |
---|---|
N | Nicht in Betrieb |
O | Output > Ausgang |
I | Input > Eingang |
Siehe: I/O-Optionen
Die GCA-I/O-Anschluss-Auswahl.
Die Schaltflächen-Anordnung ist dem Platinen-Layout angenähert.
MEGA-Stifte | GCA-Anschluss | GCA-Stifte |
---|---|---|
22..36 (gerade ) | I/O 1 | 1..8 |
23..37 (ungerade) | I/O 2 | 9..16 |
38..52 (gerade ) | I/O 3 | 17..24 |
39..53 (ungerade) | I/O 4 | 25..32 |
Die Ein-/Ausgangs-Anschlüsse passen für alle GCA-Baugruppen, wie GCA76, GCA77, GCA93, GC94, GCA173 usw.
Steckbrücke | Funktion | Bemerkung |
---|---|---|
JP1 | Verwendet 5V vom Arduino, wenn gesteckt. | Nur Stecken, wenn der Arduino spannungslos ist, anderenfalls setzt er sich selbst zurück. |
Die Gleisspannung muss eingeschaltet werden, bevor das Programmier-Gleis (PT) verwendet wird.
Nicht vergessen, die erforderliche Drahtbrücke auf dem Motor-Shield hinzuzufügen.
Die Anzahl der Dekoder-Fahrstufen auf der Schnittstellen-Registerkarte der Lok-Eigenschaften anstelle von 128 auf 126 einstellen.