Sadržaj:
Video: Vrtni vlak - Arduino bežični NMRA DCC: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Uz prethodna uputstva s DCC -om na mrtvom tračničkom sustavu, ideju sam dodatno razvio ručnom DCC komandnom postajom s tipkovnicom i LCD zaslonom. Zapovjedna stanica sadrži sve kodiranje koje je potrebno za NMRA DCC upute, međutim umjesto povezivanja na tračnice, podaci se putem radio modula RF24L01+ prenose na prijemnik montiran u kamionu ili ispod lokomota - gdje god to prostorija dopušta.
Naravno, vaši lokomoti moraju biti opremljeni dekoderom nosivosti prilagođenim motorima motora.
Korak 1: Dizajn sustava
Arduino Pro Mini je srce dizajna. Korištenje Fritzinga za razvoj sklopa i proizvodnju PCB -a.
Uspio sam koristiti istu tiskanu pločicu i za odašiljač i za prijamnik čime sam uštedio neke troškove.
Odašiljač ima priključke za tipkovnicu i LCD dok prijemnik to ne zahtijeva i koristi H-most za napajanje DCC izlaza za loko.
Daljnji razvoj uključuje veze za veći H-most ako je potrebno za snažnije lokomotive.
PCF8574 se može izbrisati ako koristite LCD zaslon koji dolazi s ruksakom koji omogućuje SCA / SCL veze na Arduinu za napajanje zaslona pomoću samo 2 žice. Popis dijelova: Ukupno = približno 60 GBP za DCC naredbenu stanicu + 1 prijemnik Dodatni troškovi prijemnika = Otprilike 10,00 GBP svaki. + baterije
Arduino Pro Mini. x 2 = 4,00 GBP
4x3 membranska tipkovnica = 3,00 GBP
20 x 4 LCD zaslon = 7,00 kn
PCF5874 = 1,80 GBP
NRF24L01+. radio moduli x 2 = 5,80 £
Proizvodnja PCB -a za 10 popusta (ili se može koristiti Vero ploča) = 24 £ ili 4,80 £ za 2off
3,3 v Regulator = 0,17 £ (pakiranje od 25 iz RS Comp -a)
5v regulator LM7805 = 0,30 kn
H-most SN754410ne = 3,00 kn
Lloytron punjive AA baterije od 2700 maH x 12 = 22,00 GBP. (baterije s nižom ocjenom maH jeftinije su)
Kondenzatori, lonci, igle, priključci itd. = Pribl. 2,00 GBP
Kućište 190x110x60 mm = 8,00 kn
Odašiljač - punjač / baterija za telefon = 2,00 £
Korak 2: Odašiljač
Dijagram kruga je prikazan na mjestu gdje su pinovi D2 do D8 na Arduino Pro Mini spojeni na tipkovnicu. Potenciometar od 100 k ohma spojen je na analogni pin A0 za podešavanje brzine. Pinovi SDA i SCL iz čipa PCF8574 spojeni su na pinove A4 i A5 na Arduino Pro Mini pomoću lemljenih žica na igle na gornjem sloju Pro Mini.
Arduino skica je priložena za preuzimanje.
Koristio sam LCD zaslon veličine 20 x 4 koji omogućuje 4 retka informacija s 20 znakova po retku. Tipkovnica nudi sljedeći izbornik:
1 do 9 = loko adresa * = smjer 0 = svjetla # = izbornik funkcija za tipke od 1 do 8
Osnovni opis skice Arduino Pro Mini: Ovaj redak koda raspoređuje DCC poruku u HEX formatu. struct Poruka poruke [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // poruka u mirovanju
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // adresa od 3 bajta
};
Za spremanje postavki za svaki loko, niz nizova postavlja se na sljedeći način:
int la [20]; // niz za držanje loko brojeva
int sa [20]; // niz za držanje vrijednosti brzine
int fda [20]; // niz za držanje red
int fla [20]; // niz za držanje svjetla
int f1a [20]; // niz za držanje fun1…..
int f8a [20]; // niz za držanje fun8
Kako biste omogućili izmjene i dopune DCC uputa:
Za upute o brzini: void replace_speed (struct Message & x) {
x.data [0] = locoAdr;
x.podaci [1] = 0x40; // locoMsg s 28 koraka brzine}
Za upute o funkciji:
void replace_group1 (struct poruka & x) {
x.data [0] = locoAdr;
x.podaci [1] = 0x80; // locoMsg s grupnom uputom 0x80}
Glavna petlja skice:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // slanje podataka bežičnim putem
kašnjenje (10);
send_data_3 (); // prikaz podataka na LCD zaslonu
send_data_4 (); // prikaz podataka na serijskom monitoru}
if (funkcija_čitanja ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
kašnjenje (10);
send_data_3 (); }}
Ažurirajte podatke pri promjeni brzine:
boolean read_locoSpeed () Ovo otkriva novu loko adresu, postavku brzine ili smjera i u skladu s tim mijenja HEX 'podatke'. Ovdje sam naveo 28 koraka brzine i kako bih zadovoljio NMRA standard S 9.2, podaci o brzini moraju se pronaći iz tabele za pretraživanje u 'speed_step ()'
void speed_step () {switch (locoSpeed) {
slučaj 1: podatak | = 0x02; pauza;
slučaj 2: podatak | = 0x12; pauza;
slučaj 3: podatak | = 0x03; pauza;
………
slučaj 28: podatak | = 0x1F; pauza; }}
Ažurirajte podatke kada se promijene funkcije:
boolean read_function ()
if (fla [locoAdr] == 0) {data = 0x80;
} // prednja svjetla isključena
if (fla [locoAdr] == 1) {
podatak = 0x90;
} // upaljena glavna svjetla
Za svaku funkciju:
if (f2a [locoAdr] == 0) {podaci | = 0; }. // Isključena funkcija 2
if (f2a [locoAdr] == 1) {
podatak | = 0x02; // Funkcija 2 na} 'data' izgrađena je kombiniranjem ['| =' složeno bitovno ili] HEX kodova za svaku funkciju.
Korak 3: Prijemnik
Dijagram sklopa prikazan je na mjestima gdje se pinovi 5 i 6 Arduino Pro Mini koriste za osiguravanje DCC signala koji se dovodi na H-most. Parovi H-mosta spojeni su paralelno radi povećanja strujnog kapaciteta. Ovisno o struji koju loko vuče, možda će biti potrebno priključiti hladnjak na 16-polni DIP uređaj, ili se H-most za teške uvjete može spojiti izvana.
Arduino skica je priložena za preuzimanje. DCC signal se sastoji od takta koji radi na 2MHZ
void SetupTimer2 () radi ovaj posao.
Sat uključuje 'kratke impulse' (58us) za '1' u DCC podacima i 'duge impulse' (116us) za '0' u DCC podacima.
Petlja void, prima podatke s radija i ako se pronađe valjani niz, podaci se pretvaraju u DCC podatke.
void loop (void) {if (radio.available ()) {bool done = false; učinjeno = radio.čitano (inmsg, 1); // čitanje primljenih podataka
char rc = inmsg [0]; // stavlja znak koji se čita u ovaj niz
ako je (rc! = 0) {. // ako znak nije jednak nuli
inString.concat (rc); // sastavljanje poruke}
if (rc == '\ 0') {// ako je znak '/0' kraj poruke
Serial.println (inString); // ispisati sastavljenu poruku
niz(); // dekonstruiramo niz poruku da bismo dobili DCC upute
} } }
Korak 4: Pokrenite Locos
Kako biste izbjegli prekid podataka pri vožnji više vlakova na istoj pruzi, morate odspojiti kontakte između kotača i kolosijeka za svaki zaposleni loko i kamion.
Uživajte u besplatnim vlakovima bez obzira na uvjete kolosijeka - kakva je razlika! Bez muke, bez start-stop i nije potrebno čišćenje.
Baterije koje sam koristio mogu se ponovno puniti LLoytron AA x 12. Posebno sam za njih napravio punjač koji puni 6 u isto vrijeme. (vidi uputstva)
Preporučeni:
Uradi sam bežični bežični oblik električne energije radio valova u Katmanduu: 6 koraka
Uradi sam bežični bežični oblik električne energije radio valova u Katmanduu: Ono što sam učinio, dotjerao sam ga i učinio još jednostavnijim i ima samo dva kraja umjesto četiri. Palačinka odgovarajuće veličine s dva kraja spojena na Arial's i tlo funkcionira kao prijemnik. Dugačak niz od dva arijalna, jedan spojen na g
Bežični vrtni sustav: 7 koraka
Bežični vrtni sustav: Ovaj se projekt temelji na Arduinu i koristi " module " kako bi vam pomogao zalijevati vaše biljke i prijavljivao se na temp, tlo i kišu. Sustav je bežičan preko 2,4 GHz i koristi NRF24L01 module za slanje i primanje podataka. Dopustite mi da malo objasnim kako
4-bežični bežični Qi punjač: 9 koraka (sa slikama)
4-up bežični Qi punjač: Stanica za punjenje laserski je izrezana od šperploče različite debljine i polietilena, a zatim sastavljena rukom punom nehrđajućeg čelika #2 x 3/8 " i #4 x 1/2 " ravna glava, vijci za lim. CO2 laser od 60 W dovoljan je šperploča Baltic Birch u
Bežični bežični WiFi produživač s USB baterijom: 7 koraka (sa slikama)
Bežični WiFi produživač s USB napajanjem: Koliko nije iritantno kad boravite u hotelu, a WiFi je užasan. S WiFi nastavkom možete poboljšati uvjete, ali oni koje sam vidio zahtijevaju mrežnu utičnicu koja nije uvijek dostupna. Odlučio sam obnoviti nisku cijenu
Pretvorite bežični usmjerivač u bežični proširivač 2x pristupna točka: 5 koraka
Pretvorite bežični usmjerivač u bežični proširivač 2x pristupna točka: Imao sam lošu bežičnu internetsku vezu u svojoj kući zbog RSJ -a (metalni nosač u stropu) i htio sam pojačati signal ili dodati dodatni produživač za ostatak kuće. Vidio sam ekstenzore za oko 50 funti u elektro