Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Salom! Men sizga YAKINDU Statechart asboblari yordamida C ++ da Arduino uchun piyodalar svetoforini cheklangan davlat mashinasi bilan qanday dasturlashni ko'rsataman. Bu davlat mashinalarining kuchini namoyish etadi va keyingi loyihalar uchun reja sifatida ishlatilishi mumkin.
Ta'minotlar
Sizga faqat Arduino, ba'zi tugmalar, LEDlar, o'tish moslamalari va rezistorlar kerak.
Uskuna
- 2 marta bosish tugmasi
- 2 marta svetofor yoki siz 220 Ohm rezistorli LEDlardan foydalanishingiz mumkin
- 2x 10k Ohmli rezistorlar
- Non paneli
- Jumper
- Arduino Uno/Mega (yoki kamida 8 ta GPIOga ega bo'lgan har qanday)
Dasturiy ta'minot
- YAKINDU Statechart asboblari
- Arduino uchun Eclipse C ++ IDE
1 -qadam: Bu qanday ishlashini aniqlang: piyodalar svetofori
Avvaliga piyodalar svetofori qanday ishlashi kerakligini aniqlashimiz kerak. Men o'q nuqtalarini umumlashtirishga harakat qildim:
- Ikkita svetofor ishlatiladi - biri avtomobil uchun, ikkinchisi piyodalar uchun
- Svetoforni tugma yordamida yoqish mumkin
- Piyoda tugmani bosib, ko'chadan o'tishni so'rashi mumkin
- O'chirilgan svetofor ikkala sariq LEDning miltillashi bilan ko'rsatiladi
- Svetofor yoqilgandan so'ng 10 soniya xavfsiz rejimda kutadi
- Xavfsiz rejimdan so'ng, piyodalar so'rovni boshlamaguncha, mashinalarda har doim yashil faza bo'ladi
- Piyodalarning o'tish so'rovi sariq LEDni almashtirish orqali ko'rsatiladi
Bunga qo'shimcha ravishda, svetoforning ishlash uslubiga qarab ba'zi vaqt hodisalari mavjud.
2 -qadam: O'chirish sxemasini yarating
Keling, sxemani o'rnatishni boshlaylik. Mening misolimda, oldindan ko'rish tasvirida ko'rib turganingizdek, men Arduino Mega 2560 dan foydalanganman, lekin kamida sakkizta GPIOga ega bo'lgan boshqa Arduino hammasi yaxshi bo'lishi kerak. Bundan tashqari, men Amazonda 5V svetofor sotib oldim. Svetofor Arduino -ni qidiring. Aks holda, siz olti xil LEDni ishlatishingiz mumkin. Bundan tashqari, sizga ikkita tugma va ikkita 10k Ohmli rezistorlar kerak.
Uchta chap diodli avtomobillar harakati va piyodalar uchun uchta o'ng svetodiod ishlatiladi, bu erda sariq so'rovni bildirishi mumkin.
3 -qadam: Davlat mashinasini yaratish
Ko'rib turganingizdek, a'zo a'zolari bo'lgan ikkita asosiy holat mavjud - holat yoqilgan va yopiq. ON/OFF tugmachasiga ulangan onOff hodisasidan foydalanib, siz ikkala holatni o'zgartirishingiz mumkin. Dastlabki holatda, o'chirilgan holatda, har ikkala sariq LED ham har soniyada miltillay boshlaydi. Svetofor yoqilgandan so'ng, u xavfsiz xonada boshlanadi. 10 soniyadan so'ng svetoforlarning odatdagi xatti -harakati hal qilinadi. Qizil va sariq LED StreetPrepare holatida yonadi va svetofor yana 2 soniyadan so'ng yashil rangda yonadi. Bundan buyon, davlat mashinasi piyodalar so'rovining ikkinchi tugmachasiga ulangan hodisasini kutmoqda. Voqeani yuborganingizdan so'ng, PedWating holatida har soniyada sariq LEDni almashtirish orqali so'rov ko'rsatiladi. 7 soniyadan so'ng piyodalar Piyodalar Yashil holatiga o'tish signalini olmaguncha svetofor avval sariq, keyin qizil rangga o'tadi. Shundan so'ng, PedestrianRed faollashadi va tsikl takrorlanadi. Buni faqat svetoforni yana o'chirish orqali to'xtatish mumkin.
4 -qadam: misolni ishga tushirish
5 -qadam: C ++ kodi yaratildi
Yaratilgan C ++ kodi-bu davlat mashinasining mantig'ini boshqarish uchun klassik kalit. Bu shunchaki ko'rinadigan kod parchasi:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_react (GreenGre_react) tanaffus; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (rost); tanaffus; } standart: break; } clearInEvents (); }
6 -qadam: misolni oling
Butun misol kompilyatsiya qilishga va ishga tushirishga tayyor. U YAKINDU Statechart Tools bilan birga keladi, u notijorat maqsadlarda foydalanish uchun bepul. Yuklab olgandan so'ng, misolni to'g'ridan -to'g'ri asbobga import qilishingiz mumkin:
Fayl -> Yangi -> Misol -> YAKINDU Statechart misollari -> Keyingi -> Svetofor (C ++) Arduino uchun
> Bu erda siz YAKINDU Statechart asboblarini << yuklab olishingiz mumkin
Siz 30 kunlik sinovdan boshlashingiz mumkin. Shundan so'ng, siz notijorat maqsadlarda foydalanish uchun bepul bo'lgan litsenziyani olishingiz kerak!
Tavsiya:
Davlat mashinasi bilan Arduino Otto robot: 4 qadam
Arduino Otto Robot bilan Davlat mashinasi: Loyihaga umumiy nuqtai Ushbu loyihada men sizga Arduino asosidagi DIY robotli Otto Robotini dasturlash usulini ko'rsatmoqchiman. YAKINDU Statechart asboblari yordamida (notijorat uchun bepul), biz xatti-harakatlarni grafik jihatdan modellashtirish uchun davlat mashinalaridan osongina foydalanishimiz mumkin
Arduino svetofori: 3 qadam (rasmlar bilan)
Arduino svetofori: Bu ko'rsatma quyidagilardan olingan: Arduino-svetofor-simulyatori Men bu yo'riqnomaning chizilgan chizig'idan alohida svetofor yaratish uchun foydalanganman. Men quyidagi o'zgarishlarni qildim: LEDlar uchun teshiklar kichikroq, 5 mmli LEDlar uchun (10 mm LED o'rniga).
Davlat mashinasi va Arduino -da SPI kengaytirgichlari bilan ko'p vazifalar: 3 qadam
Davlat mashinasi va SPD kengaytirgichlari yordamida Arduino -da ko'p vazifalar: O'tgan haftada men arduino yordamida fişənglarni uchirish tizimini yaratishni so'radim. Yong'inlarni nazorat qilish uchun 64 ga yaqin chiqish kerak edi. Buning bir usuli - IC kengaytiruvchilardan foydalanish. Shunday qilib, 2 ta echim mavjud:- I2C kengaytirgichi, lekin uni o'rnatishda invertor kerak
Arduino svetofori: 8 qadam (rasmlar bilan)
Arduino svetofori: Bu loyiha 5 mm diodli LEDlar va Led o'rnatish uskunalari T1-3/4 Clear Standard bilan yaxshiroq vizualizatsiya qilish uchun qilingan, shuning uchun uning ranglarini alohida ko'rsatish uchun 3 LEDni ishlatgan qizil, sariq va amp; O'z navbatida yashil
Arduino PLC 32 I/O+davlat mashinasi+SCADA yoki HMI: 8 qadam
Arduino PLC 32 I/O+davlat mashinasi+SCADA yoki HMI: Arduino yordamida sanoat tizimini dasturlash, boshqarish va nazorat qilishning ko'p usullari