Mundarija:

Arduino -dagi davlat mashinasi - piyodalar svetofori: 6 qadam (rasmlar bilan)
Arduino -dagi davlat mashinasi - piyodalar svetofori: 6 qadam (rasmlar bilan)

Video: Arduino -dagi davlat mashinasi - piyodalar svetofori: 6 qadam (rasmlar bilan)

Video: Arduino -dagi davlat mashinasi - piyodalar svetofori: 6 qadam (rasmlar bilan)
Video: Ertaknamo Italiyaga ๐Ÿ‡ฎ๐Ÿ‡น Sayohat! Milan, Venetsiya va Rim shaharlari haqida! Yevropa Hayoti ๐Ÿ‡ช๐Ÿ‡บ๐ŸŒ 2024, Iyul
Anonim
Arduino -dagi davlat mashinasi - piyodalar uchun svetofor
Arduino -dagi davlat mashinasi - piyodalar uchun svetofor

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

O'chirish davri
O'chirish davri

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

Davlat mashinasini yaratish
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: