Sadržaj:

Model željeznice - DCC -ovo zapovjedno mjesto pomoću Arduina :: 3 koraka
Model željeznice - DCC -ovo zapovjedno mjesto pomoću Arduina :: 3 koraka

Video: Model željeznice - DCC -ovo zapovjedno mjesto pomoću Arduina :: 3 koraka

Video: Model željeznice - DCC -ovo zapovjedno mjesto pomoću Arduina :: 3 koraka
Video: Jak na DCC: 1# - Začínám se zapojením digitálu - první jízda 2024, Srpanj
Anonim
Image
Image
Arduino kod - Komandna stanica s tipkovnicom
Arduino kod - Komandna stanica s tipkovnicom

Ažurirano u kolovozu 2018.-pogledajte nove Instructable:

Ažuriranje 28. travnja 2016.: Sada postoji 16 mogućnosti kontrole izlaznosti / točaka za zapovjednu stanicu. Skretnice T1 - T8 dostupne su putem tipke 'B' Skretnice T9 - T16 dostupne su putem tipke 'C'

Ažuriranje 10. ožujka 2016.:

Sada je dodano 8 mogućnosti upravljanja izlazom / točkama na zapovjednu stanicu. Arduino kôd je prema tome ažuriran korištenjem standardnog paketa NMRA za skretnice (također temeljen na studiji Lenz / Atlas Compact paketa podataka za kontrolu izlaznosti).

Skreti T1 - T8 dostupni su putem tipke 'B'

Pogledajte upute o korištenom krugu prijemnika paketa podataka i potrebnom Arduino kodu.

Ažuriranje 18. siječnja 2016.:

U krug sam dodao otpornik osjetnika struje (1k5 ohma) i kondenzator (10 uf) i izmijenio Arduino kôd tako da prekine napajanje kada se detektira vršna struja> 3200 mAmps. Specifikacije H-mosta navode izlaznu osjetnu struju od 377 uA po 1 Amp u opterećenju.

Otpornik od 1,5 k ohma dat će 0,565 volti po pojačalu na analogni pin 6. S 1023 koraka na analognom ulazu, to daje 0,565 * 1023 /5 = 116 po opterećenju pojačala.

A = 100 * (analogno čitanje (AN_CURRENT)) / 116; A = A * 10; (za dobivanje rezultata u miliamperima)

Struja opterećenja u miliamperima prikazana je na TFT -u

Puna tipkovnica 4x4 uključuje funkcije F1 do F8 i još 10 lokoma (1-19) preko tipke "#" (za dodavanje 10 numeričkim tipkama počevši od loco 10).

Arduino kôd uključuje NMRA standard za bajtove instrukcija.

Pogledajte vezu

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

(stranica 6 je od posebne važnosti)

Paketi su raspoređeni prema broju koraka u brzini, dugoj / kratkoj adresi i uputama skupine funkcija.

Svim bajtovima instrukcija prethodi preambula od '1' bitova 11111111 (ili praznog paketa) nakon čega slijedi;

npr. Adresa od 4 bajta 0 00000011 0 00111111 0 10000011 0 10111111

jednako loco 3, 128 koraka brzine, smjer naprijed i korak 3 brzine (krajnji bajt je provjera pogreške XOR)

npr. Adresa od 3 bajta 0 00000011 0 10010000 0 10110011

jednak loco 3, grupa funkcija 1, uključeno svjetlo FL plus XOR bajt (bit '0' odvaja svaki bajt)

Pogledajte priloženi demonstracijski video za loco 12.

Funkcije F1 - F8 dostupne su putem tipke 'A', DIR (tipka '*' = smjer) FL (tipka '0' = svjetla), a tipka '#' daje lokose 10 do 19 na numeričkoj tipkovnici. Tipka 'D' sada se koristi za 'HITNI STOP'.

Zahvaljujući raznim dobavljačima na webu za izvore DCC informacija i Arduino koda.

Konkretno, ovaj projekt inspiriran je Michaelom Blankom i njegovim 'Simple DCC - komandna stanica'

www.oscale.net/hr/simpledcc

4x4 matrična matrica sa 16 tipki, membranska sklopna tipkovnica (ebay) 1,75 kn

2,2 inčni 240x320 serijski SPI TFT LCD zaslon modul (ebay) 7,19 kn

UNIVERZALNI AC ADAPTER 12V 5A 60W NAPAJANJE (eBay) 6,49 kn

Nano V3.0 Za Arduino sa CH340G 5V 16M kompatibilnim ATmega328P (ebay) 2 x 3,30 £ = 6,60 £

Modul upravljačkog programa motora LMD18200T za Arduino R3 (ebay) 6,99 kn

Priključci, žica, vero ploča, potenciometar cca 3,50 kn

Ukupno 32,52 GBP

Osnovna komandna stanica bez tft ekrana i 1 x nano bila bi 22,03 £

[Napomena: Moguće je dodati memorijsku karticu na TFT zaslon i izmijeniti kôd za prikaz slika odabranih strojeva, iako se bibliotečki kodovi moraju urediti kako bi se stvorila dodatna memorija za skicu. Trenutna veličina skice je najveća za TFT Arduino Nano]

