This is an old revision of the document!
Table of Contents
Arduino DCC++
Introductie
DCC++ is een Centrale gebaseerd op de Arduino UNO/MEGA en een L298 Motor Shield.
- The "DCC refresh stack"grootte 1) is 12, bij de MEGA tot 50, met 127 snelheidsstappen en 28 functies.
- PT, Programmeer spoor
- POM, Programmeren op het hoofdspoor (alleen schrijven)
- 32 GCA Interfaces (NL) compatibele I/O-poorten.
- DCC accessoire (functie) decoder ondersteuning.
- 2A Booster power.
DCC++ Installatie
Extra Eigenschappen
Bij het gebruik van Rocrail worden de volgende extra eigenschappen toegevoegd:
- Slot management met passieve slot-vrijgave na 30 seconden leegloop en bij snelheid 0 (nul). (Dit kan bij de instellingen gewijzigd worden)
- Start van de Dag direct na het realiseren van de seriële verbinding.
Algemene Instelling
Tabblad "General"
Sub-Biblioteek
Serial-USB
De baud rate moet worden gezet op 115200.
Daarna moet de juiste virtuele seriele poort worden gekozen.
TCP/IP
Een TCP/IP verbining kan worden gebruikt wanneer de Arduino over een Ethernet Shield beschikt.
De TCP/IP Poort is gezet op 2560.
Het Config.h bronbestand moet worden aangepast en opnieuw worden ingevoerd om de de Ethernet Shield te gebruiken:
///////////////////////////////////////////////////////////////////////////////////// // // DEFINE COMMUNICATIONS INTERFACE TYPE (Zet de communicatie interface) // // 0 = Built-in Serial Port (ingebouwde Seriele Poort) // 1 = Arduino Ethernet/SD Card Shield #define COMM_TYPE 0
Voorbeeld van de verbindings bevestiging met ethernet:
20160315.083459.796 r9999I dccpprea ODCCPP 0772 evaluate message: <iDCC++ BASE STATION FOR ARDUINO MEGA / ARDUINO MOTOR SHIELD: BUILD Mar 15 2016 08:31:58> 20160315.083459.806 r9999I dccpprea ODCCPP 0772 evaluate message: <N1: 192.168.100.153>
Opties
Timeout
Timeout van de seriele leestijd in ms.
Slots
Het aantal slots is standaard 12. Bij gebruik van de MEGA kan dit worden aangepast in de DCC++ bron.
Het aantal slots moet kleiner of gelijk zijn aan het aantal registers als gezet in de DCC++ bron.
DCC++ comment: Het aantal registers kan groter worden gezet dan 12, zeekr bij gebruik van de MEGA. Hier is het aantal waarschijnlijk maximaal 50. |
Het aantal slots, registers, kan worden aangepast in Config.h line 24:
// DEFINE NUMBER OF MAIN TRACK REGISTER (definieer het aantal registers voor het hoofdspoor) #define MAX_MAIN_REGISTERS 12
Slot Vrijgave tijd
De minimale leegloop tijd in seconden voordat een slot vrijgegeven wordt.
Melder uit vertraging (ms)
Voor pin 22.53 alleen bij de MEGA.
Aantal ms wachttijd voordat een input als UIT gemeld wordt. (De waarde moet een veelvoud van 10 zijn.)
De wachttijd-timer wordt gereset wanneer een input HIGH wordt binnen deze wachttijd.
System Info
Vraagt de stroomsterkte uit van het hoofdspoor (Deze is bedoeld voor de Rocview Status Balk.)
Echo commando's
Terugkoppeling van schakelopdrachten voor de Arduino I/O.
Verwissel de uitgangen (Swap gates)
Wissel de poorten om voor wisselopdrachten rechtdoor en afbuigend.
Tabblad "Rocrail Eigenschappen"
Beperk IDs (Reduce IDs)
Beperkt het aantal aangemaakte wissel en uitgangs IDs tot 16 ()..15). Standaard is 256.
Deze optie maakt het mogelijk een Arduino Uno te gebruiken met meer dan 45 accessoires onder DCC.
Geen poort test bij het opstarten
Een aantal Windows systemen kunnen crashen bij het opstarten van de Rocrail server, wanneer de volgende optie niet is gezet:
I/O Setup
Toevoegen
Voegt een nieuwe I/O toe met Type/Pin-nummers/Opties.
Dit wordt tijdelijk gemaakt in de DCC++ Centrale.
Wijzigen
Modificeer de gekozen I/O met Type/Pin-nummers/Opties.
Dit wordt tijdelijk gemaakt in de DCC++ Centrale.
Verwijderen
Wist de gekozen I/O.
Dit wordt tijdelijk gewist in de DCC++ Centrale.
Query
Maakt een overzicht alle gedefineerde I/O's in de DCC++ Centrale.
Opslaan
Bewaart alle gedefineerde I/O's in de EEPROM.
Wissen
Wist alle gedefineerde I/O's uit de EEPROM.
Een nieuw overzicht wordt automatisch gemaakt.
Opties
Output opties
Optie | Bit | Waarde |
---|---|---|
Geïnverteerd | 0 | 0 = rijrichting vooruit (ACTIVE=HIGH / INACTIVE=LOW) 1 = rijrichting omgekeerd (ACTIVE=LOW / INACTIVE=HIGH) |
Terugzetten | 1 | 0 = status van de pin wordt hersteld bij power-up naar ACTIVE of INACTIVE afhankelijk van de status bij afsluiten; de status van de wordt INACTIVE gezet bij het eerste gebruik 1 = status van de pin wordt gezet bij power-up, of bij eerste gebruik, naar ACTIVE of INACTIVE afhankelijk van bit 2 |
Initiaal | 2 | 0 = status van de pin wordt INACTIVE gezet bij power-up of bij eerste gebruik 1 = status van de pin wordt ACTIVE gezet bij power-up of bij eerste gebruik |
Input (Sensor)
Optie | Bit | Waarde |
---|---|---|
Pull-up | 0 | 1 = gebruik de internal pull-up resistor voor de pin 0 = gebruik NIET de internal pull-up resistor voor de pin |
Meestal zijn hier geen handmatige instellingen nodig. Rocrail definieert automatisch Arduinopinnen als ingangs- of uitgangspennen zodra de pennen van zo'n DCC++ centrum worden gebruikt voor het triggeren van terugmeldingen en het schakelen van wissels of signalen. Voor de ingangspinnen is de optie "Invert / Pull-up" standaard geactiveerd, d.w.z. dat de interne pull-up-weerstand wordt gebruikt.
Alleen in het geval dat er bij het opstarten andere opties dan de standaardopties moeten worden gebruikt, is hier een handmatige ingreep vereist. In principe is het aan te raden om alle objecten in het plan eerst te maken met de benodigde pinnen. Dan moet Rocrail opnieuw worden opgestart en moeten alle commando's van objecten die uitvoerpinnen gebruiken eenmalig worden uitgevoerd; omdat alle gebruikte invoerpinnen tijdelijk worden aangemaakt bij het opstarten en alle uitvoerpinnen tijdelijk worden aangemaakt bij het uitvoeren van een commando van Rocrail in het DCC++ centrum. Daarna worden alle gebruikte pinnen vermeld bij "Query" en kunnen de opties direct worden gewijzigd. Vergeet op het einde niet te redden!
Als u de optie "Omkeren/trekken" wijzigt, let dan op het volgende: Voor uitgangen is de instelling "Invert" alleen geldig bij het starten van Rocrail. Om ervoor te zorgen dat de uitgangen voor wissels of seinen tijdens het bedrijf altijd in omgekeerde richting worden aangestuurd, moet de waarde in het veld "Parameter" op het tabblad "Interface" van deze objecten op "1" worden gezet.
Adressering
Melders en Outputs gebruiken dezelfde adresruimte; Voorkom overlappende adressen waardoor ongewenste gebeurtenissen kunnen optreden. |
Wissels
Accessory (Accessoires)
DCC Accessoire Decoders.
Wissels worden geadresseerd volgens het MADA schema met decoder adres en poorten. (DCC)
Geen DCC Accessoire Decoders.
Arduino I/O.
Commando (EN) | Opdracht (NL) | Output |
---|---|---|
straight | rechtdoor | addres + 0 |
turnout | afbuigend | addres + 1 |
Geen DCC Accessoire Decoder Single gate
Arduino I/O.
Commando (EN) | Opdracht (NL) | Output | Pin status |
---|---|---|---|
straight | rechtdoor | addres | OFF / UIT |
turnout | afbuigend | addres | ON / AAN |
Melders
Vrije Arduino Pinne kunnen worden gebruikt als Melder ingangen.
Free Arduino pins can be used as sensor ports.
Outputs / Uitgangen
Accessoires
Uitgangen kunnen worden geadresseerd volgens het NMRA schema met decoder adres en poortnummer.
Geen Accessoire
Vrije Arduino poorten kunnen worden gebruikt als Output poorten.
Seinen
De Seinen-Optie Accessoire word voor de Uitgangen-opdrachten gebruikt.
Seinlamp nummers
Seinlamp nummer and Seinlamp waarde kunnen worden gebruikt.
De seinlamp waarde vertegenwoordigt het bitpatroon voor de 4 sein adressen.
G-ASH02
Type
Type code | Functie |
---|---|
N | No operation / Niet in bedrijf |
O | Output |
I | Input |
Options
Zie: I/O Opties
I/O n
De keuze van GCA I/O verbinding.
De layout van de knoppen komt overeen met de PCB layout.
PIN mapping
MEGA PINs | GCA connector | GCA I/O |
---|---|---|
22..36 (even) | I/O 1 | 1..8 |
23..37 (oneven ) | I/O 2 | 9..16 |
38..52 (even) | I/O 3 | 17..24 |
39..53 (oneven ) | I/O 4 | 25..32 |
De I/O connectors passen op alle GCA boards zoals GCA76, GCA77, GCA93, GC94, GCA173, etc.
Jumper | Functie | Opmerking |
---|---|---|
JP1 | Gebruik 5V van het Arduino board (indien geplaatst). | Doe dit alleen wanneer de Arduino niet onder spanning staat, anders wordt de Arduino zelf gereset. |
Bestanden
Programmeer Spoor
De baanspanning moet "aan" worden gezet voordat het Programmeer spoor (PT) gebruikt kan worden.
Vergeet ook niet de vereiste jumperdraad te plaatsen op het Motor Shield.
Installeer de Arduino Software (Firmware)
- Installeer de Arduino Software (IDE)
- Download het meest recente DCC++ Base Station bestand en pak deze uit (unzip):
- Open met de Arduino IDE het volgende bestand. Dit is te vinden in de DCCpp_Uno directory:
- DCCpp_Uno.ino
- Kies het juiste Arduino model, (degene die gebruikt wordt) in de Arduino IDE:
- Tools → Board → Arduino/Genuino UNO or MEGA
- Kies de USB Poort:
- Tools → Port → COMx or /dev/tty* or /dev/cu*
- Schrijf de DCC++ Firmware in de Arduino:
- Sketch → Upload
HEX File
Trouble Shooting (problemen oplossen)
Loc's stoppen op max.snelheid
Zet het aantal Decoder stappen op 126 in plaats van 128 in het Interface tab van de Loc eiegnschappen.
Ethernet Compile Error
Wanneer de volgende schrijffout ontstaat: If the following compile error occurs:
In file included from /Users/rob/Projects/Arduino/BaseStation-1.2.1/DCCpp_Uno/DCCpp_Uno.ino:179:0: sketch/Comm.h:11:28: fatal error: Ethernet.h: No such file or directory #include ETHERNET_LIBRARY ^ compilation terminated. exit status 1 Error compiling.
Verander regel 11 in Comm.h: van
#include ETHERNET_LIBRARY
in
#include <Ethernet.h>
Windows crash na het starten van Rocrail
Een aantal Windosw configuraties kunnen crashen bij het opstarten van de Rocrail server, wanneer de Arduino is aangesloten via de USB-poort én de onderstaande optie niet is aangezet:
Max. Stroomverbruik
In het bestand CurrentMonitor.h
kan het maximale stroomgebruik worden aangepast in regel 16:
#define CURRENT_SAMPLE_MAX 300
volgens to Trainboard.com | math. correct |
|
---|---|---|
Waarde | Max. stroom | Waarde |
300 | 800 mA | 270 |
600 | 1600 mA | 540 |
750 | 2000 mA | 675 |
Deze waarden zijn van toepassing op de Arduino Motor Shield R3 met een stroomgevoeligheid van 1.65 V / A
.
De stroomgevoeligheid van andere Motor Shields kan variëren, met name wanneer de maximale stroom groter is dan 2A.
Voor meer informatie (EN): Trainboard.com
Belangrijke Informatie: Er zijn Motor Shields met de Driver chip LM298, die zodanig gemonteerd zijn dat de warmte NIET kan worden afgevoerd via de oppervlakte van het shield. De afbeelding laat zien dat bij deze vorm, een stukje papier onder de chip zelf geschoven kan worden. Bij een maximale belasting (2 A) van een shield met dit gebrek kan de warmte onvoldoende worden afgevoerd en zal de chip uiteindelijk te heet worden en stuk gaan. Zie ook (EN): Trainboard.com |
Links (EN)
- Ardurail (Märklin-Motorola compatible)
Opgemaakt - VT601 - 2019-08-07