Turinys:
- 1 žingsnis: sistemos projektavimas
- 2 žingsnis: siųstuvas
- 3 žingsnis: imtuvas
- 4 veiksmas: paleiskite „Locos“
Video: Sodo traukinys - „Arduino Wireless NMRA DCC“: 4 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Remdamasis ankstesniais nurodymais, naudojant DCC ant negyvų bėgių sistemos, aš toliau tobulinau šią idėją su rankiniu DCC komandų stotimi su klaviatūra ir LCD ekranu. Komandinėje stotyje yra visas kodavimas, reikalingas NMRA DCC instrukcijoms, tačiau vietoj to, kad būtų prijungtas prie bėgių, radijo modulis RF24L01+ perduoda duomenis į imtuvą, sumontuotą sunkvežimyje arba po lokomotyvu, kur tik leidžiama patalpoje.
Žinoma, jūsų lokomotyvuose turi būti sumontuotas variklio varikliams pritaikytas apkrovos dekoderis.
1 žingsnis: sistemos projektavimas
„Arduino Pro Mini“yra dizaino esmė. „Fritzing“naudojimas grandinei plėtoti ir PCB gaminti.
Galėjau naudoti tą pačią PCB tiek siųstuvui, tiek imtuvui, taip sutaupydamas tam tikrų išlaidų.
Siųstuvas turi klaviatūros ir LCD jungtis, o imtuvas to nereikalauja ir naudoja H tiltą, kad tiektų lokomotyvo DCC išvestį.
Tolesnė plėtra apima jungtis didesniam H tiltui, jei to reikia galingesniems lokomotyvams.
PCF8574 galima ištrinti, jei naudojate skystųjų kristalų ekraną su kuprine, leidžiančią „Arduino“SCA / SCL jungtims maitinti ekraną naudojant tik 2 laidus. Dalių sąrašas: Iš viso = apie 60 svarų sterlingų už DCC komandų stotį + 1 imtuvas Papildomos imtuvo išlaidos = Maždaug 10,00 svarų sterlingų. + baterijos
„Arduino Pro Mini“. x 2 = 4,00 svarų sterlingų
4x3 membraninė klaviatūra = 3,00 £
20 x 4 LCD ekranas = £ 7,00
PCF5874 = 1,80 svaro
NRF24L01+. radijo moduliai x 2 = £ 5,80
PCB gamyba už 10 USD (arba gali būti naudojama „Vero“plokštė) = 24 svarų sterlingų arba 4,80 svarų sterlingų už 2 kartus
3,3 v reguliatorius = 0,17 svaro (25 pakuotės iš „RS Comp“)
5v reguliatorius LM7805 = 0,30 £
H-tiltas SN754410ne = £ 3.00
„Lloytron“pakartotinai įkraunamos 2700 maH AA baterijos x 12 = 22,00 svarų sterlingų. (mažesnės maH akumuliatoriai yra pigesni)
Kondensatoriai, puodai, kaiščiai, jungtys ir tt = maždaug 2,00 svarų sterlingų
Korpusas 190x110x60 mm = 8,00 £
Siųstuvas - telefono įkroviklis / baterija = £ 2.00
2 žingsnis: siųstuvas
Grandinės schema parodyta, kur „Arduino Pro Mini“kaiščiai nuo D2 iki D8 yra prijungti prie klaviatūros. Prie analoginio kaiščio A0 prijungtas 100k omų potenciometras, kad būtų galima reguliuoti greitį. SDA ir SCL kaiščiai iš PCF8574 lusto yra prijungti prie kaiščių A4 ir A5 „Arduino Pro Mini“, naudojant lituotus laidus prie kaiščių viršutiniame „Pro Mini“sluoksnyje.
„Arduino“eskizas pridedamas atsisiųsti.
Naudojau 20 x 4 skystųjų kristalų ekraną, leidžiantį 4 informacijos eilutes su 20 simbolių kiekvienoje eilutėje. Klaviatūroje pateikiamas šis meniu:
1–9 = užrakinimo adresas * = kryptis 0 = šviesa # = funkcijų meniu 1–8 klavišams
Pagrindinis „Arduino Pro Mini“eskizo aprašymas: Ši kodo eilutė tvarko DCC pranešimą HEX formatu. struktura Pranešimas žinutė [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // tuščiosios eigos žinutė
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 baitų adresas
};
Norėdami išsaugoti kiekvieno lokomotyvo parametrus, masyvų serija nustatoma taip:
int la [20]; // masyvas, skirtas loko skaičiams laikyti
int sa [20]; // masyvas greičio reikšmėms laikyti
int fda [20]; // masyvas laikyti rež
int fla [20]; // masyvas šviesoms laikyti
int f1a [20]; // masyvas, skirtas linksmintis1…..
int f8a [20]; // masyvas, skirtas linksmybėms laikyti8
Jei norite, kad DCC instrukcijos būtų iš dalies pakeistos toliau:
Greičio instrukcijos: void change_speed (struktūros pranešimas ir x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg su 28 greičio žingsniais}
Dėl funkcijų instrukcijų:
void change_group1 (struktūros pranešimas ir x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg su pirmosios grupės instrukcija 0x80}
Pagrindinė eskizo kilpa:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // siųsti duomenis belaidžiu ryšiu
vėlavimas (10);
send_data_3 (); // rodyti duomenis LCD ekrane
send_data_4 (); // rodyti duomenis serijiniame monitoriuje}
if (skaityti_funkcija ()) {
surinkti_dcc_msg_grupė1 ();
send_data_1 ();
vėlavimas (10);
send_data_3 (); }}
Atnaujinkite duomenis, kai pasikeičia greitis:
boolean read_locoSpeed () Tai aptinka naują loko adresą, greitį ar kryptį ir atitinkamai pakeičia HEX „duomenis“. Čia aš nurodžiau 28 greičio žingsnius ir norėdamas atitikti NMRA standartą S 9.2, greičio duomenis reikia rasti iš paieškos lentelės „speed_step ()“
void speed_step () {jungiklis (locoSpeed) {
1 atvejis: duomenys | = 0x02; pertrauka;
2 atvejis: duomenys | = 0x12; pertrauka;
3 atvejis: duomenys | = 0x03; pertrauka;
………
28 atvejis: duomenys | = 0x1F; pertrauka; }}
Atnaujinkite duomenis, kai pasikeičia funkcijos:
loginė skaitymo funkcija ()
if (fla [locoAdr] == 0) {duomenys = 0x80;
} // galvos šviesos išjungtos
jei (fla [locoAdr] == 1) {
duomenys = 0x90;
} // įjungti galvos žibintai
Kiekvienai funkcijai:
jei (f2a [locoAdr] == 0) {duomenys | = 0; }. // 2 funkcija išjungta
jei (f2a [locoAdr] == 1) {
duomenys | = 0x02; // 2 funkcija} „duomenys“sukuriama sujungiant ['| =' sudėtinį bitą arba] kiekvienos funkcijos HEX kodus.
3 žingsnis: imtuvas
Parodyta schema, kurioje „Arduino Pro Mini“5 ir 6 kaiščiai naudojami DCC signalui, tiekiamam į H tiltą, perduoti. H tilto poros yra sujungtos lygiagrečiai, kad padidėtų srovės talpa. Atsižvelgiant į lokomotyvo traukiamą srovę, prie 16 kontaktų DIP įrenginio gali tekti prijungti radiatorių arba iš išorės prijungti sunkiasvorį H tiltą.
„Arduino“eskizas yra pridėtas atsisiųsti. DCC signalas sudarytas iš laikrodžio, veikiančio 2 MHz dažniu
void SetupTimer2 () atlieka šį darbą.
Laikrodis apima „trumpus impulsus“(58us) „1“DCC duomenyse ir „ilgus impulsus“(116us), kai DCC duomenys yra „0“.
Ciklas tuščias, gauna duomenis iš radijo ir, jei randama tinkama eilutė, duomenys konvertuojami į DCC duomenis.
void loop (void) {if (radio.available ()) {bool done = false; padaryta = radijas. skaitymas (inmsg, 1); // skaityti gautus duomenis
char rc = inmsg [0]; // į šį masyvą įdėkite perskaitytą simbolį
jei (rc! = 0) {. // jei simbolis nėra lygus nuliui
inString.concat (rc); // sukurti pranešimą}
if (rc == '\ 0') {// jei simbolis yra '/0' pranešimo pabaiga
Serial.println (inString); // spausdinti surinktą pranešimą
eilutė (); // dekonstruoti eilutės pranešimą, kad gautumėte DCC instrukcijas
} } }
4 veiksmas: paleiskite „Locos“
Kad nenutrūktų kelių kelių traukinių važiavimas tuo pačiu keliu, turite atjungti kiekvieno naudojamo lokomotyvo ir sunkvežimio kontaktus tarp ratų ir bėgių.
Mėgaukitės nemokamais traukiniais nepriklausomai nuo bėgių kelio - koks skirtumas! Jokio vargo, jokio paleidimo-sustabdymo ir valymo nereikia.
Naudojamos baterijos yra įkraunamos LLoytron AA x 12. Specialiai jiems sukūriau įkroviklį, kuris vienu metu įkrauna 6. (žr. instrukciją)
Rekomenduojamas:
„Steampunk“traukinys: 5 žingsniai (su nuotraukomis)
Steampunk traukinys: Man pasisekė iš draugo gauti naudotą vežimėlių bazę. Man reikėjo pakeisti abi baterijas, kad ji veiktų, tačiau tai buvo maža kaina už tokią universalią atraminių konstrukcijų platformą. Aš nusprendžiau, kad
ESP8266 - sodo drėkinimas su laikmačiu ir nuotoliniu valdymu internetu / ESP8266: 7 žingsniai (su nuotraukomis)
ESP8266 - sodo drėkinimas su laikmačiu ir nuotoliniu valdymu internetu / ESP8266: ESP8266 - laistymas nuotoliniu būdu ir su laiku daržovių soduose, gėlynuose ir vejose. Jis naudoja ESP-8266 grandinę ir hidraulinį / elektrinį vožtuvą drėkintuvui tiekti. Privalumai: Mažos kainos (~ 30,00 USD) greitos prieigos komandos
Sveikas Traukinys! „ATtiny 1614“: 8 žingsniai (su nuotraukomis)
Sveikas Traukinys! „ATtiny 1614“: „Fab Academy“klasei turiu sukurti plokštę su mikrovaldikliu, mygtuku ir šviesos diodu. Aš naudoju „Eagle“jį sukurti
Klaviatūra valdomas modelio traukinys V2.0 - PS/2 sąsaja: 13 žingsnių (su nuotraukomis)
Klaviatūra valdomas modelio traukinys V2.0 | PS/2 sąsaja: viename iš ankstesnių „Instructable“parodžiau, kaip valdyti geležinkelio modelio išdėstymą naudojant klaviatūrą. Tai puikiai veikė, tačiau turėjo trūkumų, kai reikėjo kompiuterio. Šioje instrukcijoje pažiūrėkime, kaip valdyti modelio traukinį naudojant klaviatūrą
Kalėdų Senelio parduotuvė 2017, traukinys: 4 žingsniai (su nuotraukomis)
Kalėdų Senelio parduotuvė 2017, traukinys: Kalėdų Senelio parduotuvė 2017 yra patobulinta Kalėdų Senelio parduotuvės versija 2016. Norėjau pridėti dar vieną traukinį, tačiau vienintelė likusi patalpa buvo ant lubų. Viskas, ką jums reikia padaryti, kad traukinys važiuotų aukštyn kojomis, yra naudoti magnetus. Teisingai? Žinoma, yra keletas smulkmenų