Talaan ng mga Nilalaman:
- Hakbang 1: Arduino Code - Command Station Gamit ang Keypad
- Hakbang 2: Arduino Code - Display ng TFT
- Hakbang 3: Turnout Controller
Video: Model Railway - DCC Command Station Gamit ang Arduino :: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Nai-update noong Agosto 2018 - tingnan ang bagong Instructable:
I-update ang Abril 28, 2016: Ngayon 16 na turnout / puntos na kontrol sa kakayahan sa Command Station. Ang mga turnout T1 - T8 ay magagamit sa pamamagitan ng 'B' key Ang mga turnout na T9 - T16 ay magagamit sa pamamagitan ng key na 'C'
I-update ang Marso 10, 2016:
Nagdagdag na ngayon ng 8 turnout / point control capability sa Command Station. Ang Arduino code ay na-update nang naaayon gamit ang standard na packet ng NMRA para sa mga turnout (batay din sa isang pag-aaral ng mga packet ng data ng Lenz / Atlas Compact para sa kontrol ng pag-turnout).
Ang mga turnout na T1 - T8 ay magagamit sa pamamagitan ng 'B' key
Tingnan ang itinuturo sa ginamit na circuit ng packet ng data at kinakailangan ang Arduino code.
I-update ang ika-18 ng Ene 2016:
Nagdagdag ako ng kasalukuyang sense resistor (1k5 ohm) at capacitor (10 uf) sa circuit at binago ang Arduino code upang putulin ang kuryente kapag may napansin na isang kasalukuyang rurok na> 3200 mAmps. Ang spec na H-bridge ay nagsasaad ng kasalukuyang output sense na 377 uA bawat 1 Amp sa pagkarga.
Ang 1.5 k ohm risistor ay maghatid ng 0.565 volts bawat Amp sa analog pin 6. Sa 1023 na mga hakbang sa analog input, nagbibigay ito ng 0.565 * 1023/5 = 116 bawat Amp na karga.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (upang magbigay ng resulta sa milliamp)
Ang kasalukuyang karga sa mga milliamp ay ipinapakita sa TFT
Ang buong 4x4 na keyboard ay may kasamang F1 hanggang F8 na mga pag-andar at isa pang 10 locos (1-19) sa pamamagitan ng key na '#' (upang magdagdag ng 10 sa mga numerong key na nagsisimula sa loco 10).
Kasama sa arduino code ang pamantayan ng NMRA para sa mga byte ng pagtuturo.
Tingnan ang link
www.nmra.org/site/default/files/s-9.2.1_20…
(pahina 6 ay partikular na nauugnay)
Ang mga packet ay nakaayos ayon sa bilang ng mga hakbang sa bilis, mahaba / maikling address at mga tagubilin sa Function Group.
Ang lahat ng mga byte ng pagtuturo ay naunahan ng paunang salita ng '1' bits 11111111 (o idle packet) na sinusundan ng;
hal. Isang 4 byte address 0 00000011 0 00111111 0 10000011 0 10111111
katumbas sa loco 3, 128 mga hakbang sa bilis, direksyon sa pasulong at bilis ng hakbang 3 (ang end byte ay ang error check XOR)
hal. Isang 3 byte address 0 00000011 0 10010000 0 10110011
katumbas sa loco 3, function group 1, FL lights on plus XOR byte (isang '0' bit ang naghihiwalay sa bawat byte)
Tingnan ang nakapaloob na video ng demonstrasyon para sa loco 12.
Ang mga pagpapaandar F1 - F8 ay magagamit sa pamamagitan ng 'A' key, DIR ('*' key = direksyon) FL ('0' key = lights) at key '#' ay nagbibigay ng locos 10 hanggang 19 sa numeric keypad. Ginagamit na ngayon ang 'D' key para sa isang 'Emergency STOP'.
Salamat sa iba't ibang mga tagabigay ng web para sa mga mapagkukunan ng impormasyon ng DCC at Arduino code.
Sa partikular, ang proyektong ito ay inspirasyon ni Michael Blank at ng kanyang 'Simple DCC - isang command station'
www.oscale.net/en/simpledcc
4x4 Matrix Array 16 Key Membrane Switch Keypad (ebay) £ 1.75
2.2 pulgada 240x320 Serial SPI TFT LCD Display Module (ebay) na £ 7.19
UNIVERSAL 12V 5A 60W POWER SUPPLY AC ADAPTER (ebay) £ 6.49
Nano V3.0 Para sa Arduino na may CH340G 5V 16M katugmang ATmega328P (ebay) 2 x £ 3.30 = £ 6.60
Motor Driver Module LMD18200T para sa Arduino R3 (ebay) na £ 6.99
Mga konektor, wire, vero board, potentiometer humigit-kumulang na £ 3.50
Kabuuang £ 32.52
Ang pangunahing istasyon ng utos nang walang tft screen at 1 x nano ay magiging £ 22.03
[Tandaan: Posibleng magdagdag ng isang memory card sa display ng TFT at baguhin ang code upang maipakita ang mga imahe ng mga napiling engine, kahit na ang mga code ng library ay dapat na mai-edit pababa upang lumikha ng higit na memorya para sa sketch. Ang kasalukuyang laki ng sketch ay nasa isang maximum para sa TFT Arduino Nano]
Ang orihinal na Arduino code ni Michael Blank ay para sa isang engine, pasulong / baligtarin lamang na walang kontrol sa pag-andar, walang keypad at walang display.
Binago ko ang code upang isama ang mga 1 - 19 na makina, isang display screen, direksyon, ilaw, 8 pagpapaandar, paghinto ng emergency at kasalukuyang kasalukuyang limitasyon.
Ang tulay ng LMD18200T ay maaaring magdala ng hanggang sa 3 amps na ginagawang angkop para sa lahat ng mga kaliskis kabilang ang G-scale (mga tren sa hardin). Ang supply ng kuryente ng mains at electronics ay angkop para sa panloob na paggamit lamang maliban kung magawa mo itong lahat na patunay sa panahon. Mayroon akong istasyon ng utos sa bahay ng tag-init na may mga koneksyon sa tren na tumatakbo sa pader sa track.
Hakbang 1: Arduino Code - Command Station Gamit ang Keypad
Ang aking pasasalamat sa tvantenna2759 sa pagturo ng 2 mga error sa circuit diagram kung saan ang Arduino code ay hindi tugma sa mga kable, na-update na ngayon (21 Okt 2017).
Nagdagdag ngayon ng 16 na turnout sa Command Station. Tingnan ang itinuturo sa turnout / point circuit diagram gamit ang Arduino Mini Pro module.
Ang binagong code kabilang ang kontrol sa pag-turnout ay nakakabit sa ibaba.
Pangunahing Accessory decoder packet ay: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Mula sa pag-aaral ng packet na ginamit ni Lenz (Compact / Atlas) para sa point control, ginamit ko ang sumusunod na format ng binary packet para sa bytes 1 at 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 ----------------- ---- ----------------- Turnout 5a: 1000 0010 1111 1000 / Turnout 5b: 1000 0010 1111 1001 Turnout 6a: 1000 0010 1111 1010 / Turnout 6b: 1000 0010 1111 1011 Turnout 7a: 1000 0010 1111 1100 / Turnout 7b: 1000 0010 1111 1101 Turnout 8a: 1000 0010 1111 1110 / Turnout 8b: 1000 0010 1111 1111 ----------------- ---- ---------------------------------- Turnout 9a: 1000 0011 1111 1000 / Turnout 9b: 1000 0011 1111 1001 atbp ………
I-extract mula sa binagong code: Magdagdag ng 2 higit pang mga update ng mensahe na 'struct' na iwas sa amend_tun1 (struct Message & x) {x.data [0] = 0x81; // accessory decoder 0x80 & address 1 x.data [1] = 0; }
walang bisa amend_tun2 (struct Mensahe & x) {x.data [0] = 0x82; // accessory decoder 0x80 & address 2 x.data [1] = 0; }
Magdagdag ng bagong walang bisa para sa mga turnout: boolean read_turnout () {pagkaantala (20);
nagbago ang boolean_t = false; get_key ();
kung (key_val> = 101 && key_val <= 404 && turn == 1) {
data = 0xf8; // = binary 1111 1000
amend_tun1 (msg [1]);
}
kung (key_val> = 505 && key_val <= 808 && turn == 1) {
data = 0xf8; // = binary 1111 1000
amend_tun2 (msg [1]);
}
kung (key_val == 101 && turn == 1) {
kung (tun1 == 1) {
data | = 0; // t1a
nagbago_t = totoo;}
kung (tun1 == 0) {
data | = 0x01; // t1b
nagbago_t = totoo;}
}
kung (key_val == 202 && turn == 1) {
kung (tun2 == 1) {
data | = 0x02; // t2a
nagbago_t = totoo;
}
kung (tun2 == 0) {
data | = 0x03; // t2b
nagbago_t = totoo; }
}
kung (key_val == 303 && turn == 1) {
kung (tun3 == 1) {
data | = 0x04; // t3a
nagbago_t = totoo;
}
kung (tun3 == 0) {
data | = 0x05; // t3b
nagbago_t = totoo;}
}
kung (key_val == 404 && turn == 1) {
kung (tun4 == 1) {
data | = 0x06; // t4a
nagbago_t = totoo;
}
kung (tun4 == 0) {
data | = 0x07; // f4b
nagbago_t = totoo;}
}
kung (key_val == 505 && turn == 1) {
kung (tun5 == 1) {
data | = 0; // t5a
nagbago_t = totoo;
}
kung (tun5 == 0) {
data | = 0x01; // t5b
nagbago_t = totoo;}
}
atbp ………………….
Hakbang 2: Arduino Code - Display ng TFT
Ang display circuit ay mananatiling pareho sa isang binagong code upang maipakita ang katayuan ng 16 na turnout. Tandaan: Tumatagal ang code ng library ng halos lahat ng memorya ng sketch code na iniiwan ang maliit na silid para sa mga bagong tampok. Kung ang sinuman ay may isang mas mahusay na file ng library para sa ginamit na TFT dito, mangyaring ipaalam sa akin.
Hakbang 3: Turnout Controller
Tingnan ang itinuturo sa kung paano gawin ang Turnout / Points controller.
Kinokontrol ng kumpletong circuit ang 16 na puntos at 15 mga aksesorya tulad ng mga ilaw, tunog, paikutan, atbp.
Inirerekumendang:
Simpleng Awtomatikong Model Railway Layout - Kinokontrol ng Arduino: 11 Mga Hakbang (na may Mga Larawan)
Simpleng Awtomatikong Model Railway Layout | Kinokontrol ng Arduino: Ang mga Arduino microcontroller ay isang mahusay na karagdagan sa modelo ng riles ng tren, lalo na kapag nakikipag-usap sa awtomatiko. Narito ang isang simple at madaling paraan upang makapagsimula sa modelo ng automobile ng riles gamit ang Arduino. Kaya, nang walang anumang pag-aalinlangan, magsimula na tayo
Manatiling Ligtas Gamit ang Bikelight na Ito Gamit ang Mga Senyas na Pagliko: 5 Hakbang (na may Mga Larawan)
Manatiling Ligtas Gamit ang Bikelight na Ito Gamit ang Mga Sinyales na Pag-turn: Gustong-gusto kong sumakay ng bisikleta, karaniwang ginagamit ko ito upang makarating sa paaralan. Sa oras ng taglamig, madalas na madilim pa rin sa labas at mahirap para sa ibang mga sasakyan na makita ang mga signal ng aking kamay na lumiliko. Samakatuwid ito ay isang malaking panganib dahil maaaring hindi makita ng mga trak na nais kong
Awtomatikong Sistema ng tawiran ng Railway Gamit ang Arduino Base Embedded Platform: 9 Mga Hakbang
Awtomatikong Sistema ng tawiran ng Railway Gamit ang Arduino Base Embedded Platform: ang Pasko ay isang linggo lamang ang layo! Ang lahat ay abala sa mga pagdiriwang at pagkuha ng mga regalo, kung saan, sa pamamagitan ng paraan, ay nakakakuha ng lahat ng mas mahirap upang makakuha ng walang katapusang mga posibilidad sa paligid natin. Paano ang tungkol sa pagpunta sa isang klasikong regalo at magdagdag ng isang ugnayan ng DIY sa
Pagkontrol ng Mga Device Sa Command ng Boses Gamit ang NodeMCU: 7 Hakbang (na may Mga Larawan)
Pagkontrol ng Mga Device Sa Command ng Boses Gamit ang NodeMCU: Nais ko lamang kamustahin ang lahat, ito ang aking kauna-unahang pagkakataon sa pagsusulat ng isang maaaring turuan na proyekto. Hindi Ingles ang aking katutubong wika kaya susubukan kong gumawa ng maikli at malinaw na hangga't maaari. Ang pagkontrol ng mga aparato gamit ang utos ng boses ay hindi isang kakatwang bagay
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c