Satura rādītājs:
- 1. darbība: sistēmas projektēšana
- 2. solis: raidītājs
- 3. solis: uztvērējs
- 4. darbība: palaidiet programmu Locos
Video: Dārza vilciens - Arduino bezvadu NMRA DCC: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Pēc iepriekšējiem norādījumiem ar DCC uz mirušo sliežu sistēmu, esmu šo ideju attīstījis tālāk ar rokas DCC vadības staciju ar tastatūru un LCD displeju. Komandstacijā ir visa kodēšana, kas nepieciešama NMRA DCC instrukcijām, tomēr tā vietā, lai izveidotu savienojumu ar sliedēm, datus ar radio moduli RF24L01+ pārsūta uz uztvērēju, kas uzstādīts kravas automašīnā vai zem atrašanās vietas - kur vien atļauj telpa.
Protams, jūsu lokomotīvēm jābūt aprīkotiem ar slodzes spēju dekodētāju, kas piemērots motora motoriem.
1. darbība: sistēmas projektēšana
Arduino Pro Mini ir dizaina pamatā. Izmantojot Fritzing, lai izstrādātu ķēdi un ražotu PCB.
Es varēju izmantot to pašu PCB gan raidītājam, gan uztvērējam, tādējādi ietaupot dažas izmaksas.
Raidītājam ir savienojumi tastatūrai un LCD, kamēr uztvērējam tie nav nepieciešami un izmanto H-tiltu, lai piegādātu lokomotīves DCC izeju.
Turpmākā attīstība ietver savienojumus lielākam H tiltam, ja tas ir nepieciešams jaudīgākiem lokomotīvēm.
PCF8574 var izdzēst, ja izmantojat LCD displeju, kas tiek piegādāts kopā ar mugursomu, ļaujot Arduino SCA / SCL savienojumiem barot displeju, izmantojot tikai 2 vadus. Daļu saraksts: Kopā = aptuveni £ 60 par DCC vadības staciju + 1 uztvērējs Papildu uztvērēja izmaksas = Aptuveni £ 10.00 katrs. + baterijas
Arduino Pro Mini. x 2 = 4,00 sterliņu mārciņas
4x3 membrānas tastatūra = £ 3.00
20 x 4 LCD displejs = £ 7,00
PCF5874 = 1,80 sterliņu mārciņas
NRF24L01+. radio moduļi x 2 = £ 5,80
PCB ražošana par 10 atlaidēm (vai var izmantot Vero plāksni) = £ 24 vai £ 4,80 par 2 off
3.3 v regulators = £ 0.17 (25 iepakojums no RS Comp)
5v regulators LM7805 = 0,30 £
H-tilts SN754410ne = £ 3.00
Lloytron atkārtoti uzlādējamas 2700 maH AA baterijas x 12 = 22,00 £. (zemākas maH nominālās baterijas ir lētākas)
Kondensatori, podi, tapas, savienotāji utt. = Aptuveni £ 2,00
Korpuss 190x110x60 mm = 8,00 £
Raidītājs - tālruņa lādētājs / akumulators = £ 2.00
2. solis: raidītājs
Shēmas diagramma ir parādīta, kur D2 līdz D8 tapas Arduino Pro Mini ir pievienotas tastatūrai. 100k omu potenciometrs ir savienots ar analogo tapu A0 ātruma regulēšanai. SDA un SCL tapas no PCF8574 mikroshēmas ir savienotas ar tapām A4 un A5 uz Arduino Pro Mini, izmantojot pielodētus vadus pie tapām Pro Mini augšējā slānī.
Arduino skice ir pievienota lejupielādei.
Esmu izmantojis 20 x 4 LCD displeju, kas ļauj 4 informācijas rindas ar 20 rakstzīmēm katrā rindā. Tastatūra nodrošina šādu izvēlni:
1 līdz 9 = lokalizācijas adrese * = virziens 0 = gaismas # = funkciju izvēlne taustiņiem 1 līdz 8
Arduino Pro Mini skices pamata apraksts: Šī koda rinda sakārto DCC ziņojumu HEX formātā. strukturēta ziņojuma ziņa [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // dīkstāves ziņojums
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 baitu adrese
};
Lai saglabātu katra lokalizācijas iestatījumus, masīvu sērija tiek iestatīta šādi:
int la [20]; // masīvs loco skaitļu turēšanai
int sa [20]; // masīvs ātruma vērtību turēšanai
int fda [20]; // masīvs turēt rež
int fla [20]; // masīvs gaismu turēšanai
int f1a [20]; // masīvs jautrībai1…..
int f8a [20]; // masīvs jautrības turēšanai8
Lai varētu mainīt DCC norādījumus, rīkojieties šādi:
Norādījumus par ātrumu: void change_speed (strukturēts ziņojums un x) {
x.dati [0] = locoAdr;
x.dati [1] = 0x40; // locoMsg ar 28 ātruma soļiem}
Norādījumus par funkcijām:
void edit_group1 (strukturēts ziņojums un x) {
x.dati [0] = locoAdr;
x.dati [1] = 0x80; // locoMsg ar pirmās grupas instrukciju 0x80}
Skices galvenā cilpa:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // nosūtīt datus, izmantojot bezvadu savienojumu
kavēšanās (10);
send_data_3 (); // parādīt datus LCD displejā
send_data_4 (); // parādīt datus seriālajā monitorā}
ja (lasīt_funkcija ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
kavēšanās (10);
send_data_3 (); }}
Atjauniniet datus, mainoties ātrumam:
boolean read_locoSpeed () Tas nosaka jaunu lokalizācijas adresi, ātrumu vai virziena iestatījumu un attiecīgi izmaina HEX “datus”. Šeit esmu norādījis 28 ātruma soļus un lai atbilstu NMRA standartam S 9.2, ātruma dati ir jāatrod no uzmeklēšanas tabulas sadaļā 'speed_step ()'
void speed_step () {switch (locoSpeed) {
1. gadījums: dati | = 0x02; pārtraukums;
2. gadījums: dati | = 0x12; pārtraukums;
3. gadījums: dati | = 0x03; pārtraukums;
………
28. gadījums: dati | = 0x1F; pārtraukums; }}
Atjauniniet datus, mainoties funkcijām:
Būla lasīšanas funkcija ()
ja (fla [locoAdr] == 0) {dati = 0x80;
} // galvas gaismas izslēgtas
ja (fla [locoAdr] == 1) {
dati = 0x90;
} // ieslēgtas galvas gaismas
Katrai funkcijai:
ja (f2a [locoAdr] == 0) {dati | = 0; }. // Funkcija 2 izslēgta
ja (f2a [locoAdr] == 1) {
dati | = 0x02; // Funkcija 2 uz} 'dati' tiek veidota, apvienojot ['| =' salikto bitveidā vai] HEX kodus katrai funkcijai.
3. solis: uztvērējs
Ir parādīta shēma, kurā Arduino Pro Mini 5. un 6. tapas tiek izmantotas, lai nodrošinātu DC tilta signālu, kas tiek piegādāts H tiltam. H tilta pāri ir savienoti paralēli, lai palielinātu strāvas jaudu. Atkarībā no lokomotīves patērētās strāvas, 16 kontaktu DIP ierīcei var būt jāpiestiprina radiators vai ārēji jāpievieno lieljaudas H tilts.
Arduino skice ir pievienota lejupielādei. DCC signālu veido pulkstenis, kas darbojas 2MHZ
void SetupTimer2 () veic šo darbu.
Pulkstenis ietver “īsus impulsus” (58us) “1” DCC datos un “garus impulsus” (116us) “0” DCC datos.
Cikls nav spēkā, iegūst datus no radio un, ja tiek atrasta derīga virkne, dati tiek pārvērsti DCC datos.
void loop (void) {if (radio.available ()) {bool done = false; darīts = radio.lasīts (inmsg, 1); // lasīt saņemtos datus
char rc = inmsg [0]; // ievietojiet šajā masīvā izlasīto rakstzīmi
ja (rc! = 0) {. // ja rakstzīme nav vienāda ar nulli
inString.concat (rc); // veidot ziņojumu}
if (rc == '\ 0') {// ja rakstzīme ir '/0' ziņojuma beigas
Serial.println (inString); // izdrukāt salikto ziņojumu
virkne (); // atveidojiet virknes ziņojumu, lai iegūtu DCC norādījumus
} } }
4. darbība: palaidiet programmu Locos
Lai izvairītos no vairāku vilcienu braukšanas datu pārtraukšanas vienā un tajā pašā sliežu ceļā, jums ir jāatvieno kontakti starp riteņiem un sliežu ceļu katram izmantotajam lokomotīvim un kravas automašīnai.
Izbaudiet bezmaksas vilcienus neatkarīgi no sliežu ceļa apstākļiem - kāda atšķirība! Nav problēmu, nav start-stop un nav nepieciešama tīrīšana.
Baterijas, kuras izmantoju, ir atkārtoti uzlādējamas LLoytron AA x 12. Īpaši tām esmu izveidojis lādētāju, kas uzlādē 6 vienlaicīgi. (skatīt pamācību)
Ieteicams:
Steampunk vilciens: 5 soļi (ar attēliem)
Steampunk vilciens: Man bija paveicies no drauga saņemt lietotu ratiņkrēslu bāzi. Man vajadzēja nomainīt abas baterijas, lai tas darbotos, taču tā bija maza cena, kas jāmaksā par tik daudzpusīgu balstu veidošanas platformu. Es nolēmu, ka
Sveiks Vilciens! ATtiny 1614: 8 soļi (ar attēliem)
Sveiks Vilciens! ATtiny 1614: savai Fab Academy klasei man ir jāizveido tāfele ar mikrokontrolleru, pogu un gaismas diodi. Es to izmantošu, lai izveidotu Eagle
Ar tastatūru vadāms modeļa vilciens V2.0 - PS/2 saskarne: 13 soļi (ar attēliem)
Ar tastatūru vadāms modeļa vilciens V2.0 | PS/2 saskarne: Vienā no iepriekšējām instrukcijām es parādīju, kā kontrolēt dzelzceļa modeļa izkārtojumu, izmantojot tastatūru. Tas izdevās lieliski, taču tam bija trūkums, lai darbotos dators. Šajā pamācībā apskatīsim, kā kontrolēt vilciena modeli, izmantojot tastatūru
Bezvadu dārza sistēma: 7 soļi
Bezvadu dārza sistēma: šī projekta pamatā ir Arduino, un tajā tiek izmantoti " moduļi " lai palīdzētu jums laistīt augus un pierakstīties temperatūrā, augsnē un lietū. Sistēma ir bezvadu, izmantojot 2,4 GHz, un datu nosūtīšanai un saņemšanai tiek izmantoti NRF24L01 moduļi. Ļaujiet man nedaudz paskaidrot, kā
Ziemassvētku vecīša veikals, vilciens: 4 soļi (ar attēliem)
Ziemassvētku vecīša veikals 2017, vilciens: Ziemassvētku vecīša veikals 2017 ir Ziemassvētku vecīša veikala 2016. gada modernizētā versija. Es gribēju pievienot vēl vienu vilcienu, bet vienīgā atstātā telpa bija uz griestiem. Viss, kas jums jādara, lai vilciens brauktu otrādi, ir magnētu izmantošana. Taisnība? Protams, ir dažas nianses