INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Hallo, ek gaan jou wys hoe om 'n voetgangerslig vir Arduino in C ++ te programmeer met 'n eindige staatsmasjien deur YAKINDU Statechart Tools te gebruik. Dit toon die krag van staatsmasjiene en kan as 'n bloudruk vir verdere projekte gebruik word.
Voorrade
U benodig slegs 'n Arduino, 'n paar drukknoppies, LED's, trui en weerstande.
Hardeware
- 2x drukknop
- 2x verkeersligte, of u kan LED's met 220 Ohm -weerstande gebruik
- 2x 10k Ohm weerstande
- Broodbord
- Trui
- Arduino Uno/Mega (of enige ander met ten minste 8 GPIO's)
Sagteware
- YAKINDU Statechart Tools
- Eclipse C ++ IDE vir Arduino
Stap 1: Definieer hoe dit werk: Verkeerslig vir voetgangers
Eers moet ons spesifiseer hoe die verkeerslig vir voetgangers moet werk. Ek het probeer om die opsommingspunte op te som:
- Twee verkeersligte word gebruik - een vir die motors, die ander vir die voetgangers
- Verkeerslig kan met 'n knoppie aangeskakel word
- Voetgangers kan die straat oorsteek deur op 'n knoppie te druk
- Verkeerslig wat afgeskakel word, word aangedui deur albei geel LED's te flikker
- Nadat dit aangeskakel is, wag die verkeerslig 10 sekondes in die veilige modus
- Na die veilige modus het motors altyd 'n groen fase totdat 'n voetganger met 'n versoek begin
- Voetgangersversoek vir kruising word aangedui deur 'n wisselende geel LED
Daarbenewens is daar 'n paar tydsgebeurtenisse, afhangende van die manier waarop 'n verkeerslig werk.
Stap 2: Bou die stroombaan
Kom ons begin met die opstel van die kring. In my voorbeeld, soos u op die voorskoubeeld kan sien, het ek 'n Arduino Mega 2560 gebruik, maar elke ander Arduino met ten minste agt GPIO's behoort goed te wees. Boonop het ek 'n paar 5V verkeersligte by Amazon gekoop. Soek net vir Traffic Light Arduino. Andersins kan u eenvoudig ses verskillende LED's gebruik. Verder benodig u twee drukknoppies en twee 10k Ohm -weerstande.
Die drie linker -LED's word gebruik vir die motorverkeer en die drie regter -LED's vir die voetgangers, waar die geel 'n versoek kan aandui.
Stap 3: Skep die staatsmasjien
Soos u kan sien, is daar twee hooftoestande met saamgestelde lede - staat aan en af. U kan tussen beide state wissel deur die gebeurtenis onOff te gebruik, wat aan die AAN/UIT -knoppie gekoppel is. In die aanvanklike toestand, die af -toestand, begin albei geel LED's elke sekonde flikker. Sodra die verkeerslig aangeskakel is, begin dit in die veilige stad. Na 10 sekondes word die tipiese gedrag van die verkeersligte hanteer. Die rooi en geel LED sal in die StreetPrepare -toestand aangeskakel word en die verkeerslig word na nog 2 sekondes groen. Van nou af wag die staatsmasjien op die voetgangeraanvraag -geleentheid, wat aan die tweede knoppie gekoppel is. Nadat die geleentheid gestuur is, word die versoek aangedui deur die geel LED elke sekonde in die PedWating -toestand te skakel. 7 sekondes later word die verkeerslig eers na geel oorgeskakel en dan na rooi totdat die voetgangers die sein kry om in die voetgangergroen toestand te gaan. Hierna word die Voetgangerrooi geaktiveer en die siklus word herhaal. Dit kan slegs onderbreek word deur die verkeerslig weer af te skakel.
Stap 4: Gebruik die voorbeeld
Stap 5: Gegenereerde C ++ - kode
Die gegenereerde C ++-kode is 'n klassieke skakelaar om die logika van die staatsmasjien te hanteer. Dit is slegs 'n kodefragment van hoe dit lyk:
ongeldig TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_rea (breek; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (waar); breek; } verstek: breek; } clearInEvents (); }
Stap 6: Kry die voorbeeld
Die hele voorbeeld is gereed om saam te stel en uit te voer. Dit kom met YAKINDU Statechart Tools, wat gratis is vir nie-kommersiële gebruik. Nadat u dit afgelaai het, kan u die voorbeeld direk in die instrument invoer:
Lêer -> Nuut -> Voorbeeld -> Voorbeelde van YAKINDU Statechart -> Volgende -> Verkeerslig (C ++) vir Arduino
> HIER kan u YAKINDU Statechart Tools << aflaai
U kan begin met 'n proeftydperk van 30 dae. Daarna moet u 'n lisensie kry, wat gratis is vir nie-kommersiële gebruik!
Aanbeveel:
Muurhouer vir iPad as bedieningspaneel vir tuisautomatisering, met behulp van servo -beheerde magneet om die skerm te aktiveer: 4 stappe (met foto's)
Muurhouer vir iPad as 'n bedieningspaneel vir tuisautomatisering, met behulp van 'n servo -beheerde magneet om die skerm te aktiveer: Ek het die afgelope tyd baie tyd spandeer om dinge in en om my huis te outomatiseer. Ek gebruik Domoticz as my Home Automation -toepassing, sien www.domoticz.com vir meer inligting. In my soeke na 'n dashboard -toepassing wat alle Domoticz -inligting saam wys
Arduino Otto -robot met staatsmasjien: 4 stappe
Arduino Otto Robot Met State Machine: Oorsig van die projek In hierdie projek wil ek u 'n manier wys om die Otto Robot te programmeer, 'n DIY -robot op Arduino. Met behulp van YAKINDU Statechart Tools (gratis vir nie-kommersiële) kan ons maklik staatsmasjiene gebruik om die gedrag grafies te modelleer
Digitale horlosie op Arduino met 'n eindige staatsmasjien: 6 stappe
Digitale horlosie op Arduino met behulp van 'n eindige staatsmasjien: hier, ek gaan jou wys hoe 'n digitale horlosie met YAKINDU Statechart Tools geskep kan word en op 'n Arduino gebruik word, wat 'n LCD -sleutelbordskerm gebruik. Die oorspronklike model van die digitale horlosie is geneem van David Harel. Hy het 'n koerant gepubliseer oor
Staatsmasjien en multitasking op Arduino met SPI -uitbreiders: 3 stappe
Staatsmasjien en multitasking op Arduino met SPI -uitbreiders: Verlede week het ek gevra om 'n stelsel te skep om vuurwerke met 'n arduino te loods. Dit het ongeveer 64 uitsette nodig gehad om die brande te beheer. Een manier om dit te doen is om IC -uitbreiders te gebruik. Daar is dus 2 oplossings beskikbaar:- 'n I2C-uitbreiding, maar dit benodig 'n omskakelaar as u
Arduino PLC 32 I/O+staatsmasjien+SCADA of HMI: 8 stappe
Arduino PLC 32 I/O+State Machine+SCADA of HMI: Baie maniere om te programmeer, te beheer en toesig te hou oor 'n industriële stelsel met arduino