Obsah:
- Krok 1: Arduino Code - príkazová stanica s klávesnicou
- Krok 2: Arduino Code - TFT displej
- Krok 3: Ovládač výhybky
Video: Modelová železnica - Riadiaca stanica DCC využívajúca Arduino :: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Aktualizované v auguste 2018-pozrite si nový návod:
Aktualizácia 28. apríla 2016: Teraz schopnosť 16 výhybiek / bodov ovládať veliteľskú stanicu. Výhybky T1 - T8 sú k dispozícii pomocou tlačidla „B“Výhybky T9 - T16 sú k dispozícii pomocou tlačidla „C“
Aktualizácia 10. marca 2016:
Teraz bola do veliteľskej stanice pridaná možnosť riadenia 8 výhybiek / bodov. Kód Arduino bol zodpovedajúcim spôsobom aktualizovaný pomocou štandardného paketu NMRA pre výhybky (tiež na základe štúdie dátových paketov Lenz / Atlas Compact na riadenie výhybiek).
Výhybky T1 - T8 sú k dispozícii pomocou tlačidla „B“
Pozrite si pokyny k použitému obvodu prijímača paketov údajov a vyžaduje sa kód Arduino.
Aktualizácia 18. januára 2016:
Do obvodu som pridal odpor snímajúci prúd (1k5 ohm) a kondenzátor (10 uf) a upravil kód Arduino, aby prerušil napájanie, keď je detekovaný špičkový prúd> 3200 mAmps. Špecifikácia mostíka H uvádza výstupný snímací prúd 377 uA na 1 A v záťaži.
1,5 k ohmový odpor dodá 0,565 voltov na ampér na analógovom pine 6. S 1023 krokmi na analógovom vstupe to poskytne 0,565 * 1023/5 = 116 na ampérové zaťaženie.
A = 100 * (analógové čítanie (AN_CURRENT)) / 116; A = A * 10; (výsledkom bude miliampér)
Zaťažovací prúd v miliampéroch je zobrazený na TFT
Plná klávesnica 4x4 obsahuje funkcie F1 až F8 a ďalších 10 lokomotív (1-19) pomocou klávesu '#' (na pridanie 10 k numerickým klávesám začínajúcim od loco 10).
Arduino kód obsahuje štandard NMRA pre inštrukčné bajty.
Viď odkaz
www.nmra.org/sites/default/files/s-9.2.1_20…
(strana 6 je obzvlášť dôležitá)
Pakety sú usporiadané podľa počtu rýchlostných krokov, dlhej / krátkej adresy a pokynov skupiny funkcií.
Všetkým bajtom inštrukcií predchádza preambula „1“bitov 11111111 (alebo nečinný paket), za ktorými nasleduje;
napr. 4 bajtová adresa 0 00000011 0 00111111 0 10000011 0 10111111
zodpovedá loco 3, 128 rýchlostných krokov, smer dopredu a krok rýchlosti 3 (koncový bajt je kontrola chýb XOR)
napr. 3 -bajtová adresa 0 00000011 0 10010000 0 10110011
zodpovedá loco 3, funkčná skupina 1, FL svieti plus XOR byte (bit '0' oddeľuje každý bajt)
Pozrite si priložené demonštračné video pre loco 12.
Funkcie F1 - F8 sú k dispozícii pomocou klávesu „A“, DIR (klávesa „*“= smer) FL (kláves „0“= svetlá) a klávesu „#“poskytujú lokomotívam 10 až 19 na numerickej klávesnici. Kľúč „D“sa teraz používa na „núdzové zastavenie“.
Vďaka rôznym poskytovateľom na webe za zdroje informácií DCC a kódu Arduino.
Tento projekt bol inšpirovaný najmä Michaelom Blankom a jeho „jednoduchým DCC - veliteľskou stanicou“
www.oscale.net/en/simpledcc
Klávesnica membránového spínača s maticou 4x4 matice 16 (ebay) 1,75 GBP
2,2 palcový 240x320 sériový modul SPI TFT LCD displej (ebay) 7,19 GBP
UNIVERZÁLNY 12V 5A 60W NAPÁJACÍ ADAPTÉR (ebay) 6,49 GBP
Nano V3.0 pre Arduino s CH340G 5V 16M kompatibilným ATmega328P (ebay) 2 x 3,30 GBP = 6,60 GBP
Modul ovládača motora LMD18200T pre Arduino R3 (ebay) 6,99 GBP
Konektory, drôt, doska vero, potenciometer približne 3,50 GBP
Spolu 32,52 libier
Základná veliteľská stanica bez obrazovky tft a 1 x nano by stála 22,03 libry
[Poznámka: Na displej TFT je možné pridať pamäťovú kartu a zmeniť kód tak, aby sa zobrazovali obrázky vybraných motorov, aj keď kódy knižnice je potrebné upraviť, aby sa vytvorila väčšia pamäť pre skicu. Aktuálna veľkosť náčrtu je maximálna pre TFT Arduino Nano]
Pôvodný kód Arduino od Michaela Blanka bol pre jeden motor, iba vpred / vzad bez ovládania funkcií, bez klávesnice a bez displeja.
Upravil som kód tak, aby zahŕňal 1 - 19 motorov, obrazovku, smer, svetlá, 8 funkcií, núdzové zastavenie a automatické obmedzenie prúdu.
Most LMD18200T môže prenášať až 3 ampéry, vďaka čomu je vhodný pre všetky stupne vrátane stupnice G (záhradné vláčiky). Sieťový napájací zdroj a elektronika sú vhodné iba na vnútorné použitie, pokiaľ nie je všetko odolné voči poveternostným vplyvom. Mám veliteľskú stanicu v letohrádku s koľajnicovými spojovacími drôtmi vychádzajúcimi cez stenu na koľaj.
Krok 1: Arduino Code - príkazová stanica s klávesnicou
Ďakujem tvantenna2759 za upozornenie na 2 chyby v schéme zapojenia, kde sa kód Arduino nezhodoval s káblami, teraz aktualizované (21. októbra 2017).
Teraz bolo na veliteľskú stanicu pridaných 16 výhybiek. Pozrite si pokyny v schéme zapojenia výhybiek / bodov pomocou modulu Arduino Mini Pro.
Upravený kód vrátane ovládania výhybiek je uvedený nižšie.
Balíček dekodéra základného príslušenstva je: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Z analýzy paketu používaného Lenzom (Compact / Atlas) na riadenie bodov som použil nasledujúci binárny formát paketov pre bajty 1 a 2: tunAddr = 1 Výhybka 1a: 1000 0001 1111 1000 / Výhybka 1b: 1000 0001 1111 1001 Výhybka 2a: 1000 0001 1111 1010 / Výhybka 2b: 1000 0001 1111 1011 Výhybka 3a: 1000 0001 1111 1100 / Výhybka 3b: 1000 0001 1111 1101 Výhybka 4a: 1000 0001 1111 1110 / Výhybka 4b: 1000 0001 1111 1111 tunAddr = 2 ----------------------------------------- ---------------------------------------------------------- ----------------- Účasť 5a: 1000 0010 1111 1000 / Účasť 5b: 1000 0010 1111 1001 Výhybka 6a: 1000 0010 1111 1010 / Účasť 6b: 1000 0010 1111 1011 Účasť 7a: 1000 0010 1111 1100 / Výhybka 7b: 1000 0010 1111 1101 Výhybka 8a: 1000 0010 1111 1110 / Výhybka 8b: 1000 0010 1111 1111 ----------------------- ---------------------------------------------------------- ---------------------------------- Účasť 9a: 1000 0011 1111 1000 / Účasť 9b: 1000 0011 1111 1001 atď. …
Extrakt z upraveného kódu: Pridajte ďalšie 2 aktualizácie správy „struct“Vyhnite sa dodatku_tun1 (štruktúra správy & x) {x.data [0] = 0x81; // dekodér príslušenstva 0x80 & adresa 1 x.data [1] = 0; }
neplatné doplnok_tun2 (štruktúrovaná správa & x) {x.data [0] = 0x82; // dekodér príslušenstva 0x80 & adresa 2 x.data [1] = 0; }
Pridať novú prázdnotu pre výhybky: boolean read_turnout () {delay (20);
boolean changed_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
údaje = 0xf8; // = binárne 1111 1000
doplniť_tun1 (správa [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
údaje = 0xf8; // = binárne 1111 1000
doplniť_tun2 (správa [1]);
}
if (key_val == 101 && turn == 1) {
ak (tun1 == 1) {
údaje | = 0; // t1a
changed_t = true;}
if (tun1 == 0) {
údaje | = 0x01; // t1b
changed_t = true;}
}
if (key_val == 202 && turn == 1) {
ak (tun2 == 1) {
údaje | = 0x02; // t2a
changed_t = true;
}
if (tun2 == 0) {
údaje | = 0x03; // t2b
changed_t = true; }
}
if (key_val == 303 && turn == 1) {
ak (tun3 == 1) {
údaje | = 0x04; // t3a
changed_t = true;
}
ak (tun3 == 0) {
údaje | = 0x05; // t3b
changed_t = true;}
}
if (key_val == 404 && turn == 1) {
ak (tun4 == 1) {
údaje | = 0x06; // t4a
changed_t = true;
}
ak (tun4 == 0) {
údaje | = 0x07; // f4b
changed_t = true;}
}
if (key_val == 505 && turn == 1) {
ak (tun5 == 1) {
údaje | = 0; // t5a
changed_t = true;
}
if (tun5 == 0) {
údaje | = 0x01; // t5b
changed_t = true;}
}
atď ………………….
Krok 2: Arduino Code - TFT displej
Okruh displeja zostáva rovnaký s upraveným kódom na zobrazenie stavu 16 výhybiek. Poznámka: Kód knižnice zaberá takmer všetku pamäť kódu skici, pričom ponecháva malý priestor pre nové funkcie. Ak má niekto účinnejší súbor knižnice pre TFT, ktorý sa tu používa, dajte mi vedieť.
Krok 3: Ovládač výhybky
Pozrite si návod, ako vytvoriť ovládač Výhybka / Body.
Kompletný obvod ovláda 16 bodov a 15 doplnkov, ako sú svetlá, zvuky, gramofón atď.
Odporúča:
Jednoduchá automatizovaná modelová železnica z bodu do bodu: 10 krokov (s obrázkami)
Jednoduchá automatizovaná modelová železnica z bodu do bodu: Mikrokontroléry Arduino sú skvelé na automatizáciu rozloženia modelovej železnice. Automatizácia rozloženia je užitočná na mnohé účely, ako je vystavenie rozloženia na displeji, kde je možné naprogramovať operáciu rozloženia na prevádzku vlakov v automatickom poradí. Ja
Mini meteorologická stanica využívajúca Arduino a ThingSpeak: 4 kroky
Mini meteorologická stanica využívajúca Arduino a ThingSpeak: Dobrý deň, všetci. V tomto návode vás prevediem krokmi k vytvoreniu personalizovanej mini meteorologickej stanice. Tiež budeme používať ThingSpeak API na odosielanie našich údajov o počasí na ich servery, alebo inak na čo slúži počasie
Izbová meteorologická stanica využívajúca Arduino a BME280: 4 kroky
Izbová meteorologická stanica používajúca Arduino a BME280: Predtým som zdieľal jednoduchú meteorologickú stanicu, ktorá zobrazovala teplotu a vlhkosť miestnej oblasti. Problém bol v tom, že aktualizácia bude trvať dlho a údaje nie sú presné. V tomto návode vyrobíme interiérový monitor počasia
Jednoduchá automatizovaná železnica typu Point to Point, ktorá vedie dvoma vlakmi: 13 krokov (s obrázkami)
Jednoduchá automatizovaná modelová železnica typu Point to Point, ktorá prevádzkuje dva vlaky: Mikrokontroléry Arduino sú vynikajúcim spôsobom automatizácie rozloženia modelovej železnice vďaka nízkej cene, hardvéru a softvéru s otvoreným zdrojovým kódom a veľkej komunite, ktorá vám pomôže. Pre modelové železnice sa mikrokontroléry Arduino môžu ukázať ako
Automatizovaná modelová železnica z bodu do bodu s vlečkou: 10 krokov (s obrázkami)
Automatizovaná modelová železnica z bodu do bodu s vlečkou: mikrokontroléry Arduino otvárajú veľké možnosti v modelovej železnici, najmä pokiaľ ide o automatizáciu. Tento projekt je príkladom takejto aplikácie. Ide o pokračovanie jedného z predchádzajúcich projektov. Tento projekt pozostáva z jedného