Innholdsfortegnelse:

Modelljernbane - DCC kommandostasjon ved bruk av Arduino :: 3 trinn
Modelljernbane - DCC kommandostasjon ved bruk av Arduino :: 3 trinn

Video: Modelljernbane - DCC kommandostasjon ved bruk av Arduino :: 3 trinn

Video: Modelljernbane - DCC kommandostasjon ved bruk av Arduino :: 3 trinn
Video: OHJ (Odsherreds Jernbaner) Sm 16 första DCC tur på den hylbanan. 2024, Juli
Anonim
Image
Image
Arduino -kode - Kommandostasjon med tastatur
Arduino -kode - Kommandostasjon med tastatur

Oppdatert august 2018-se nye Instructable:

Oppdatering 28. april 2016: Nå 16 oppmøte / poengkontrollfunksjoner til Command Station. Turnoutene T1 - T8 er tilgjengelige via 'B' -tasten Turnouts T9 - T16 er tilgjengelige via 'C' -tasten

Oppdatering 10. mars 2016:

Nå lagt til 8 valgmuligheter / poengkontrollfunksjoner til Command Station. Arduino -koden er oppdatert tilsvarende ved bruk av NMRA -standardpakken for turnouts (også basert på en studie av Lenz / Atlas Compact -datapakker for valgdeltakelse).

Vekslingene T1 - T8 er tilgjengelige via 'B' -tasten

Se instruksjonene om datapakke -mottakerkretsen som brukes og Arduino -kode påkrevd.

Oppdatering 18. januar 2016:

Jeg har lagt til en strømfølelsesmotstand (1k5 ohm) og kondensator (10 uf) til kretsen og endret Arduino -koden for å kutte strømmen når en toppstrøm på> 3200 mAmps oppdages. H-bridge-spesifikasjonen angir en utgangssensestrøm på 377 uA per 1 ampere i lasten.

1,5 k ohm motstanden vil levere 0,565 volt per ampere på den analoge pinnen 6. Med 1023 trinn på den analoge inngangen gir dette 0,565 * 1023 /5 = 116 per ampere.

A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (for å gi resultat i milliampere)

Laststrømmen i milliampere vises på TFT

Det komplette 4x4-tastaturet inkluderer F1 til F8-funksjoner og ytterligere 10 locos (1-19) gjennom '#' -tasten (for å legge til 10 til de numeriske tastene som starter fra loco 10).

Arduino -koden inkluderer NMRA -standarden for instruksjonsbyte.

Se lenke

www.nmra.org/sites/default/files/s-9.2.1_20…

(side 6 er spesielt relevant)

Pakkene er ordnet i henhold til antall hastighetstrinn, lang / kort adresse og funksjonsgruppeanvisninger.

Alle instruksjonsbyte innledes med en innledning av '1' bits 11111111 (eller inaktiv pakke) etterfulgt av;

f.eks. En 4 byte adresse 0 00000011 0 00111111 0 10000011 0 10111111

tilsvarer loko 3, 128 hastighetstrinn, fremoverretning og hastighetstrinn 3 (sluttbyten er feilkontrollen XOR)

f.eks. en 3 byte adresse 0 00000011 0 10010000 0 10110011

tilsvarer loco 3, funksjonsgruppe 1, FL lyser pluss XOR byte (en '0' bit skiller hver byte)

Se vedlagte demonstrasjonsvideo for loco 12.

Funksjonene F1 - F8 er tilgjengelige via 'A' -tasten, DIR ('*' tast = retning) FL ('0' tast = lys) og tasten '#' gir plass 10 til 19 på det numeriske tastaturet. 'D' -tasten brukes nå for en 'nødstopp'.

Takk til forskjellige leverandører på nettet for kilder til DCC -informasjon og Arduino -kode.

Spesielt ble dette prosjektet inspirert av Michael Blank og hans 'Simple DCC - a command station'

www.oscale.net/en/simpledcc

4x4 Matrix Array 16 Key Membrane Switch Tastatur (ebay) £ 1,75

2,2 tommers 240x320 seriell SPI TFT LCD -skjermmodul (ebay) £ 7,19

UNIVERSAL 12V 5A 60W STRØMFORSYNING AC -ADAPTER (ebay) £ 6,49

Nano V3.0 For Arduino med CH340G 5V 16M kompatibel ATmega328P (ebay) 2 x £ 3,30 = £ 6,60

Motordrivermodul LMD18200T for Arduino R3 (ebay) £ 6,99

Koblinger, ledning, verokort, potensiometer ca. £ 3,50

Totalt £ 32,52

Den grunnleggende kommandostasjonen uten tft -skjerm og 1 x nano ville være £ 22,03

[Merk: Det er mulig å legge til et minnekort i TFT -displayet og endre kode for å vise bilder av utvalgte motorer, selv om bibliotekskodene må redigeres ned for å skape mer minne for skissen. Gjeldende skissestørrelse er maksimalt for TFT Arduino Nano]

Den originale Arduino -koden av Michael Blank var for én motor, bare forover / bakover uten funksjonskontroll, ingen tastatur og ingen display.

Jeg har endret koden til å inkludere 1 - 19 motorer, en skjerm, retning, lys, 8 funksjoner, nødstopp og automatisk strømgrense.