Originalni Arduino kôd Michaela Blanka bio je za jedan motor, samo naprijed / nazad bez kontrole funkcija, tipkovnice i zaslona.

Promijenio sam kôd tako da uključuje 1 - 19 motora, zaslon, smjer, svjetla, 8 funkcija, zaustavljanje u nuždi i ograničenje automatske struje.

Most LMD18200T može nositi do 3 ampera što ga čini pogodnim za sve vage, uključujući G-skalu (vrtni vlakovi). Mrežno napajanje i elektronika prikladni su samo za uporabu u zatvorenim prostorima, osim ako ih ne možete zaštititi od vremenskih uvjeta. Imam zapovjednu stanicu u ljetnikovcu sa žicama za spajanje žica koje istječu kroz zid do kolosijeka.

Korak 1: Arduino kôd - naredbena stanica s tipkovnicom

Zahvaljujem se tvantenna2759 što je ukazao na 2 pogreške u dijagramu spoja gdje Arduino kôd nije odgovarao ožičenju, sada ažurirano (21. listopada 2017.).

Sada je dodano 16 skretanja na zapovjednu stanicu. Pogledajte upute za dijagram kruga izlaznosti / točaka pomoću Arduino Mini Pro modula.

Modificirani kôd, uključujući kontrolu izlaznosti, nalazi se u nastavku.

Osnovni paket dekodera dodatne opreme je: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Analizirajući paket koji koristi Lenz (Compact / Atlas) za kontrolu točaka, upotrijebio sam sljedeći format binarnog paketa za bajtove 1 i 2: tunAddr = 1 Izlaz 1a: 1000 0001 1111 1000 / Izlaz 1b: 1000 0001 1111 1001 Izlaz 2a: 1000 0001 1111 1010 / Skret 2b: 1000 0001 1111 1011 Izlaz 3a: 1000 0001 1111 1100 / Izlaz 3b: 1000 0001 1111 1101 Izlaz 4a: 1000 0001 1111 1110 / Izlaz 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- -------------------------------------------------- ----------------- Izlaz 5a: 1000 0010 1111 1000 / Izlaz 5b: 1000 0010 1111 1001 Izlaz 6a: 1000 0010 1111 1010 / Izlaz 6b: 1000 0010 1111 1011 Izlaz 7a: 1000 0010 1111 1100 / Skretanje 7b: 1000 0010 1111 1101 Skretanje 8a: 1000 0010 1111 1110 / Skretanje 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Izlaz 9a: 1000 0011 1111 1000 / Izlaz 9b: 1000 0011 1111 1001 itd ………

Izvadak iz izmijenjenog koda: Dodajte još 2 ažuriranja poruke "struct", izbjegavajte izmjenu_tun1 (poruka strukture i x) {x.data [0] = 0x81; // dekoder dodatne opreme 0x80 & adresa 1 x.data [1] = 0; }

void replace_tun2 (struct poruka & x) {x.data [0] = 0x82; // dekoder dodatne opreme 0x80 & adresa 2 x.data [1] = 0; }

Dodaj novu prazninu za skretnice: boolean read_turnout () {delay (20);

boolean promijenjen_t = false; get_key ();

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

podaci = 0xf8; // = binarni 1111 1000

edit_tun1 (poruka [1]);

}

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

podaci = 0xf8; // = binarni 1111 1000

edit_tun2 (poruka [1]);

}

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

ako (tun1 == 1) {

podatak | = 0; // t1a

promijenjeno_t = istina;}

ako (tun1 == 0) {

podatak | = 0x01; // t1b

promijenjeno_t = istina;}

}

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

ako (tun2 == 1) {

podatak | = 0x02; // t2a

promijenjeno_t = istina;

}

ako (tun2 == 0) {

podatak | = 0x03; // t2b

promijenjeno_t = istina; }

}

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

ako (tun3 == 1) {

podatak | = 0x04; // t3a

promijenjeno_t = istina;

}

ako (tun3 == 0) {

podatak | = 0x05; // t3b

promijenjeno_t = istina;}

}

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

ako (tun4 == 1) {

podatak | = 0x06; // t4a

promijenjeno_t = istina;

}

ako (tun4 == 0) {

podaci | = 0x07; // f4b

promijenjeno_t = istina;}

}

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

ako (tun5 == 1) {

podatak | = 0; // t5a

promijenjeno_t = istina;

}

ako (tun5 == 0) {

podatak | = 0x01; // t5b

promijenjeno_t = istina;}

}

itd ………………….

Korak 2: Arduino kod - TFT zaslon

Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon
Arduino kod - TFT zaslon

Krug prikaza ostaje isti s izmijenjenim kodom za prikaz statusa 16 skretnica. Napomena: Kod knjižnice zauzima gotovo svu memoriju koda skice ostavljajući malo prostora za nove značajke. Ako netko ima učinkovitiju datoteku knjižnice za TFT koji se ovdje koristi, molim da mi to javi.

Korak 3: Kontroler izlaznosti

Kontrolor izlaznosti
Kontrolor izlaznosti
Kontrolor izlaznosti
Kontrolor izlaznosti

Pogledajte upute o tome kako napraviti kontroler izlaznosti / bodova.

Cijeli krug kontrolira 16 točaka i 15 dodataka, poput svjetla, zvukova, gramofona itd.

Preporučeni: