Satura rādītājs:
- Piegādes
- 1. darbība: definējiet, kā tas darbojas: gājēju luksofors
- 2. solis: izveidojiet ķēdi
- 3. darbība: valsts iekārtas izveide
- 4. darbība. Piemēra palaišana
- 5. darbība: ģenerēts C ++ kods
- 6. darbība: iegūstiet piemēru
Video: Valsts mašīna uz Arduino - gājēju luksofors: 6 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Sveiki! Es jums parādīšu, kā programmēt gājēju luksoforu Arduino programmā C ++ ar ierobežota stāvokļa mašīnu, izmantojot YAKINDU Statechart Tools. Tas parādīs valsts mašīnu spēku un to var izmantot kā plānu turpmākajiem projektiem.
Piegādes
Jums ir nepieciešams tikai Arduino, dažas pogas, gaismas diodes, džemperis un rezistori.
Aparatūra
- 2x spiedpoga
- 2x luksofori vai varat izmantot gaismas diodes ar 220 omu rezistoriem
- 2x 10k Ohm rezistori
- Maizes dēlis
- Džemperis
- Arduino Uno/Mega (vai jebkura cita, kurai ir vismaz 8 GPIO)
Programmatūra
- YAKINDU stāvokļa diagrammas rīki
- Eclipse C ++ IDE Arduino
1. darbība: definējiet, kā tas darbojas: gājēju luksofors
Sākumā mums jāprecizē, kā jādarbojas gājēju luksoforam. Esmu mēģinājis apkopot aizzīmes:
- Tiek izmantoti divi luksofori - viens automašīnām, otrs - gājējiem
- Luksoforu var ieslēgt, izmantojot pogu
- Gājējs var pieprasīt šķērsot ielu, nospiežot pogu
- Par izslēgtu luksoforu norāda mirgojošas abas dzeltenās gaismas diodes
- Pēc ieslēgšanas luksofors drošajā režīmā gaida 10 sekundes
- Pēc drošā režīma automašīnām vienmēr ir zaļā fāze, līdz gājējs sāk pieprasījumu
- Gājēju pieprasījumu šķērsot norāda dzeltenā gaismas diode
Turklāt ir daži laika notikumi atkarībā no luksofora darbības veida.
2. solis: izveidojiet ķēdi
Sāksim iestatīt ķēdi. Manā piemērā, kā redzat priekšskatījuma attēlā, esmu izmantojis Arduino Mega 2560, bet visiem pārējiem Arduino ar vismaz astoņiem GPIO vajadzētu būt kārtībā. Turklāt Amazon esmu nopircis dažus 5V luksoforus. Vienkārši meklējiet luksoforu Arduino. Pretējā gadījumā varat vienkārši izmantot sešas dažādas gaismas diodes. Turklāt jums ir nepieciešamas divas spiedpogas un divi 10 kΩ rezistori.
Trīs kreisās gaismas diodes tiek izmantotas automašīnu satiksmei, bet trīs labās gaismas diodes - gājējiem, kur dzeltenais var norādīt pieprasījumu.
3. darbība: valsts iekārtas izveide
Tātad, kā redzat, ir divi galvenie stāvokļi ar saliktiem dalībniekiem - stāvoklis ieslēgts un izslēgts. Jūs varat pārslēgties starp abiem stāvokļiem, izmantojot notikumu onOff, kas ir pieslēgts ON/OFF pogai. Sākotnējā stāvoklī, izslēgts, abas dzeltenās gaismas diodes sāk mirgot katru sekundi. Kad luksofors ir ieslēgts, tas sākas drošākajā stāvoklī. Pēc 10 sekundēm tiks apstrādāta luksoforu raksturīgā uzvedība. Sarkanā un dzeltenā gaismas diode tiks ieslēgta StreetPrepare stāvoklī, un luksofors iedegsies zaļā krāsā vēl pēc 2 sekundēm. Turpmāk štata mašīna gaida notikumu footrianRequest, kas ir pieslēgts otrajai pogai. Pēc notikuma nosūtīšanas pieprasījums tiks norādīts, katru sekundi PedWating stāvoklī pārslēdzot dzelteno gaismas diodi. Pēc 7 sekundēm luksofors vispirms tiks pārslēgts uz dzeltenu un pēc tam uz sarkanu, līdz gājēji saņems signālu, lai dotos ceļā Gājējs zaļš. Pēc tam tiek aktivizēts PedestrianRed un cikls atkārtojas. To var pārtraukt, tikai vēlreiz izslēdzot luksoforu.
4. darbība. Piemēra palaišana
5. darbība: ģenerēts C ++ kods
Ģenerētais C ++ kods ir klasisks slēdža korpuss, lai apstrādātu stāvokļa mašīnas loģiku. Šis ir tikai koda fragments, kā tas izskatās:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {slēdzis (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_reen_re; pārtraukums; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); pārtraukums; } noklusējums: pārtraukums; } clearInEvents (); }
6. darbība: iegūstiet piemēru
Viss piemērs ir gatavs apkopošanai un palaišanai. Tas ir aprīkots ar YAKINDU Statechart Tools, kas ir bezmaksas nekomerciālai lietošanai. Pēc lejupielādes piemēru varat importēt tieši rīkā:
Fails -> Jauns -> Piemērs -> YAKINDU valsts diagrammas piemēri -> Tālāk -> Luksofors (C ++) Arduino
> ŠEIT varat lejupielādēt YAKINDU Statechart Tools <<
Jūs varat sākt ar 30 dienu izmēģinājumu. Pēc tam jums ir jāsaņem licence, kas ir bezmaksas nekomerciālai lietošanai!
Ieteicams:
Trokšņa luksofors - DIY 3D drukāts: 8 soļi (ar attēliem)
Trokšņa luksofors - DIY 3D drukāts: visi cilvēki vēlas strādāt klusumā, un ir svarīgi, lai būtu laba darba vide. Klusums noved pie efektīva darba. Mēs veicām šo projektu, lai sasniegtu šo priekšlikumu. Trokšņa luksofors sastāv no “luksofora”, kas kontrolē dB
Arduino Otto robots ar valsts mašīnu: 4 soļi
Šajā projektā es vēlos parādīt veidu, kā programmēt Otto robotu, kas ir uz Arduino balstīts DIY robots. Izmantojot YAKINDU Statechart Tools (bezmaksas nekomerciāliem), mēs varam viegli izmantot valsts iekārtas, lai grafiski modelētu uzvedību
Arduino luksofors: 3 soļi (ar attēliem)
Arduino luksofors: šis norādījums ir iegūts no: Arduino-luksofora simulators Es izmantoju šīs instrukcijas zīmējumu, lai izveidotu atsevišķu luksoforu. Es veicu šādas izmaiņas: LED caurumi ir mazāki, 5 mm gaismas diodēm (nevis 10 mm gaismas diodēm)
Arduino luksofors: 8 soļi (ar attēliem)
Arduino luksofors: šis projekts tika veidots ar 5 mm gaismas diodēm un LED montāžas aparatūru T1-3/4 Clear Standard, lai uzlabotu vizualizāciju, un tādējādi, izmantojot 3 gaismas diodes, lai atsevišķi parādītu tās krāsas Sarkana, dzeltena un amp; Zaļa attiecīgi
Viedais interaktīvais luksofors: 5 soļi (ar attēliem)
Viedais interaktīvais luksofors: vai esat gatavs izveidot pasaulē labāko un interaktīvāko luksoforu? Labi! Šajā apmācībā mēs izskaidrosim, kā to izveidot pats, izmantojot Arduino. Nepieciešamās sastāvdaļas:- Arduino (..duh)- LM317 Mosfet- 2x 60 cm analogās RGB LED sloksnes (12V)- PVC caurule