Sadržaj:
- Pribor
- Korak 1: Definirajte kako to radi: Pješački semafor
- Korak 2: Izgradite krug
- Korak 3: Stvaranje državnog stroja
- Korak 4: Pokretanje primjera
- Korak 5: Generirani C ++ kod
- Korak 6: Uzmite primjer
Video: Državni stroj na Arduinu - pješački semafor: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Pozdrav! Pokazat ću vam kako programirati pješački semafor za Arduino u C ++ s konačnim strojem stanja pomoću YAKINDU alata za grafikone stanja. To će pokazati snagu državnih strojeva i može se koristiti kao nacrt za daljnje projekte.
Pribor
Potreban vam je samo Arduino, neki gumbi, LED diode, kratkospojnik i otpornici.
Hardver
- 2x tipkalo
- 2x semafora ili možete koristiti LED sa otpornicima od 220 ohma
- 2x 10k Ohm otpornika
- Oglasna ploča
- Džemper
- Arduino Uno/Mega (ili bilo koji drugi, koji ima najmanje 8 GPIO -ova)
Softver
- YAKINDU Alati za grafikone stanja
- Eclipse C ++ IDE za Arduino
Korak 1: Definirajte kako to radi: Pješački semafor
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 gumb
- Pješak može zatražiti prelazak ulice pritiskom na gumb
- Ugašeni semafor označava se treptanjem obje žute LED diode
- 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 5 semafora na Amazonu. Samo tražite Semafor Arduino. Inače, jednostavno možete 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 promet automobila, a tri desne LED diode za pješake, gdje žuta može označiti zahtjev.
Korak 3: Stvaranje državnog stroja
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 s gumbom ON/OFF. U početnom stanju, isključenom stanju, 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 dioda će se uključiti u stanju StreetPrepare, a semafor će zasvijetliti nakon još 2 sekunde. Od sada državni stroj čeka događaj pedestrianRequest, koji je povezan s drugim gumbom. 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 dok pješaci ne dobiju signal za prelazak u stanje pješaka. Nakon toga aktivira se 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 klasična je 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 (true1); pauza; } slučaj main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); pauza; } zadano: break; } clearInEvents (); }
Korak 6: Uzmite primjer
Cijeli je primjer spreman za sastavljanje i izvođenje. Dolazi s alatima YAKINDU Statechart Tools, besplatnim za nekomercijalnu uporabu. 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 uporabu!
Preporučeni:
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 LED diode od 5 mm (umjesto LED dioda od 10 mm)
Državni stroj i višezadaćnost na Arduinu sa SPI ekspanderima: 3 koraka
Državni stroj i višezadaćnost na Arduinu sa SPI ekspanderima: Prošli tjedan sam tražio stvaranje sustava za pilotiranje vatrometa s arduinom. Za kontrolu požara bilo mu je potrebno oko 64 izlaza. Jedan od načina za to je korištenje IC ekspandera. Dostupna su dakle dva rješenja:- I2C ekspander, ali treba pretvarač kad
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 koristio 3 LED diode za zasebno prikazivanje boja Crvena, Žuta i amper; Zelena, respektivno
Stroj za sviranje flaute na Arduinu: 10 koraka (sa slikama)
Stroj za svirače flaute na Arduinu: U ovom uputstvu pokušavam predstaviti projekt koji kombinira umjetnost s inženjeringom. Stroj koji svira flautu. Kontrolira bilješke pomoću Arduina. Na Arduinu se mogu programirati različite melodije ili pjesme koje Arduino svira na flauti. Ne postoji
Arduino PLC 32 I/O+državni stroj+SCADA ili HMI: 8 koraka
Arduino PLC 32 I/O+državni stroj+SCADA ili HMI: Mnogi načini programiranja, upravljanja i nadzora industrijskog sustava s arduinom