Sadržaj:

Model željeznice - DCC komandna stanica pomoću Arduina :: 3 koraka
Model željeznice - DCC komandna stanica pomoću Arduina :: 3 koraka

Video: Model željeznice - DCC komandna stanica pomoću Arduina :: 3 koraka

Video: Model željeznice - DCC komandna stanica pomoću Arduina :: 3 koraka
Video: Željeznički modelarski klub NVMR - Jedna od najvećih maketa željeznice u Sjedinjenim Državama 2024, Juli
Anonim
Image
Image
Arduino kod - Komandna stanica sa tastaturom
Arduino kod - Komandna stanica sa tastaturom

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

Ažuriranje 28. aprila 2016: Sada 16 komandnih stanica / mogućnost kontrole za komandnu stanicu. Skretnice T1 - T8 dostupne su putem tipke 'B' Skretnice T9 - T16 dostupne su putem tipke 'C'

Ažurirano 10. marta 2016.:

Sada je na komandnu stanicu dodano 8 mogućnosti kontrole izlaznosti / bodova. Arduino kôd je prema tome ažuriran korištenjem standardnog paketa NMRA za skretnice (također na osnovu studije Lenz / Atlas Compact paketa podataka za kontrolu izlaznosti).

Skreti T1 - T8 dostupni su putem tipke 'B'

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

Ažuriranje 18. januara 2016.:

Dodao sam otpornik osjetnika struje (1k5 ohma) i kondenzator (10 uf) u krug i izmijenio Arduino kôd tako da prekine napajanje kada se otkrije 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. Sa 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; (da bi se dao rezultat u miliamperima)

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

Puna 4x4 tastatura uključuje funkcije F1 do F8 i još 10 lokoma (1-19) preko tipke "#" (za dodavanje 10 numeričkim tipkama počevši od loko 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, dugačkoj / kratkoj adresi i uputama grupe 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 je loco 3, 128 koraka brzine, smjer naprijed i korak 3 (zadnji bajt je provjera greške XOR)

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

jednako loko 3, grupa funkcija 1, svijetli 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 tastaturi. Tipka 'D' sada se koristi za 'Hitno zaustavljanje'.

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

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

www.oscale.net/en/simpledcc

4x4 Matrix Matray Array 16 Key Membrane Switch Keypad (ebay) £ 1.75

2,2 inčni 240x320 serijski SPI TFT LCD ekran (ebay) £ 7,19

UNIVERZALNI AC ADAPTER 12V 5A 60W ZA NAPAJANJE (eBay) £ 6.49

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 €

Konektori, žica, vero ploča, potenciometar približno 3,50 £

Ukupno 32,52 £

Osnovna komandna stanica bez tft ekrana i 1 x nano koštala bi 22,03 funti

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

Originalni Arduino kod Michaela Blanka bio je za jedan motor, samo naprijed / nazad bez kontrole funkcija, bez tastature i ekrana.

Promijenio sam kôd tako da uključuje 1 - 19 motora, ekran, smjer, svjetla, 8 funkcija, zaustavljanje u slučaju nužde i automatsko ograničenje struje.

Most LMD18200T može nositi do 3 ampera što ga čini pogodnim za sve vage, uključujući G-skalu (vrtni vlakovi). Električno napajanje i elektronika prikladni su samo za upotrebu u zatvorenim prostorima, osim ako ih ne možete zaštititi od svih vremenskih uvjeta. Imam komandnu stanicu u ljetnikovcu sa žicama koje povezuju žice koje prolaze kroz zid do pruge.

Korak 1: Arduino kod - komandna stanica sa tastaturom

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

Sada je dodano 16 skretanja na komandnu stanicu. Pogledajte upute o shemi sklopke izlaznih točaka pomoću Arduino Mini Pro modula.

Modificirani kod, 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 tač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 / Izlaz 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 / Izlaz 7b: 1000 0010 1111 1101 Izlaz 8a: 1000 0010 1111 1110 / izlaz 8b: 1000 0010 1111 1111 ----------------------- -------------------------------------------------- ---------------------------------- Izlaz 9a: 1000 0011 1111 1000 / Izlaz 9b: 1000 0011 1111 1001 itd ………

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

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

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

boolean promijenjen_t = false; get_key ();

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

podatak = 0xf8; // = binarno 1111 1000

edit_tun1 (poruka [1]);

}

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

podatak = 0xf8; // = binarno 1111 1000

edit_tun2 (poruka [1]);

}

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

if (tun1 == 1) {

podatak | = 0; // t1a

promijenjeno_t = istina;}

if (tun1 == 0) {

podatak | = 0x01; // t1b

promijenjeno_t = istina;}

}

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

if (tun2 == 1) {

podatak | = 0x02; // t2a

promijenjeno_t = istina;

}

if (tun2 == 0) {

podatak | = 0x03; // t2b

promijenjeno_t = istina; }

}

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

if (tun3 == 1) {

podatak | = 0x04; // t3a

promijenjeno_t = istina;

}

if (tun3 == 0) {

podaci | = 0x05; // t3b

promijenjeno_t = istina;}

}

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

if (tun4 == 1) {

podatak | = 0x06; // t4a

promijenjeno_t = istina;

}

if (tun4 == 0) {

podaci | = 0x07; // f4b

promijenjeno_t = istina;}

}

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

if (tun5 == 1) {

podatak | = 0; // t5a

promijenjeno_t = istina;

}

if (tun5 == 0) {

podatak | = 0x01; // t5b

promijenjeno_t = istina;}

}

itd ………………….

Korak 2: Arduino kod - TFT ekran

Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran
Arduino kod - TFT ekran

Krug prikaza ostaje isti s izmijenjenim kodom za prikaz statusa 16 skretnica. Napomena: Kod biblioteke zauzima gotovo svu memoriju koda skice ostavljajući malo prostora za nove funkcije. Ako neko ima efikasniju datoteku biblioteke za TFT koji se ovdje koristi, neka mi to javi.

Korak 3: Kontroler izlaznosti

Kontroler izlaznosti
Kontroler izlaznosti
Kontroler izlaznosti
Kontroler izlaznosti

Pogledajte uputstva o tome kako napraviti kontroler izlaznosti / poena.

Kompletno kolo kontrolira 16 točaka i 15 dodataka poput svjetla, zvukova, gramofona itd.

Preporučuje se: