Obsah:
- Krok 1: Arduino Code - velitelská stanice s klávesnicí
- Krok 2: Arduino Code - TFT displej
- Krok 3: Ovladač výhybky
Video: Modelová železnice - DCC Command Station využívající Arduino :: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Aktualizováno v srpnu 2018-viz nový Instructable:
Aktualizace 28. dubna 2016: Nyní schopnost 16 výhybek / bodů ovládat velitelské stanoviště. Výhybky T1 - T8 jsou k dispozici pomocí tlačítka „B“Výhybky T9 - T16 jsou k dispozici pomocí tlačítka „C“
Aktualizace 10. března 2016:
Nyní byla do Command Station přidána možnost ovládání 8 výhybek / bodů. Kód Arduino byl odpovídajícím způsobem aktualizován pomocí standardního paketu NMRA pro výhybky (také na základě studie datových paketů Lenz / Atlas Compact pro řízení výhybek).
Výhybky T1 - T8 jsou k dispozici pomocí tlačítka „B“
Viz instrukce o použitém obvodu přijímače datových paketů a požadovaném kódu Arduino.
Aktualizace 18. ledna 2016:
Do obvodu jsem přidal odpor pro snímání proudu (1k5 ohm) a kondenzátor (10 uf) a upravil kód Arduino, aby přerušil napájení, když je detekován špičkový proud> 3200 mAmps. Specifikace H-můstku uvádí výstupní snímací proud 377 uA na 1 A v zátěži.
1,5 k ohmový odpor dodá 0,565 voltů na Amp na analogovém pinu 6. Při 1023 krocích na analogovém vstupu to dává 0,565 * 1023/5 = 116 na Amp zátěže.
A = 100 * (analogRead (AN_CURRENT)) / 116; A = A * 10; (k získání výsledku v miliampérech)
Proud zátěže v miliampérech je zobrazen na TFT
Plná klávesnice 4x4 obsahuje funkce F1 až F8 a dalších 10 lokomotiv (1-19) pomocí klávesy '#' (pro přidání 10 k numerickým klávesám počínaje loco 10).
Arduino kód obsahuje standard NMRA pro instrukční bajty.
Viz odkaz
www.nmra.org/sites/default/files/s-9.2.1_20…
(strana 6 má zvláštní význam)
Pakety jsou seřazeny podle počtu rychlostních kroků, dlouhé / krátké adresy a instrukcí funkční skupiny.
Všem instrukčním bytům předchází preambule '1' bitů 11111111 (nebo nečinný paket) následovaná;
např. 4bajtová adresa 0 00000011 0 00111111 0 10000011 0 10111111
odpovídá loco 3, 128 rychlostních kroků, směr vpřed a rychlostní krok 3 (koncový bajt je kontrola chyb XOR)
např. 3bajtová adresa 0 00000011 0 10010000 0 10110011
odpovídá loco 3, funkční skupina 1, FL svítí plus XOR byte (každý byte odděluje bit '0')
Podívejte se na přiložené demonstrační video pro loco 12.
Funkce F1 - F8 jsou k dispozici přes klávesu „A“, DIR (klávesa „*“= směr) FL (klávesa „0“= světla) a klávesa „#“udává lokomotivy 10 až 19 na numerické klávesnici. Klávesa „D“se nyní používá pro „nouzové zastavení“.
Díky různým poskytovatelům na webu za zdroje informací DCC a kódu Arduino.
Tento projekt byl inspirován zejména Michaelem Blankem a jeho 'Simple DCC - velitelskou stanicí'
www.oscale.net/en/simpledcc
Klávesnice s membránovým přepínačem s maticí 4x4 16 kláves (ebay) 1,75 GBP
2,2 palcový 240x320 sériový modul SPI TFT LCD displej (ebay) 7,19 liber
UNIVERZÁLNÍ 12V 5A 60W NAPÁJECÍ ADAPTÉR (ebay) 6,49 GBP
Nano V3.0 pro Arduino s CH340G 5V 16M kompatibilní ATmega328P (ebay) 2 x 3,30 GBP = 6,60 GBP
Modul ovladače motoru LMD18200T pro Arduino R3 (ebay) 6,99 liber
Konektory, drát, vero deska, potenciometr cca 3,50 GBP
Celkem 32,52 GBP
Základní velitelská stanice bez tft obrazovky a 1 x nano by byla 22,03 GBP
[Poznámka: Na displej TFT je možné přidat paměťovou kartu a upravit kód tak, aby zobrazoval obrázky vybraných motorů, ačkoli kódy knihovny je třeba upravit, aby se vytvořila více paměti pro skicu. Aktuální velikost skici je u TFT Arduino Nano maximálně]
Původní kód Arduina od Michaela Blanka byl pro jeden motor, pouze vpřed / vzad bez ovládání funkcí, bez klávesnice a bez displeje.
Upravil jsem kód tak, aby zahrnoval 1–19 motorů, displej, směr, světla, 8 funkcí, nouzové zastavení a automatické omezení proudu.
Most LMD18200T může nést až 3 ampéry, díky čemuž je vhodný pro všechny váhy včetně G-scale (zahradní vlaky). Síťový napájecí zdroj a elektronika jsou vhodné pouze pro vnitřní použití, pokud to nedokážete zajistit proti povětrnostním vlivům. Mám velitelské stanoviště v letohrádku s dráty spojujícími dráhu skrz zeď na kolej.
Krok 1: Arduino Code - velitelská stanice s klávesnicí
Moje poděkování tvantenna2759 za upozornění na 2 chyby ve schématu zapojení, kde kód Arduino neodpovídá zapojení, nyní aktualizováno (21. října 2017).
Nyní přidáno 16 výhybek na Command Station. Viz instrukce na schématu zapojení výhybek / bodů pomocí modulu Arduino Mini Pro.
Upravený kód včetně ovládání výhybky je přiložen níže.
Základní paket dekodéru příslušenství je: 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1 Z analýzy paketu používaného Lenzem (Compact / Atlas) pro řízení bodů jsem použil následující formát binárních paketů pro 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 ----------------------------------------- ---------------------------------------------------------- ----------------- Výhybka 5a: 1 000 0010 1111 1 000 / Výhybka 5b: 1 000 0010 1111 1001 Výhybka 6a: 1 000 0010 1111 1010 / Výhybka 6b: 1 000 0010 1111 1011 Výhybka 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 ----------------------- ---------------------------------------------------------- ---------------------------------- Účast 9a: 1000 0011 1111 1000 / Účast 9b: 1000 0011 1111 1001 atd ………..
Extrahovat z upraveného kódu: Přidejte 2 další aktualizace „strukturovaných“zpráv. // dekodér příslušenství 0x80 & adresa 1 x.data [1] = 0; }
neplatné dodat_tun2 (strukturovaná zpráva & x) {x.data [0] = 0x82; // dekodér příslušenství 0x80 & adresa 2 x.data [1] = 0; }
Přidat novou prázdnotu pro výhybky: boolean read_turnout () {delay (20);
boolean changed_t = false; get_key ();
if (key_val> = 101 && key_val <= 404 && turn == 1) {
data = 0xf8; // = binární 1111 1000
doplnok_tun1 (zpráva [1]);
}
if (key_val> = 505 && key_val <= 808 && turn == 1) {
data = 0xf8; // = binární 1111 1000
doplnok_tun2 (zpráva [1]);
}
if (key_val == 101 && turn == 1) {
if (tun1 == 1) {
data | = 0; // t1a
changed_t = true;}
if (tun1 == 0) {
data | = 0x01; // t1b
changed_t = true;}
}
if (key_val == 202 && turn == 1) {
if (tun2 == 1) {
data | = 0x02; // t2a
changed_t = true;
}
if (tun2 == 0) {
data | = 0x03; // t2b
changed_t = true; }
}
if (key_val == 303 && turn == 1) {
if (tun3 == 1) {
data | = 0x04; // t3a
changed_t = true;
}
if (tun3 == 0) {
data | = 0x05; // t3b
changed_t = true;}
}
if (key_val == 404 && turn == 1) {
if (tun4 == 1) {
data | = 0x06; // t4a
changed_t = true;
}
if (tun4 == 0) {
data | = 0x07; // f4b
changed_t = true;}
}
if (key_val == 505 && turn == 1) {
if (tun5 == 1) {
data | = 0; // t5a
changed_t = true;
}
if (tun5 == 0) {
data | = 0x01; // t5b
changed_t = true;}
}
atd ………………….
Krok 2: Arduino Code - TFT displej
Zobrazovací obvod zůstává stejný s upraveným kódem pro zobrazení stavu 16 výhybek. Poznámka: Kód knihovny zabírá téměř veškerou paměť kódu skici a ponechává malý prostor pro nové funkce. Pokud má někdo efektivnější knihovní soubor pro zde použitý TFT, dejte mi prosím vědět.
Krok 3: Ovladač výhybky
Podívejte se na návod, jak vytvořit řadič výhybek / bodů.
Kompletní obvod ovládá 16 bodů a 15 příslušenství, jako jsou světla, zvuky, gramofon atd.
Doporučuje:
Jednoduchá automatizovaná modelová železnice z bodu do bodu: 10 kroků (s obrázky)
Jednoduchá automatizovaná modelová železnice Point to Point: Mikrokontroléry Arduino jsou skvělé k automatizaci rozvržení modelové železnice. Automatizace rozvržení je užitečná pro mnoho účelů, jako je umístění rozvržení na displej, kde lze operaci rozložení naprogramovat tak, aby jezdila vlaky v automatické sekvenci. Já
Automatizované rozvržení modelové železnice se dvěma vlaky (V2.0) - Na základě Arduina: 15 kroků (s obrázky)
Automatizované rozvržení modelové železnice se dvěma vlaky (V2.0) | Arduino Based: Automatizace rozvržení modelové železnice pomocí mikrokontrolérů Arduino je skvělý způsob, jak spojit mikrokontroléry, programování a modelové železnice do jednoho koníčku. Existuje řada projektů, které umožňují autonomní provoz vlaku na modelové železnici
Rozložení modelové železnice s automatizovanou vlečkou: 13 kroků (s obrázky)
Uspořádání modelové železnice s automatizovanou vlečkou: Vytváření rozvržení modelových vlaků je skvělý koníček, automatizace to výrazně zlepší! Podívejme se na některé výhody jeho automatizace: Levný provoz: Celé rozložení je řízeno mikrokontrolérem Arduino pomocí L298N mo
Notebook ovládaný modelem železnice - Rozhraní PS/2 Arduino: 14 kroků
Notebook ovládaný modelem železnice | Rozhraní PS/2 Arduino: Touchpad notebooku je jedním ze skvělých zařízení, které lze použít jako vstup pro projekty mikrokontrolérů. Pojďme tedy dnes implementovat toto zařízení s mikrokontrolérem Arduino k ovládání modelové železnice. Pomocí touchpadu PS/2 budeme moci ovládat 3 t
Automatizovaná modelová železnice z bodu do bodu s vlečkou: 10 kroků (s obrázky)
Automatizovaná modelová železnice Point to Point s Yard Siding: Mikrokontroléry Arduino otevírají velké možnosti v modelové železnici, zvláště pokud jde o automatizaci. Tento projekt je příkladem takové aplikace. Jedná se o pokračování jednoho z předchozích projektů. Tento projekt se skládá z jednoho