Përmbajtje:
- Hapi 1: Kodi Arduino - Stacioni i komandës me tastierë
- Hapi 2: Kodi Arduino - Ekrani TFT
- Hapi 3: Kontrolluesi i pjesëmarrjes
Video: Model hekurudhor - Stacioni i Komandës DCC duke përdorur Arduino :: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:24
Përditësuar në gusht 2018-shihni Instructable të ri:
Përditësim 28 Prill 2016: Tani 16 pjesëmarrje / aftësi për të kontrolluar pikat në Stacionin e Komandës. Pjesëmarrjet T1 - T8 janë të disponueshme përmes butonit "B" Pjesëmarrjet në dalje T9 - T16 janë të disponueshme përmes çelësit "C"
Përditësimi më 10 Mars 2016:
Tani janë shtuar 8 aftësi të kontrollit të pjesëmarrjes / pikave në Stacionin e Komandës. Kodi Arduino është përditësuar në përputhje me rrethanat duke përdorur paketën standarde NMRA për dalje (gjithashtu bazuar në një studim të paketave të të dhënave Lenz / Atlas Compact për kontrollin e pjesëmarrjes).
Rezultatet dalëse T1 - T8 janë në dispozicion përmes çelësit 'B'
Shih udhëzues në qarkun e marrësit të paketës së të dhënave të përdorur dhe kodin Arduino të kërkuar.
Përditësimi më 18 janar 2016:
Unë kam shtuar një rezistencë sensuale aktuale (1k5 ohm) dhe kondensator (10 uf) në qark dhe kam ndryshuar kodin Arduino për të ndërprerë fuqinë kur zbulohet një rrymë maksimale> 3200 mAmps. Specifikimi i urës H thekson një rrymë të ndjeshme të prodhimit prej 377 uA për 1 Amp në ngarkesë.
Rezistenca 1.5 ohm do të japë 0.565 volt për Amp në kunjin analog 6. Me 1023 hapa në hyrjen analoge, kjo jep 0.565 * 1023 /5 = 116 për ngarkesë Amp.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (për të dhënë rezultat në miliamps)
Rryma e ngarkesës në miliamps shfaqet në TFT
Tastiera e plotë 4x4 përfshin funksionet F1 në F8 dhe 10 loco të tjera (1-19) përmes butonit '#' (për të shtuar 10 në çelësat numerikë duke filluar nga loco 10).
Kodi arduino përfshin standardin NMRA për bajtët e udhëzimeve.
Shih lidhjen
www.nmra.org/sites/default/files/s-9.2.1_20…
(faqe 6 ka një rëndësi të veçantë)
Paketat janë rregulluar sipas numrit të hapave të shpejtësisë, adresës së gjatë / të shkurtër dhe udhëzimeve të Grupit të Funksioneve.
Të gjithë bajtët e udhëzimit paraprihen nga një parathënie e bitëve '1' 11111111 (ose pako boshe) e ndjekur nga;
p.sh. Një adresë 4 bajtësh 0 00000011 0 00111111 0 10000011 0 10111111
barazohet me loco 3, 128 hapa shpejtësie, drejtimi përpara dhe hapi shpejtësi 3 (bajti përfundimtar është kontrollimi i gabimit XOR)
p.sh. Një adresë 3 bajtësh 0 00000011 0 10010000 0 10110011
barazohet me loco 3, grupi i funksioneve 1, ndez dritat FL plus bajt XOR (një bit '0' ndan çdo bajt)
Shikoni videon demonstruese të bashkangjitur për vendndodhjen 12.
Funksionet F1 - F8 janë të disponueshme nëpërmjet tastit 'A', DIR ('*' çelësi = drejtimi) FL ('0' çelësat = dritat) dhe çelësi '#' jep vendndodhjet 10 deri në 19 në tastierën numerike. Tasti 'D' tani përdoret për një 'STOP Emergjence'.
Faleminderit ofruesve të ndryshëm në internet për burimet e informacionit DCC dhe kodin Arduino.
Në veçanti, ky projekt u frymëzua nga Michael Blank dhe tij 'Simple DCC - a command station'
www.oscale.net/sq/simpledcc
Tastiera 4x4 Matrix Array 16 Key Membrane Switch (ebay) 1.75 £
Moduli i ekranit 2.2 inç 240x320 Serial SPI TFT LCD (ebay) 7.19 £
UNIVERSAL 12V 5A 60W Furnizim me energji elektrike AC (ebay) 49 6.49
Nano V3.0 Për Arduino me CH340G 5V 16M në përputhje ATmega328P (ebay) 2 x £ 3.30 = 60 6.60
Moduli i Shoferit Motor LMD18200T për Arduino R3 (ebay) 6.99 £
Lidhës, tela, pllakë vero, potenciometër afërsisht 3.50
Gjithsej 32.52
Stacioni bazë i komandës pa ekran tft dhe 1 x nano do të ishte 22.03
[Shënim: isshtë e mundur të shtoni një kartë memorie në ekranin TFT dhe të ndryshoni kodin për të shfaqur imazhet e motorëve të zgjedhur, megjithëse kodet e bibliotekës duhet të redaktohen për të krijuar më shumë kujtesë për skicën. Madhësia aktuale e skicës është në maksimum për TFT Arduino Nano]
Kodi origjinal Arduino nga Michael Blank ishte për një motor, vetëm përpara / prapa pa kontroll funksioni, pa tastierë dhe pa ekran.
Kam ndryshuar kodin për të përfshirë 1 - 19 motorë, një ekran, drejtim, drita, 8 funksione, ndalesë emergjente dhe kufi automatik aktual.
Ura LMD18200T mund të mbajë deri në 3 amper gjë që e bën të përshtatshme për të gjitha shkallët përfshirë shkallën G (trenat e kopshtit). Furnizimi me energji elektrike dhe elektronika janë të përshtatshme për përdorim të brendshëm vetëm nëse nuk mund t'i bëni të gjitha provat e motit. Unë kam stacionin e komandës në shtëpinë verore me tela lidhës hekurudhor që mbarojnë përmes murit në pistë.
Hapi 1: Kodi Arduino - Stacioni i komandës me tastierë
Falenderimet e mia për tvantenna2759 për vënien në dukje të 2 gabimeve në diagramin e qarkut ku kodi Arduino nuk përputhej me telat, të azhurnuar tani (21 tetor 2017).
Tani janë shtuar 16 pjesëmarrje në Komandën. Shihni udhëzues në diagramin e qarkullimit / pikave duke përdorur modulin Arduino Mini Pro.
Kodi i modifikuar duke përfshirë kontrollin e pjesëmarrjes është bashkangjitur më poshtë.
Paketa e dekoduesit të aksesorëve bazë është: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Nga analiza e paketës së përdorur nga Lenz (Compact / Atlas) për kontrollin e pikëve, kam përdorur formatin e mëposhtëm të paketës binare për bajtët 1 dhe 2: tunAddr = 1 Rrjedhje 1a: 1000 0001 1111 1000 / Pjesëmarrja 1b: 1000 0001 1111 1001 Pjesëmarrja 2a: 1000 0001 1111 1010 / Pjesëmarrja 2b: 1000 0001 1111 1011 Pjesëmarrja 3a: 1000 0001 1111 1100 / Pjesëmarrja 3b: 1000 0001 1111 1101 Pjesëmarrja 4a: 1000 0001 1111 1110 / Pjesëmarrja 4b: 1000 0001 1111 1111 tunAddr = 2 -------------------------------------------- ------------------------------------------------------ ----------------- Pjesëmarrja 5a: 1000 0010 1111 1000 / Pjesëmarrja 5b: 1000 0010 1111 1001 Pjesëmarrja 6a: 1000 0010 1111 1010 / Pjesëmarrja 6b: 1000 0010 1111 1011 Pjesëmarrja 7a: 1000 0010 1111 1100 / Pjesëmarrja 7b: 1000 0010 1111 1101 Pjesëmarrja 8a: 1000 0010 1111 1110 / Pjesëmarrja 8b: 1000 0010 1111 1111 ----------------------- ------------------------------------------------------ -------------------------------------- Pjesëmarrja 9a: 1000 0011 1111 1000 / Pjesëmarrja 9b: 1000 0011 1111 1001 etj ………
Ekstrakt nga kodi i modifikuar: Shtoni edhe 2 përditësime të tjera të mesazhit 'strukt' shmangeni ndryshimin_tun1 (struktura Mesazhi & x) {x.data [0] = 0x81; // dekodues aksesor 0x80 & adresa 1 x.data [1] = 0; }
void amend_tun2 (struct Mesazhi & x) {x.data [0] = 0x82; // dekodues aksesor 0x80 & adresa 2 x.data [1] = 0; }
Shto zbrazëti të re për daljet: boolean read_turnout () {vonesë (20);
boolean ndryshoi_t = false; get_key ();
nëse (key_val> = 101 && key_val <= 404 && turn == 1) {
të dhëna = 0xf8; // = binare 1111 1000
amend_tun1 (msg [1]);
}
nëse (key_val> = 505 && key_val <= 808 && turn == 1) {
të dhëna = 0xf8; // = binare 1111 1000
amend_tun2 (msg [1]);
}
nëse (key_val == 101 && kthehet == 1) {
nëse (tun1 == 1) {
të dhëna | = 0; // t1a
ndryshuar_t = e vërtetë;}
nëse (tun1 == 0) {
të dhëna | = 0x01; // t1b
ndryshuar_t = e vërtetë;}
}
nëse (key_val == 202 && kthehet == 1) {
nëse (tun2 == 1) {
të dhëna | = 0x02; // t2a
ndryshuar_t = e vërtetë;
}
nëse (tun2 == 0) {
të dhëna | = 0x03; // t2b
ndryshuar_t = e vërtetë; }
}
nëse (key_val == 303 && kthehet == 1) {
nëse (tun3 == 1) {
të dhëna | = 0x04; // t3a
ndryshuar_t = e vërtetë;
}
nëse (tun3 == 0) {
të dhëna | = 0x05; // t3b
ndryshuar_t = e vërtetë;}
}
nëse (key_val == 404 && kthehet == 1) {
nëse (tun4 == 1) {
të dhëna | = 0x06; // t4a
ndryshuar_t = e vërtetë;
}
nëse (tun4 == 0) {
të dhëna | = 0x07; // f4b
ndryshuar_t = e vërtetë;}
}
nëse (key_val == 505 && kthehet == 1) {
nëse (tun5 == 1) {
të dhëna | = 0; // t5a
ndryshuar_t = e vërtetë;
}
nëse (tun5 == 0) {
të dhëna | = 0x01; // t5b
ndryshuar_t = e vërtetë;}
}
etj ……………………….
Hapi 2: Kodi Arduino - Ekrani TFT
Qarku i ekranit mbetet i njëjtë me një kod të modifikuar për të treguar statusin e 16 daljeve. Shënim: Kodi i bibliotekës merr pothuajse të gjithë kujtesën e skicës së kodit duke lënë pak hapësirë për veçori të reja. Nëse dikush ka një skedar bibliotekash më efikas për TFT të përdorur këtu, ju lutem më tregoni.
Hapi 3: Kontrolluesi i pjesëmarrjes
Shihni udhëzues se si të bëni kontrolluesin e pjesëmarrjes / pikëve.
Qarku i plotë kontrollon 16 pika dhe 15 pajisje shtesë si dritat, tingujt, pllakën, etj.
Recommended:
DIY -- Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: 6 hapa
DIY || Si të bëni një robot merimangë i cili mund të kontrollohet duke përdorur smartphone duke përdorur Arduino Uno: Ndërsa bëni një robot merimangë, mund të mësoni shumë gjëra për robotikën. Ashtu si bërja e robotëve është edhe argëtuese, edhe sfiduese. Në këtë video ne do t'ju tregojmë se si të bëni një robot Spider, të cilin mund ta përdorim duke përdorur smartphone -in tonë (Androi
Model hekurudhor i thjeshtë i automatizuar nga pika në pikë: 10 hapa (me fotografi)
Modeli i thjeshtë i automatizuar i modelit hekurudhor: mikrokontrolluesit Arduino janë të shkëlqyeshëm për të automatizuar modelin e modelit të hekurudhave. Automatizimi i paraqitjeve është i dobishëm për shumë qëllime, si vendosja e paraqitjes tuaj në një ekran ku operacioni i paraqitjes mund të programohet për të drejtuar trenat në një sekuencë të automatizuar. L
Model hekurudhor i kontrolluar me laptop me prekje - PS/2 Ndërfaqja Arduino: 14 hapa
Model hekurudhor i kontrolluar me laptop me prekje | PS/2 Ndërfaqja Arduino: Tastiera prekëse e një laptopi është një nga pajisjet e shkëlqyera për t'u përdorur si një input për projektet e mikrokontrolluesve. Pra, sot, le ta zbatojmë këtë pajisje me një mikrokontrollues Arduino për të kontrolluar një model hekurudhor. Duke përdorur një tastierë prekëse PS/2, ne do të jemi në gjendje të kontrollojmë 3 t
Telekomanda me valë duke përdorur modulin NRF24L01 2.4Ghz me Arduino - Nrf24l01 Marrës transmetues 4 kanal / 6 kanal për kuadopter - Rc Helikopter - Rc Plane Duke përdorur Arduino: 5 hapa (me fotografi)
Telekomanda me valë duke përdorur modulin NRF24L01 2.4Ghz me Arduino | Nrf24l01 Marrës transmetues 4 kanal / 6 kanal për kuadopter | Rc Helikopter | Rc Plane Duke përdorur Arduino: Për të drejtuar një makinë RC | Kuadikopter | Dron | RC aeroplan | Varka RC, ne gjithmonë kemi nevojë për një marrës dhe transmetues, supozoni për RC QUADCOPTER kemi nevojë për një transmetues dhe marrës me 6 kanale dhe ai lloj TX dhe RX është shumë i kushtueshëm, kështu që ne do të bëjmë një në pajisjen tonë
Model hekurudhor i automatizuar nga pika në pikë me anën e oborrit: 10 hapa (me fotografi)
Modeli hekurudhor i automatizuar nga pika në pikë me anën e oborrit: Mikrokontrolluesit Arduino hapin mundësi të mëdha në modelimin e hekurudhave, veçanërisht kur bëhet fjalë për automatizimin. Ky projekt është një shembull i një aplikimi të tillë. Shtë vazhdim i një prej projekteve të mëparshëm. Ky projekt përfshin një pikë