LMD18200T-broen kan bære opptil 3 ampere, noe som gjør den egnet for alle skalaer, inkludert G-skala (hagetog). Strømforsyningen og elektronikken er kun egnet for innendørs bruk, med mindre du kan gjøre alt værbestandig. Jeg har kommandostasjonen i sommerhuset med skinneforbindelsestråder som løper ut gjennom veggen til sporet.

Trinn 1: Arduino -kode - Kommandostasjon med tastatur

Min takk til tvantenna2759 for å påpeke 2 feil i kretsdiagrammet der Arduino -koden ikke samsvarte med ledningene, nå oppdatert (21. oktober 2017).

Nå lagt til 16 oppmøter til Command Station. Se instruksjonene på kretsdiagrammet om valg / poeng ved bruk av Arduino Mini Pro -modulen.

Den endrede koden inkludert valgdeltakelse er vedlagt nedenfor.

Basic Accessory decoder packet er: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Fra å analysere pakken som ble brukt av Lenz (Compact / Atlas) for punktkontroll, har jeg brukt følgende binære pakkeformat for byte 1 og 2: tunAddr = 1 Turnout 1a: 1000 0001 1111 1000 / Turnout 1b: 1000 0001 1111 1001 Turnout 2a: 1000 0001 1111 1010 / Turnout 2b: 1000 0001 1111 1011 Turnout 3a: 1000 0001 1111 1100 / Turnout 3b: 1000 0001 1111 1101 Turnout 4a: 1000 0001 1111 1110 / Turnout 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Vekst 5a: 1000 0010 1111 1000 / Vekst 5b: 1000 0010 1111 1001 Vekst 6a: 1000 0010 1111 1010 / Vekst 6b: 1000 0010 1111 1011 Vekst 7a: 1000 0010 1111 1100 / Turnout 7b: 1000 0010 1111 1101 Turnout 8a: 1000 0010 1111 1110 / Turnout 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Valgdeltakelse 9a: 1000 0011 1111 1000 / valgdeltakelse 9b: 1000 0011 1111 1001 etc ………

Trekk ut fra den endrede koden: Legg til ytterligere 2 'struct' -meldingsoppdateringervoid amend_tun1 (struct Message & x) {x.data [0] = 0x81; // tilbehør dekoder 0x80 & adresse 1 x.data [1] = 0; }

void amend_tun2 (struct Message & x) {x.data [0] = 0x82; // tilbehør dekoder 0x80 & adresse 2 x.data [1] = 0; }

Legg til nytt tomrom for valgdeltakelser: boolsk read_turnout () {forsinkelse (20);

boolsk change_t = false; get_key ();

hvis (key_val> = 101 && key_val <= 404 && turn == 1) {

data = 0xf8; // = binær 1111 1000

amend_tun1 (msg [1]);

}

hvis (key_val> = 505 && key_val <= 808 && turn == 1) {

data = 0xf8; // = binær 1111 1000

amend_tun2 (msg [1]);

}

hvis (key_val == 101 && turn == 1) {

hvis (tun1 == 1) {

data | = 0; // t1a

change_t = true;}

hvis (tun1 == 0) {

data | = 0x01; // t1b

change_t = true;}

}

hvis (key_val == 202 && turn == 1) {

hvis (tun2 == 1) {

data | = 0x02; // t2a

endret_t = sant;

}

hvis (tun2 == 0) {

data | = 0x03; // t2b

endret_t = sant; }

}

hvis (key_val == 303 && turn == 1) {

hvis (tun3 == 1) {

data | = 0x04; // t3a

endret_t = sant;

}

hvis (tun3 == 0) {

data | = 0x05; // t3b

change_t = true;}

}

hvis (key_val == 404 && turn == 1) {

hvis (tun4 == 1) {

data | = 0x06; // t4a

endret_t = sant;

}

hvis (tun4 == 0) {

data | = 0x07; // f4b

change_t = true;}

}

hvis (key_val == 505 && turn == 1) {

hvis (tun5 == 1) {

data | = 0; // t5a

endret_t = sant;

}

hvis (tun5 == 0) {

data | = 0x01; // t5b

change_t = true;}

}

etc ………………….

Trinn 2: Arduino -kode - TFT -skjerm

Arduino Code - TFT -skjerm
Arduino Code - TFT -skjerm
Arduino -kode - TFT -skjerm
Arduino -kode - TFT -skjerm
Arduino -kode - TFT -skjerm
Arduino -kode - TFT -skjerm
Arduino Code - TFT -skjerm
Arduino Code - TFT -skjerm

Skjermkretsen forblir den samme med en modifisert kode for å vise statusen til de 16 turnoutene. Merk: Bibliotekskoden tar opp nesten hele skissekodeminnet og gir lite plass til nye funksjoner. Hvis noen har en mer effektiv biblioteksfil for TFT som brukes her, vennligst gi meg beskjed.

Trinn 3: Turnout Controller

Oppmøtekontroller
Oppmøtekontroller
Oppmøtekontroller
Oppmøtekontroller

Se instruksjonene om hvordan du lager Turnout / Point -kontrolleren.

Hele kretsen styrer 16 punkter og 15 tilbehør som lys, lyder, platespiller, etc.

Anbefalt: