Obsah:

Garden Train - Arduino Wireless NMRA DCC: 4 kroky (s obrázky)
Garden Train - Arduino Wireless NMRA DCC: 4 kroky (s obrázky)

Video: Garden Train - Arduino Wireless NMRA DCC: 4 kroky (s obrázky)

Video: Garden Train - Arduino Wireless NMRA DCC: 4 kroky (s obrázky)
Video: Cheap and Amazing! DCC-EX 2 Years Later 2024, Listopad
Anonim
Image
Image
Návrh systému
Návrh systému

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

Návrh systému
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č

Vysílač
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č

Přijímač
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

Spusťte Locos
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: