Obsah:
Video: Garden Train - Arduino Wireless NMRA DCC: 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
V návaznosti na předchozí instruktáž s DCC na systému mrtvých kolejí jsem tuto myšlenku dále rozvinul pomocí ručního velitelského stanoviště DCC s klávesnicí a LCD displejem. Řídicí stanice obsahuje veškeré kódování požadované pro pokyny NMRA DCC, ale místo připojení k kolejnicím jsou data přenášena rádiovým modulem RF24L01+ do přijímače namontovaného v nákladním vozidle nebo pod lokomotivou - kdekoli to prostor dovolí.
Vaše lokomotivy musí být samozřejmě vybaveny dekodérem únosnosti vhodné pro motory motorů.
Krok 1: Návrh systému
Arduino Pro Mini je srdcem designu. Použití Fritzing k vývoji obvodu a výrobě desek plošných spojů.
Byl jsem schopen použít stejnou desku plošných spojů pro vysílač i přijímač, čímž jsem ušetřil určité náklady.
Vysílač má připojení pro klávesnici a LCD, zatímco přijímač je nevyžaduje a používá H-můstek k napájení výstupu DCC pro lokomotivu.
Další vývoj zahrnuje připojení pro větší H-můstek, pokud je to vyžadováno pro výkonnější lokomotivy.
PCF8574 lze smazat, pokud používáte LCD displej dodávaný s batohem, který umožňuje připojení SCA / SCL na Arduinu k napájení displeje pouze pomocí 2 vodičů. Seznam dílů: Celkem = přibližně 60 GBP za DCC Command Station + 1 přijímač Další náklady na přijímače = Přibližně 10,00 GBP za kus. + baterie
Arduino Pro Mini. x 2 = 4,00 GBP
4x3 membránová klávesnice = 3,00 GBP
20 x 4 LCD displej = 7,00 GBP
PCF5874 = 1,80 GBP
NRF24L01+. rádiové moduly x 2 = 5,80 GBP
Výroba desek plošných spojů se slevou 10 (nebo lze použít desku Vero) = 24 GBP nebo 4,80 GBP za 2 slevy
3,3 v regulátor = 0,17 GBP (balení 25 kusů od RS Comp)
5v regulátor LM7805 = 0,30 GBP
H-můstek SN754410ne = 3,00 GBP
Dobíjecí baterie Lloytron 2700 maH AA x 12 = 22,00 GBP. (baterie s nižším hodnocením maH jsou levnější)
Kondenzátory, hrnce, kolíky, konektory atd. = Přibližně 2,00 GBP
Rozváděč 190x110x60 mm = 8,00 GBP
Vysílač - nabíječka / baterie telefonu = 2,00 GBP
Krok 2: Vysílač
Je zobrazeno schéma zapojení, kde jsou piny D2 až D8 na Arduino Pro Mini připojeny ke klávesnici. Potenciometr 100 kOhm je připojen k analogovému pinu A0 pro nastavení rychlosti. Piny SDA a SCL tvoří čip PCF8574 jsou připojeny k pinům A4 a A5 na Arduino Pro Mini pomocí pájených vodičů k pinům v horní vrstvě Pro Mini.
Skica Arduina je přiložena ke stažení.
Použil jsem LCD displej 20 x 4 umožňující 4 řádky informací s 20 znaky na řádek. Klávesnice nabízí následující nabídku:
1 až 9 = adresa lokomotivy * = směr 0 = světla # = Nabídka funkcí pro klávesy 1 až 8
Základní popis skici Arduino Pro Mini: Tento řádek kódu uspořádá zprávu DCC ve formátu HEX. strukturovaná zpráva Zpráva [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // nečinná zpráva
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3bajtová adresa
};
Pro uložení nastavení pro každé lokomotivy je řada polí nastavena následovně:
int la [20]; // pole pro uložení lokomotivních čísel
int sa [20]; // pole pro uchování hodnot rychlosti
int fda [20]; // pole pro uložení dir
int fla [20]; // pole pro uchování světel
int f1a [20]; // pole pro uložení fun1…..
int f8a [20]; // pole pro uložení fun8
Aby bylo možné pokyny DCC průběžně měnit:
Pokyny k rychlosti: neplatné
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg s 28 rychlostními kroky}
Pokyny k funkcím:
neplatná skupina změn_1 (strukturovaná zpráva & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg s instrukcí skupiny 0x80}
Hlavní smyčka náčrtu:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // odesílání dat bezdrátově
zpoždění (10);
send_data_3 (); // zobrazení dat na LCD displeji
send_data_4 (); // zobrazení dat na sériovém monitoru}
if (read_function ()) {
sestavit_dcc_msg_group1 ();
send_data_1 ();
zpoždění (10);
send_data_3 (); }}
Aktualizovat data při změně rychlosti:
boolean read_locoSpeed () Toto detekuje novou adresu lokomotivy, nastavení rychlosti nebo směru a podle toho upraví HEX 'data'. Zde jsem určil 28 rychlostních kroků a pro splnění standardu NMRA S 9.2 je třeba údaje o rychlosti najít z vyhledávací tabulky v 'speed_step ()'
void speed_step () {switch (locoSpeed) {
případ 1: data | = 0x02; přestávka;
případ 2: data | = 0x12; přestávka;
případ 3: data | = 0x03; přestávka;
………
případ 28: data | = 0x1F; přestávka; }}
Aktualizovat data při změně funkcí:
boolean read_function ()
if (fla [locoAdr] == 0) {data = 0x80;
} // zhasnutá světla
if (fla [locoAdr] == 1) {
data = 0x90;
} // přední světla zapnutá
Pro každou funkci:
if (f2a [locoAdr] == 0) {data | = 0; }. // Funkce 2 vypnuta
if (f2a [locoAdr] == 1) {
data | = 0x02; // Funkce 2 na} 'datech' je vytvořena kombinací ['| =' složených bitů nebo] HEX kódů pro každou funkci.
Krok 3: Přijímač
Schéma zapojení je znázorněno na místech, kde jsou použity piny 5 a 6 Arduino Pro Mini k zajištění signálu DCC dodávaného do H-můstku. Páry můstku H jsou zapojeny paralelně, aby se zvýšila proudová kapacita. V závislosti na proudu odebíraném lokomotivou může být vyžadováno připojení chladiče k 16pólovému DIP zařízení nebo externí H-můstek může být připojen externě.
Ke stažení je přiložena skica Arduina. Signál DCC je tvořen hodinami běžícími na 2MHZ
void SetupTimer2 () provádí tuto úlohu.
Hodiny zahrnují „krátké impulsy“(58us) pro „1“v datech DCC a „dlouhé pulsy“(116us) pro „0“v datech DCC.
Smyčka je prázdná, získává data z rádia a pokud je nalezen platný řetězec, data jsou převedena na data DCC.
void loop (void) {if (radio.available ()) {bool done = false; done = radio.read (inmsg, 1); // přečtěte přijatá data
char rc = inmsg [0]; // vložte do tohoto pole přečtený znak
if (rc! = 0) {. // pokud znak není roven nule
inString.concat (rc); // sestavení zprávy}
if (rc == '\ 0') {// pokud znak je '/0' konec zprávy
Serial.println (inString); // vytiskne sestavenou zprávu
tětiva(); // zrušte konstrukci řetězcové zprávy, abyste získali pokyny DCC
} } }
Krok 4: Spusťte Locos
Abyste předešli přerušení dat z provozu více vlaků na stejné koleji, musíte odpojit kontakty mezi koly a kolejí pro každý použitý lokomotivu a nákladní vůz.
Užijte si volně vlaky bez ohledu na podmínky na trati - jaký rozdíl! Žádné potíže, žádné start-stop a žádné čištění.
Použité baterie jsou dobíjecí LLoytron AA x 12. Speciálně pro ně jsem postavil nabíječku, která nabíjí 6 najednou. (viz instruktážní)
Doporučuje:
Steampunk Train: 5 kroků (s obrázky)
Steampunk Train: Měl jsem to štěstí, že jsem od přítele dostal použitou základnu pro invalidní vozík. Potřeboval jsem vyměnit obě baterie, abych to uvedl do provozu, ale to byla malá cena za tak všestrannou platformu pro stavbu prop. Rozhodl jsem se
Smart IoT Garden: 10 kroků (s obrázky)
Smart IoT Garden: Pokud jste něco jako já, máte rádi čerstvé ovoce a zeleninu na talíři, ale nemáte dostatek času na udržování slušné zahrady. Tento instruktážní program vám ukáže, jak vybudovat chytrou zahradu IoT (říkám tomu: Green Guard), která zavlažuje vaši
Dřevěný dálkový ovladač Bluetooth pro Lego Duplo Train: 3 kroky (s obrázky)
Dřevěný dálkový ovladač Bluetooth pro vlak Lego Duplo: Moje děti milovaly tento malý vlak Lego Duplo, zejména můj nejmladší, který se snaží komunikovat slovy, takže jsem jí chtěl postavit něco, co by jí pomohlo hrát si s vlakem nezávisle na dospělých nebo telefonech/tabletech. Něco, co
Keyboard Controlled Model Train V2.0 - Rozhraní PS/2: 13 kroků (s obrázky)
Keyboard Controlled Model Train V2.0 | Rozhraní PS/2: V jednom z mých předchozích Instructable jsem vám ukázal, jak ovládat rozložení modelové železnice pomocí klávesnice. Bylo to skvělé, ale mělo tu nevýhodu, že vyžadoval provoz počítače. V tomto Instructable se podívejme, jak ovládat modelový vlak pomocí keyboar
Train Train System: 4 Steps (with Pictures)
Train Train System: Dnes jsme vytvořili systém, který lze implementovat do vlakových sedadel. Museli jsme najít mrzutost a najít řešení. Rozhodli jsme se, že vytvoříme systém, který vám řekne, zda je místo k dispozici ve vlakovém vozíku, ve kterém se právě nacházíte. Nic není mo