Cov txheej txheem:
- Kauj Ruam 1: Tsim Cov Txheej Txheem
- Kauj ruam 2: Transmitter
- Kauj ruam 3: Txais
- Kauj ruam 4: Khiav Locos
Video: Tsheb ciav hlau Vaj - Arduino Wireless NMRA DCC: 4 Cov Kauj Ruam (nrog Duab)
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:27
Ntxiv rau cov lus qhia yav dhau los nrog DCC ntawm txoj kev tsheb nqaj hlau tuag, Kuv tau tsim lub tswv yim ntxiv nrog tes tuav DCC Command Station nrog cov keyboard thiab cov zaub LCD. Qhov Chaw Nres Nkoj muaj txhua qhov coding xav tau rau NMRA DCC cov lus qhia, txawm li cas los xij tsis txhob txuas mus rau txoj kab, cov ntaub ntawv raug xa los ntawm xov tooj cua module RF24L01+ mus rau tus neeg txais xov tooj cua hauv lub tsheb lossis hauv qab qhov chaw - txhua qhov chaw tso cai.
Tau kawg, koj qhov chaw nyob yuav tsum muaj lub tshuab txiav txim siab lub peev xwm haum rau lub cav cav.
Kauj Ruam 1: Tsim Cov Txheej Txheem
Arduino Pro Mini yog lub hauv paus ntawm kev tsim qauv. Siv Fritzing los txhim kho Circuit thiab tsim PCBs.
Kuv muaj peev xwm siv tib lub PCB rau ob qho tib si xa thiab txais yog li txuag qee tus nqi.
Tus xa ntawv muaj kev sib txuas rau cov keyboard thiab LCD thaum tus txais tsis xav tau cov no thiab siv H-choj txhawm rau muab DCC cov zis rau thaj chaw.
Kev txhim kho ntxiv suav nrog kev sib txuas rau H-choj loj dua yog tias xav tau rau thaj chaw muaj zog dua.
PCF8574 tuaj yeem raug tshem tawm yog tias koj siv lub vijtsam LCD uas los nrog lub hnab ev tso cai rau SCA / SCL sib txuas ntawm Arduino los pub zaub uas siv tsuas yog 2 lub xov hlau. Parts list: Total = approx £ 60 for DCC Command Station + 1 receiverAdministrative receivers cost =.00 10.00 kwv yees txhua. + roj teeb
Arduino Pro Mini. x 2 = 00 4.00
4x3 membrane keypad = 00 3.00
20 x 4 LCD zaub = £ 7.00
PCF5874 = 80 1.80
NRF24L01+. xov tooj cua modules x 2 = 80 5.80
Kev tsim PCB rau 10 tawm (lossis Vero board tuaj yeem siv tau) = £ 24 lossis 80 4.80 rau 2off
3.3 v Regulator = £ 0.17 (pob ntawm 25 los ntawm RS Comp)
5v Regulator LM7805 = £ 0.30
H-choj SN754410ne = 00 3.00
Lloytron rov them 2700 maH AA roj teeb x 12 = £ 22.00. (qis dua MAH cov roj teeb tau pheej yig dua)
Capacitors, pots, pins, txuas, thiab lwm yam = £ 2.00 kwv yees kwv yees
Cov ntaub ntawv 190x110x60 mm =.00 8.00
Transmitter - xov tooj them / roj teeb = 00 2.00
Kauj ruam 2: Transmitter
Daim duab qhia hluav taws xob tau qhia qhov twg D2 rau D8 pins ntawm Arduino Pro Mini txuas nrog lub keypad. A 100k ohm potentiometer txuas nrog Analog tus pin A0 rau kev hloov kho nrawm. Qhov SDA thiab SCL pins tsim PCF8574 nti txuas nrog pins A4 thiab A5 ntawm Arduino Pro Mini los ntawm kev siv cov xaim hluav taws xob txuas rau cov pins ntawm txheej sab saum toj ntawm Pro Mini.
Daim duab Arduino tau txuas rau rub tawm.
Kuv tau siv 20 x 4 LCD zaub tso cai rau 4 kab ntawm cov ntaub ntawv nrog 20 tus cim ib kab.
1 txog 9 = qhov chaw nyob loco * = kev taw qhia 0 = teeb # = Cov ntawv qhia zaub mov rau cov yuam sij 1 txog 8
Cov lus piav qhia yooj yim ntawm Arduino Pro Mini kos duab: Kab kab ntawv no teeb tsa DCC lus hauv HEX hom ntawv. struct Message msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // tsis muaj lus nug
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 byte chaw nyob
};
Txhawm rau khaws cov teeb tsa rau txhua qhov chaw, cov kab ntawm cov kab ke tau teeb tsa raws li hauv qab no:
int la [20]; // array tuav cov lej loco
int sa [20]; // array tuav qhov tseem ceeb ceev
int fda [20]; // array tuav dir
int fla [20]; // array tuav lub teeb
int f1a [20]; // array tuav kev lom zem1…..
int f8a [20]; // array tuav fun8
Txhawm rau kom DCC cov lus qhia hloov kho thaum peb mus:
Rau cov lus qhia ceev: tsis muaj qhov hloov pauv_speed (teeb tsa Xov & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg nrog 28 qib nrawm}
Rau cov lus qhia ua haujlwm:
tsis muaj dab tsi hloov_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg nrog pab pawg ib qho kev qhia 0x80}
Lub voj loj ntawm daim duab:
lub voj void (tsis muaj dab tsi) {yog (read_locoSpeed ()) {assemble_dcc_msg_speed ();
xa_data_1 (); // xa cov ntaub ntawv los ntawm wireless
ncua (10);
xa_data_3 (); // tso saib cov ntaub ntawv ntawm LCD zaub
xa_data_4 (); // tso saib cov ntaub ntawv ntawm cov saib txuas}
yog (read_function ()) {
sib dhos_dcc_msg_group1 ();
xa_data_1 ();
ncua (10);
xa_data_3 (); }}
Hloov cov ntaub ntawv thaum qhov hloov pauv nrawm:
boolean read_locoSpeed () Qhov no txheeb xyuas qhov chaw nyob tshiab, nrawm lossis teeb tsa thiab hloov kho HEX 'cov ntaub ntawv' raws li qhov no. Ntawm no kuv tau teev 28 qib nrawm thiab kom tau raws li NMRA tus qauv S 9.2, cov ntaub ntawv nrawm yuav tsum pom los ntawm saib lub rooj hauv 'speed_step ()'
void speed_step () {hloov (locoSpeed) {
rooj plaub 1: cov ntaub ntawv | = 0x02; tawg;
rooj plaub 2: cov ntaub ntawv | = 0x12; tawg;
rooj plaub 3: cov ntaub ntawv | = 0x03; tawg;
………
rooj plaub 28: cov ntaub ntawv | = 0x1F; tawg; }}
Hloov cov ntaub ntawv thaum cov haujlwm hloov pauv:
boolean read_function ()
yog (fla [locoAdr] == 0) {data = 0x80;
} // Lub taub hau teeb tawm
yog (fla [locoAdr] == 1) {
cov ntaub ntawv = 0x90;
} // Lub taub hau teeb rau
Rau txhua Txoj Haujlwm:
yog (f2a [locoAdr] == 0) {data | = 0; }. // Muaj nuj nqi 2 tawm
yog (f2a [locoAdr] == 1) {
cov ntaub ntawv | = 0x02; // Muaj nuj nqi 2 ntawm} 'cov ntaub ntawv' tau tsim los ntawm kev sib txuas ['| =' sib xyaw me ntsis lossis] HEX cov lej rau txhua txoj haujlwm.
Kauj ruam 3: Txais
Daim duab hluav taws xob tau qhia pom qhov twg pins 5 thiab 6 ntawm Arduino Pro Mini tau siv los muab DCC teeb liab muab rau H-choj. H-choj khub tau txuas nrog ua ke kom nce peev txheej tam sim no. Nyob ntawm qhov tam sim no kos los ntawm qhov chaw, lub rhaub dej kub yuav xav tau txuas nrog 16 tus pin DIP ntaus ntawv, lossis lub luag haujlwm hnyav H-choj yuav txuas nrog sab nraud.
Daim duab Arduino tau txuas rau rub tawm. Qhov teeb liab DCC tau tsim los ntawm lub moos khiav ntawm 2MHZ
void SetupTimer2 () ua txoj haujlwm no.
Lub moos suav nrog 'luv luv pulses' (58us) rau '1' hauv DCC cov ntaub ntawv thiab 'pulses ntev' (116us) rau '0' hauv DCC cov ntaub ntawv.
Lub voj void, tau txais cov ntaub ntawv los ntawm xov tooj cua thiab yog tias pom txoj hlua raug, cov ntaub ntawv hloov pauv mus rau DCC cov ntaub ntawv.
void loop (tsis muaj dab tsi) {yog (radio.available ()) {bool ua = tsis tseeb; ua = radio.read (inmsg, 1); // nyeem cov ntaub ntawv tau txais
char rc = inmsg [0]; // muab tus cwj pwm nyeem rau hauv kab ntawv no
yog (rc! = 0) {. // yog tus cwj pwm tsis sib npaug rau xoom
inString.concat (rc); // tsim cov lus}
if (rc == '\ 0') {// if character is '/0' kawg ntawm cov lus
Serial.println (inString); // luam tawm cov lus sib dhos
hlua (); // de-build txoj hlua xov kom tau txais DCC cov lus qhia
} } }
Kauj ruam 4: Khiav Locos
Txhawm rau zam kev cuam tshuam ntawm cov ntaub ntawv los ntawm kev khiav ntau lub tsheb ciav hlau ntawm tib txoj kev, koj yuav tsum txiav tawm kev sib cuag ntawm lub log thiab txoj kab rau txhua qhov chaw thiab tsheb thauj neeg ua haujlwm.
Txaus siab rau cov tsheb ciav hlau khiav dawb tsis hais txog qhov xwm txheej twg - qhov txawv li cas! Tsis muaj teeb meem, tsis muaj qhov pib nres thiab tsis xav tau kev ntxuav.
Cov roj teeb uas kuv siv yog rov tau LLoytron AA x 12. Kuv tau tsim lub roj teeb tshwj xeeb rau lawv uas them 6 ib zaug. (saib qhia tau)
Pom zoo:
Hloov Kho Cov Khoom Ua Si: WolVol Tsheb ciav hlau Ua Hloov Mus Tau yooj yim!: 7 Cov kauj ruam
Hloov Kho Cov Qho Khoom Ua Si: WolVol Tsheb ciav hlau Ua Hloov Mus Tau! Hauv ntau qhov xwm txheej, cov menyuam yaus uas xav tau cov khoom ua si hloov pauv tsis tuaj yeem nkag mus
Nyob zoo Tsheb ciav hlau! ATtiny 1614: 8 Cov Kauj Ruam (nrog Duab)
Nyob zoo Tsheb ciav hlau! ATtiny 1614: Rau kuv chav Fab Academy kuv yuav tsum tsim lub rooj tsavxwm nrog lub microcontroller, khawm thiab LED. Kuv yuav siv Eagle los tsim nws
Kev Nyab Xeeb Zoo dua: Ua Cov Tsheb ciav hlau Kev Nyab Xeeb: 7 Cov Kauj Ruam
Kev Nyab Xeeb Zoo dua: Ua Cov Chaw Tsheb Ciav Hlau Muaj Kev Nyab Xeeb: Ntau lub chaw tsheb ciav hlau niaj hnub no tsis nyab xeeb vim tsis muaj kev nyab xeeb, teeb meem, thiab ceeb toom ntawm lub tsheb ciav hlau los rau hauv. Peb pom qhov xav tau uas yuav tsum tau kho. Txhawm rau daws qhov teeb meem no peb tsim Kev Nyab Xeeb Zoo. Peb tau siv cov ntsuas kev co, cov cim txav txav, thiab
Yuav Ua Li Cas Teeb Lub Tsheb ciav hlau Hi-rail Tsheb ntawm Txoj Kev: 10 Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Teeb Txoj Kev Tsheb Ciav Hlau Hi-rail rau ntawm Txoj Kev: Ceev faj Txog Kev Nyab Xeeb: Tus neeg teeb tsa lub tsheb ciav hlau hi-rail ntawm txoj kev tsheb nqaj hlau thiab tus neeg pab yuav tsum hnav khaub ncaws kom pom kev zoo (ex. Tsho khuam, tsho loj, tsho loj) thiaj li pom los ntawm kev tuaj yeem tuaj yeem khiav tsheb. Lub hardhat thiab hnab looj tes yuav tsum tau hnav rau
Tsheb ciav hlau Hla Hla Saib Xyuas Txheej Txheem: 5 Cov Kauj Ruam (nrog Duab)
Tsheb ciav hlau Hla Hla Saib Xyuas Kab Ke: Cov lus qhia no yuav qhia koj yuav siv MatLab li cas txhawm rau cim Arduino los tswj hwm ib feem ntawm txoj kev tsheb ciav hlau