Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Pozdrav! Pokazat ću vam kako programirati pješački semafor za Arduino u C ++ sa strojem konačnih stanja pomoću YAKINDU alata za grafikone stanja. Ovo će pokazati moć državnih mašina i može se koristiti kao nacrt za daljnje projekte.
Supplies
Potreban vam je samo Arduino, nekoliko tipki, LED diode, kratkospojnik i otpornici.
Hardver
- 2x Taster
- 2x semafora ili možete koristiti LED sa otpornicima od 220 ohma
- 2x 10k Ohm otpornika
- Breadboard
- Jumper
- Arduino Uno/Mega (ili bilo koji drugi, koji ima najmanje 8 GPIO -ova)
Softver
- YAKINDU Alati dijagrama stanja
- Eclipse C ++ IDE za Arduino
Korak 1: Definišite kako to radi: Semafor za pješake
Prvo moramo odrediti kako bi semafor za pješake trebao raditi. Pokušao sam sažeti glavne točke:
- Koriste se dva semafora - jedan za automobile, drugi za pješake
- Semafor se može uključiti pritiskom na dugme
- Pješak može zatražiti prelazak ulice pritiskom na dugme
- Ugašeni semafor se prikazuje trepćućim žutim LED diodama
- Nakon uključivanja, semafor čeka 10 sekundi u sigurnom načinu rada
- Nakon sigurnog načina rada, automobili uvijek imaju zelenu fazu sve dok pješak ne uputi zahtjev
- Zahtjev za prelazak pješaka označen je uključivanjem žute LED diode
Osim toga, postoje neki vremenski događaji ovisno o načinu rada semafora.
Korak 2: Izgradite krug
Počnimo s postavljanjem kruga. U mom primjeru, kao što možete vidjeti na slici za pregled, koristio sam Arduino Mega 2560, ali svaki drugi Arduino s najmanje osam GPIO -ova trebao bi biti u redu. Osim toga, kupio sam i 5 semafora na Amazonu. Samo potražite Arduino na semaforu. U suprotnom, možete jednostavno koristiti šest različitih LED dioda. Nadalje, potrebna su vam dva gumba i dva otpornika od 10 k Ohma.
Tri lijeve LED diode koriste se za automobilski promet, a tri desne LED za pješake, gdje žuta može označiti zahtjev.
Korak 3: Kreiranje State Machine -a
Dakle, kao što vidite, postoje dva glavna stanja sa složenim članovima - stanje uključeno i stanje isključeno. Možete se prebacivati između dva stanja pomoću događaja onOff, koji je povezan sa tipkom ON/OFF. U početnom stanju, isključeno, obje žute LED diode počinju treperiti svake sekunde. Nakon što je semafor uključen, on počinje u Safestate. Nakon 10 sekundi bit će riješeno tipično ponašanje semafora. Crvena i žuta LED lampica će se uključiti u stanju StreetPrepare, a semafor će zasvijetliti nakon još 2 sekunde. Od sada državna mašina čeka događaj pedestrianRequest, koji je povezan sa drugim dugmetom. Nakon slanja događaja zahtjev će biti označen promjenom žute LED svake sekunde u stanju PedWating. 7 sekundi kasnije semafor će se prvo prebaciti u žuto, a zatim u crveno sve dok pješaci ne dobiju signal za prelazak u stanje pješačke staze. Nakon toga se aktivira Pješački crveni i ciklus se ponavlja. To se može prekinuti samo ponovnim gašenjem semafora.
Korak 4: Pokretanje primjera
Korak 5: Generirani C ++ kod
Generirani C ++ kôd je klasična sklopka za rukovanje logikom stroja stanja. Ovo je samo isječak koda kako izgleda:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); za (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {slučaj main_region_on_r1_StreetGreen: {main_region_etr; break; } slučaj main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); break; } default: break; } clearInEvents (); }
Korak 6: Uzmite primjer
Cijeli primjer je spreman za kompajliranje i pokretanje. Dolazi s alatima YAKINDU Statechart Tools, besplatnim za nekomercijalnu upotrebu. Nakon preuzimanja, možete uvesti primjer izravno u alat:
Datoteka -> Novo -> Primjer -> Primjeri grafikona stanja YAKINDU -> Dalje -> Semafor (C ++) za Arduino
> OVDJE možete preuzeti YAKINDU alate za grafikone stanja <<
Možete započeti s probnim periodom od 30 dana. Nakon toga morate dobiti licencu koja je besplatna za nekomercijalnu upotrebu!
Preporučuje se:
Arduino semafor: 3 koraka (sa slikama)
Arduino semafor: Ova instrukcija je izvedena iz: Arduino-Traffic-Light-SimulatorKoristio sam crtež iz ove instrukcije za stvaranje zasebnog semafora. Napravio sam sljedeće izmjene: Rupe za LED diode su manje, za 5 mm LED diode (umjesto LED dioda od 10 mm)
Državna mašina i više zadataka na Arduinu sa SPI ekspanderima: 3 koraka
Državna mašina i višezadaćnost na Arduinu sa SPI ekspanderima: Prošle sedmice sam tražio stvaranje sistema za pilotiranje vatrometa sa arduinom. Bilo mu je potrebno oko 64 izlaza za kontrolu požara. Jedan od načina da to učinite je korištenje IC ekspandera. Dostupna su 2 rješenja:- I2C ekspander, ali potreban mu je pretvarač kada
Arduino semafor: 8 koraka (sa slikama)
Arduino semafor: Ovaj projekt napravljen je sa LED diodama od 5 mm i LED montažnim hardverom T1-3/4 Clear Standard za bolju vizualizaciju, pa je tako koristio 3 LED diode za zasebno prikazivanje boja Crvena, Žuta i amper; Zelena, respektivno
Mašina za svirače flaute zasnovana na Arduinu: 10 koraka (sa slikama)
Mašina za svirače flaute zasnovana na Arduinu: U ovom uputstvu pokušavam predstaviti projekt koji kombinira umjetnost s inženjeringom. Mašina koja svira flautu. Kontrolira bilješke pomoću Arduina. Na Arduinu se mogu programirati različite melodije ili pjesme koje Arduino svira na flauti. Nema
Pametni interaktivni semafor: 5 koraka (sa slikama)
Pametni interaktivni semafor: Spremni za izradu najboljeg i najinteraktivnijeg semafora na svijetu? Dobro! U ovom ćemo vodiču objasniti kako možete sami izgraditi Arduino. Potrebne komponente:- Arduino (..duh)- LM317 Mosfet- 2x 60 cm analogne RGB LED trake (12V)- PVC cijev