Kazalo:
Video: Vrtni vlak - Arduino Wireless NMRA DCC: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Poleg prejšnjih navodil z DCC na sistemu mrtvih tirnic sem idejo razvil še z ročno ukazno postajo DCC s tipkovnico in LCD zaslonom. Ukazna postaja vsebuje vse kodiranje, potrebno za navodila NMRA DCC, vendar se namesto povezave z vodili podatki po radijskem modulu RF24L01+ prenesejo v sprejemnik, nameščen v tovornjaku ali pod loko, kjer koli to dovoljuje soba.
Seveda morajo biti vaši lokomoti opremljeni z dekodirnikom nosilnosti, ki ustreza motorjem motorjev.
1. korak: Oblikovanje sistema
Arduino Pro Mini je v središču oblikovanja. Uporaba Fritzinga za razvoj vezja in proizvodnjo PCB -jev.
Za oddajnik in sprejemnik sem lahko uporabil isto tiskano vezje in s tem prihranil nekaj stroškov.
Oddajnik ima priključke za tipkovnico in LCD, medtem ko sprejemnik tega ne potrebuje in uporablja H-most za napajanje DCC izhoda za loko.
Nadaljnji razvoj vključuje povezave za večji H-most, če je to potrebno za močnejše lokomotive.
PCF8574 lahko izbrišete, če uporabljate LCD zaslon, ki je priložen nahrbtniku in omogoča priključitev SCA / SCL povezav na Arduinu za napajanje zaslona z uporabo samo dveh žic. Seznam delov: skupaj = približno 60 £ za DCC Command Station + 1 sprejemnik Dodatni stroški sprejemnikov = Približno 10,00 € vsak. + baterije
Arduino Pro Mini. x 2 = 4,00 €
4x3 membranska tipkovnica = 3,00 £
20 x 4 LCD zaslon = 7,00 €
PCF5874 = 1,80 £
NRF24L01+. radijski moduli x 2 = 5,80 £
Izdelava tiskanega vezja za 10 popusta (ali pa lahko uporabite ploščo Vero) = 24 funtov ali 4,80 funtov za 2 off
3,3 v Regulator = 0,17 £ (paket 25 iz RS Comp)
5v regulator LM7805 = 0,30 £
H-most SN754410ne = 3,00 £
Lloytron baterije za ponovno polnjenje 2700 maH AA x 12 = 22,00 £. (baterije z nižjo maH vrednostjo so cenejše)
Kondenzatorji, lonci, zatiči, priključki itd. = Pribl
Ohišje 190x110x60 mm = 8,00 £
Oddajnik - polnilec / baterija telefona = 2,00 £
2. korak: Oddajnik
Prikazan je diagram vezja, kjer so na tipkovnico priključeni zatiči D2 do D8 na Arduino Pro Mini. Potenciometer 100k ohm je priključen na analogni zatič A0 za nastavitev hitrosti. Zatiči SDA in SCL iz čipa PCF8574 so priključeni na nožice A4 in A5 na Arduino Pro Mini s pomočjo spajkanih žic na zatiče na zgornji plasti Pro Mini.
Skica Arduino je priložena za prenos.
Uporabil sem 20 x 4 LCD zaslon, ki omogoča 4 vrstice informacij z 20 znaki na vrstico. Tipkovnica ponuja naslednji meni:
1 do 9 = loko naslov * = smer 0 = luči # = meni funkcij za tipke od 1 do 8
Osnovni opis skice Arduino Pro Mini: Ta vrstica kode ureja sporočilo DCC v HEX formatu. sporočilo struct sporočilo [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // sporočilo v prostem teku
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 -bajtni naslov
};
Če želite shraniti nastavitve za vsako loko, je vrsta nizov nastavljena na naslednji način:
int la [20]; // matrika za shranjevanje loko številk
int sa [20]; // matrika za shranjevanje vrednosti hitrosti
int fda [20]; // matrika za drž
int fla [20]; // matrika za držanje luči
int f1a [20]; // matrika za zabavo1 …..
int f8a [20]; // matrika za shranjevanje fun8
Če želite omogočiti spreminjanje navodil DCC:
Za navodila o hitrosti: void replace_speed (struct Message & x) {
x.data [0] = locoAdr;
x.podatki [1] = 0x40; // locoMsg z 28 stopnjami hitrosti}
Za navodila o delovanju:
void submit_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.podatki [1] = 0x80; // locoMsg z navodilom prve skupine 0x80}
Glavna zanka skice:
void zanka (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // pošiljanje podatkov po brezžični povezavi
zamuda (10);
send_data_3 (); // prikaže podatke na LCD zaslonu
send_data_4 (); // prikaz podatkov na serijskem monitorju}
if (branje_funkcije ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
zamuda (10);
send_data_3 (); }}
Posodobite podatke, ko se hitrost spremeni:
boolean read_locoSpeed () Ta zazna nov loco naslov, nastavitev hitrosti ali smeri in ustrezno spremeni HEX 'podatke'. Tu sem določil 28 korakov hitrosti in da bi izpolnil standard NMRA S 9.2, je treba podatke o hitrosti poiskati iz iskalne tabele v 'speed_step ()'
void speed_step () {switch (locoSpeed) {
primer 1: podatki | = 0x02; zlom;
primer 2: podatki | = 0x12; zlom;
primer 3: podatki | = 0x03; zlom;
………
primer 28: podatki | = 0x1F; zlom; }}
Posodobi podatke, ko se funkcije spremenijo:
logično branje_funkcija ()
if (fla [locoAdr] == 0) {podatki = 0x80;
} // luči ugasnejo
if (fla [locoAdr] == 1) {
podatki = 0x90;
} // prižgane luči
Za vsako funkcijo:
če (f2a [locoAdr] == 0) {podatki | = 0; }. // Funkcija 2 je izklopljena
če (f2a [locoAdr] == 1) {
podatki | = 0x02; // Funkcija 2 na} 'data' je sestavljena s kombinacijo ['| =' sestavljene bitove ali] HEX kod za vsako funkcijo.
3. korak: sprejemnik
Shema vezja je prikazana, kjer se zatiči 5 in 6 Arduino Pro Mini uporabljajo za zagotavljanje DCC signala, dobavljenega na H-most. H-mostni pari so povezani vzporedno, da povečajo kapaciteto toka. Odvisno od toka, ki ga črpa loko, bo morda treba na 16-polno DIP napravo priključiti hladilnik ali pa od zunaj priključiti težki H-most.
Skica Arduino je priložena za prenos. Signal DCC je sestavljen iz ure, ki deluje na 2MHZ
void SetupTimer2 () opravlja to delo.
Ura vključuje "kratke impulze" (58us) za "1" v podatkih DCC in "dolge impulze" (116us) za "0" v podatkih DCC.
Zanka ni, dobiva podatke iz radia in če se najde veljaven niz, se podatki pretvorijo v podatke DCC.
void loop (void) {if (radio.available ()) {bool done = false; dokončano = radio.read (inmsg, 1); // preberemo prejete podatke
char rc = inmsg [0]; // v ta niz vstavi prebrani znak
če (rc! = 0) {. // če znak ni enak nič
inString.concat (rc); // sestavimo sporočilo}
if (rc == '\ 0') {// če je znak '/0' konec sporočila
Serial.println (inString); // natisnemo sestavljeno sporočilo
vrvica(); // razgradimo sporočilo niza, da dobimo navodila DCC
} } }
4. korak: Zaženite Locos
Da bi se izognili prekinitvi podatkov pri vožnji več vlakov na istem tiru, morate odklopiti stike med kolesi in tirnico za vsako zaposleno tovorno vozilo in tovornjak.
Uživajte v brezplačnih vlakih ne glede na razmere na progi - kakšna razlika! Brez težav, brez start-stop in čiščenja ni potrebno.
Baterije, ki sem jih uporabil, so za ponovno polnjenje LLoytron AA x 12. Posebej za njih sem izdelal polnilnik, ki polni 6 hkrati. (glej navodila)
Priporočena:
Samodejni vrtni sistem, zgrajen na Raspberry Pi za zunanjo ali notranjo uporabo - MudPi: 16 korakov (s slikami)
Samodejni vrtni sistem, zgrajen na Raspberry Pi za zunanjo ali notranjo uporabo - MudPi: Ali imate radi vrtnarjenje, vendar ne najdete časa za vzdrževanje? Morda imate kakšne sobne rastline, ki so videti malo žejne ali iščejo način za avtomatizacijo hidroponike? V tem projektu bomo rešili te težave in se naučili osnov
Leseni daljinski upravljalnik Bluetooth za vlak Lego Duplo: 3 koraki (s slikami)
Leseni daljinski upravljalnik Bluetooth za vlak Lego Duplo: Moji otroci so imeli radi ta mali vlak Lego Duplo, še posebej mojega najmlajšega, ki se trudi komunicirati z besedami, zato sem ji želel zgraditi nekaj, kar bi ji pomagalo igrati z vlakom neodvisno od odraslih ali telefonov/tablic. Nekaj, kar
Vrtni monitor: 3 koraki
Vrtni monitor: To je najnovejša in popolna različica mojih vrtnih monitorjev, naredil sem prejšnje različice z različno uporabo, na primer eno z LCD -jem in drugo z ESP8266. Vendar sem to različico bolje dokumentiral, zato sem se odločil, da jo naložim
Gardenduino Aka vrtni mojster: 4 koraki
Gardenduino Aka vrtni mojster: no, ali se vam ne zdi dolgočasno čistiti trate, zalivati rastline & kaj pa ne! No, ravno vrtnarjenje ni moja skodelica čaja. zato sem se odločil za avtomatski sistem, ki bo skrbel za moj vrt! Začnimo
Božičkova trgovina 2017, vlak: 4 koraki (s slikami)
Santa's Shop 2017, Train: Santa's Shop 2017 je nadgrajena različica Santa's Shop 2016. Želel sem dodati še en vlak, vendar je edina soba ostala na stropu. Vse, kar morate narediti, da vlak teče na glavo, je uporaba magnetov. Prav? Seveda je nekaj majhnih podrobnosti