Mundarija:
- 1 -qadam: tizimni loyihalash
- 2 -qadam: uzatuvchi
- 3 -qadam: qabul qiluvchi
- 4 -qadam: Locos -ni ishga tushiring
Video: Bog 'poezdi - Arduino simsiz NMRA DCC: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
O'lik temir yo'l tizimi bo'yicha DCC bilan oldingi ko'rsatmalarga qo'shimcha ravishda, men bu g'oyani klaviatura va LCD displeyli qo'lda boshqariladigan DCC qo'mondonlik stantsiyasi yordamida ishlab chiqdim. Qo'mondonlik stantsiyasi NMRA DCC ko'rsatmalari uchun zarur bo'lgan barcha kodlashni o'z ichiga oladi, lekin relslarga ulanish o'rniga, ma'lumotlar RF24L01+ radio moduli orqali yuk mashinasida yoki lokom ostida o'rnatilgan qabul qilgichga uzatiladi - xona ruxsat bergan joyda.
Albatta, sizning lokomotivlaringiz dvigatel motorlariga mos keladigan yuk ko'tarish qobiliyatini dekoder bilan jihozlangan bo'lishi kerak.
1 -qadam: tizimni loyihalash
Arduino Pro Mini - dizayn markazida. Tizimni ishlab chiqish va tenglikni ishlab chiqarish uchun Fritzingdan foydalanish.
Men bir xil PCB -ni uzatuvchi va qabul qilgichda ishlata oldim, shuning uchun ba'zi xarajatlarni tejadim.
Transmitterda klaviatura va LCD uchun ulanishlar mavjud, qabul qilgich esa ularni talab qilmaydi va H-ko'prigidan foydalanib, lokomotiv uchun DCC chiqishini ta'minlaydi.
Keyingi rivojlanish, agar kuchliroq lokomlar uchun kerak bo'lsa, katta H-ko'prigi uchun ulanishlarni o'z ichiga oladi.
Agar siz Arduino -dagi SCA / SCL ulanishlariga displeyni faqat 2 ta sim yordamida uzatishga imkon beradigan ryukzakli LCD displeydan foydalansangiz, PCF8574 o'chirilishi mumkin. Qismlar ro'yxati: DCC Command Station + 1 qabul qilgich uchun jami = taxminan 60 funt = Har biri taxminan 10,00 funt. + batareyalar
Arduino Pro Mini. x 2 = 4,00 funt
4x3 membranali klaviatura = 3,00 funt
20 x 4 LCD displey = 7,00 funt
PCF5874 = 1,80 funt
NRF24L01+. radio modullari x 2 = 5,80 funt
PCB ishlab chiqarilishi 10 chegirmali (yoki Vero kartasidan foydalanish mumkin) = 2 ta narx uchun 24 funt yoki 4,80 funt
3.3 v Regulyator = 0.17 funt (RS Comp dan 25 to'plami)
5V regulyatori LM7805 = 0,30 funt
H-ko'prigi SN754410ne = 3,00 funt
Qayta zaryadlanadigan Lloytron 2700 maH AA batareyalari x 12 = 22,00 funt. (pastroq maH nominal batareyalar arzonroq)
Kondansatkichlar, kostryulkalar, pinlar, ulagichlar va boshqalar = taxminan 2,00 funt
Qoplama 190x110x60 mm = 8,00 funt
Transmitter - telefon zaryadlovchi / batareya = 2,00 funt
2 -qadam: uzatuvchi
Arduino Pro Mini -dagi D2 dan D8 pinlari klaviaturaga ulangan elektron sxemasi ko'rsatilgan. 100k ohmlik potentsiometr A0 analog piniga ulangan. SDA va SCL pinlari PCF8574 chipini A4 pinlariga ulangan. A5 Arduino Pro Mini -da, Pro Mini -ning yuqori qavatidagi pinlarga lehimli simlar yordamida.
Yuklab olish uchun Arduino eskizi biriktirilgan.
Men 20 x 4 o'lchamli LCD displeydan foydalanganman, har bir satrda 20 ta belgidan iborat 4 qatorli ma'lumotlarga ega, klaviatura quyidagi menyuni beradi:
1dan 9gacha = manzil manzili * = yo'nalish 0 = chiroqlar # = 1-8 tugmachalari uchun funktsiya menyusi
Arduino Pro Mini eskizining asosiy tavsifi: Kodning bu qatori DCC xabarini HEX formatida tartibga soladi. tuzilish Xabar msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // bo'sh xabar
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // 3 baytli manzil
};
Har bir lokom uchun sozlamalarni saqlash uchun qatorlar qatori quyidagicha o'rnatiladi:
int la [20]; // loco raqamlarini ushlab turuvchi qator
int sa [20]; // tezlik qiymatlarini ushlab turuvchi qator
int fda [20]; // dirni ushlab turish uchun qator
int fla [20]; // chiroqlarni ushlab turuvchi qator
int f1a [20]; // qiziqarli o'tkazish uchun qator1 …..
int f8a [20]; // ko'ngilxushlikni saqlash uchun8
Biz ketayotganimizda DCC ko'rsatmalariga o'zgartirishlar kiritish uchun:
Tezlik ko'rsatmalari uchun: void o'zgarishlar_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // 28 qadamli locoMsg}
Funktsiya bo'yicha ko'rsatmalar uchun:
void o'zgarishlar_group1 (tuzilgan Xabar va x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg birinchi guruhli ko'rsatma 0x80}
Eskizning asosiy halqasi:
void loop (void) {if (read_locoSpeed ()) {assemble_dcc_msg_speed ();
send_data_1 (); // ma'lumotlarni simsiz yuborish
kechikish (10);
send_data_3 (); // ma'lumotlarni LCD displeyda ko'rsatish
send_data_4 (); // ma'lumotlarni ketma -ket monitorda ko'rsatish}
if (read_function ()) {
assemble_dcc_msg_group1 ();
send_data_1 ();
kechikish (10);
send_data_3 (); }}
Tezlik o'zgarganda ma'lumotlarni yangilang:
boolean read_locoSpeed () Bu yangi manzil, tezlik yoki yo'nalish sozlamalarini aniqlaydi va shunga mos ravishda HEX "ma'lumotlarini" o'zgartiradi. Bu erda men 28 tezlik bosqichini ko'rsatdim va NMRA S 9.2 standartiga javob berish uchun tezlik ma'lumotlarini qidirish jadvalidan topish kerak. "speed_step ()" da
void speed_step () {switch (locoSpeed) {
1 -holat: ma'lumotlar | = 0x02; tanaffus;
2 -holat: ma'lumotlar | = 0x12; tanaffus;
3 -holat: ma'lumotlar | = 0x03; tanaffus;
………
28 -holat: ma'lumotlar | = 0x1F; tanaffus; }}
Vazifalar o'zgarganda ma'lumotlarni yangilang:
mantiqiy o'qish funktsiyasi ()
if (fla [locoAdr] == 0) {ma'lumotlar = 0x80;
} // faralar o'chadi
agar (fla [locoAdr] == 1) {
ma'lumotlar = 0x90;
} // faralar yonadi
Har bir funktsiya uchun:
if (f2a [locoAdr] == 0) {ma'lumotlar | = 0; }. // 2 -funktsiya o'chirilgan
agar (f2a [locoAdr] == 1) {
ma'lumotlar | = 0x02; // "Ma'lumotlar" ning 2 -funktsiyasi har bir funktsiya uchun ['| =' birikma bitli yoki] HEX kodlarini birlashtirib tuziladi.
3 -qadam: qabul qiluvchi
H-ko'prigiga DCC signalini etkazib berish uchun Arduino Pro Mini-ning 5 va 6-pinlari ishlatilgan sxemasi ko'rsatilgan. H-ko'prik juftlari oqim quvvatini oshirish uchun parallel ulanadi. Loko chizig'ining oqimiga qarab, 16 pinli DIP qurilmasiga sovutgichni ulash talab qilinishi mumkin yoki og'ir yuk ko'taruvchi H-ko'prigi tashqi tomondan ulanishi mumkin.
Yuklab olish uchun Arduino eskizi biriktirilgan. DCC signali 2 MGts tezlikda ishlaydi
void SetupTimer2 () bu vazifani bajaradi.
Soat DCC ma'lumotlarida "1" uchun "qisqa pulslar" (58us) va DCC ma'lumotlarida "0" uchun "uzoq pulslar" (116us) ni o'z ichiga oladi.
Bo'shliq, radiodan ma'lumotlarni oladi va agar to'g'ri satr topilsa, ma'lumotlar DCC ma'lumotlariga aylanadi.
void loop (void) {if (radio.available ()) {bool done = false; bajarilgan = radio. o'qish (inmsg, 1); // olingan ma'lumotlarni o'qing
char rc = inmsg [0]; // bu qatorga o'qilgan belgini qo'ying
agar (rc! = 0) {. // agar belgi nolga teng bo'lmasa
inString.concat (rc); // xabar yaratish}
if (rc == '\ 0') {// agar belgi '/0' xabarning oxiri bo'lsa
Serial.println (inString); // yig'ilgan xabarni chop eting
satr (); // DCC ko'rsatmalarini olish uchun mag'lubiyat xabarini tuzish
} } }
4 -qadam: Locos -ni ishga tushiring
Bir yo'lda bir nechta poezd harakatlanishiga to'sqinlik qilmaslik uchun, har bir lokomotiv va yuk mashinasi uchun g'ildiraklar va yo'l o'rtasidagi kontaktlarni uzib qo'yish kerak.
Yo'l sharoitidan qat'i nazar, bepul yuradigan poezdlardan rohatlaning - bu qanday farq! Hech qanday qiyinchilik, start-stop va tozalash talab qilinmaydi.
Men ishlatgan batareyalar qayta zaryadlanadigan LLoytron AA x 12. Men, ayniqsa, ular uchun bir vaqtning o'zida 6 zaryad oladigan zaryadlovchi qurilmasini qurdim. (ko'rsatmalarga qarang)
Tavsiya:
Steampunk poezdi: 5 qadam (rasmlar bilan)
Steampunk poezdi: Men do'stimdan ishlatilgan nogironlar aravachasini olish baxtiga muyassar bo'ldim. Men uni ishga tushirish uchun ikkala batareyani ham almashtirishim kerak edi, lekin bu ko'p qirrali qurilish platformasi uchun to'lash uchun kichik narx edi. Men qaror qildim
ESP8266 - Internet / ESP8266 orqali taymer va masofadan boshqarish bilan bog'ni sug'orish: 7 qadam (rasmlar bilan)
ESP8266 - Internet orqali taymer va masofadan boshqarish pulti yordamida bog'ni sug'orish / ESP8266: ESP8266 - sug'orish masofadan boshqariladigan va sabzavot bog'lari, gul bog'lari va maysazorlar uchun mo'ljallangan. U ESP-8266 sxemasidan va sug'orish moslamasi uchun gidravlik / elektr valfdan foydalanadi
Magnit bilan bog'langan suv nasosi: 10 qadam (rasmlar bilan)
Magnit bilan bog'langan suv nasoslari: Men ko'rsatma beraman, men qanday qilib suv nasosini magnitli birlashtirdim, bu suv nasosida pervanel va elektr dvigatelining o'qi o'rtasida mexanik aloqa yo'q. Ammo bunga qanday erishish mumkin va
Masofadan boshqarish pultidan simsiz simsiz klaviatura yasang: 10 qadam (rasmlar bilan)
Televizorni masofadan boshqarish pultidan simsiz mini klaviatura yarating: Siz hech qachon televizoringizning pultini buzib simsiz klaviatura yasashni o'ylab ko'rganmisiz? Shunday qilib, men ushbu ko'rsatmalarda qanday qilib arzon simsiz klaviatura qurishni tushuntiraman. Ushbu loyiha maxsus simsiz tarmoq yaratish uchun IQ (infraqizil) aloqasidan foydalanadi
Bog'lamsiz va simsiz simlarni yaxshilab o'rash: 5 qadam (rasmlar bilan)
Bog'lamsiz va simsiz holda simlarni o'rash: Maqsad: simlarni (minigarnituralar, quvvat va h.k.) galstuksiz yoki tez yopishib oluvchi tasmalarsiz o'rash usuli. Bu erda bitta usul, yaxshiroq takliflar bormi? Ko'proq qo'llanmalar: http://www.curiousinventor.com/guidesVideo namoyishi