Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Čau! Ukážu vám, jak naprogramovat semafor pro chodce pro Arduino v C ++ pomocí stroje s konečným stavem pomocí nástrojů YAKINDU Statechart Tools. Toto bude demonstrovat sílu stavových strojů a může být použito jako plán pro další projekty.
Zásoby
Potřebujete pouze Arduino, některá tlačítka, LED diody, propojku a odpory.
Hardware
- 2x tlačítko
- 2x semafory nebo můžete použít LED s rezistory 220 Ohm
- 2x 10k Ohm odpory
- Prkénko
- Skokan
- Arduino Uno/Mega (nebo jakýkoli jiný, který získal alespoň 8 GPIO)
Software
- Nástroje YAKINDU Statechart
- Eclipse C ++ IDE pro Arduino
Krok 1: Definujte, jak to funguje: Semafor pro chodce
Nejprve musíme určit, jak by měl fungovat semafor pro chodce. Pokusil jsem se shrnout body odrážky:
- Používají se dva semafory - jeden pro auta, druhý pro chodce
- Semafor lze zapnout pomocí tlačítka
- Chodec může požádat o přechod přes ulici stisknutím tlačítka
- Vypnutý semafor je indikován blikáním obou žlutých LED diod
- Po zapnutí čeká semafor v nouzovém režimu 10 sekund
- Po nouzovém režimu mají automobily vždy zelenou fázi, dokud chodec nezačne požadavek
- Žádost chodce o přechod je indikována přepínáním žluté LED
Kromě toho existují určité časové události v závislosti na způsobu fungování semaforu.
Krok 2: Vybudujte obvod
Začněme nastavovat obvod. V mém příkladu, jak vidíte na náhledu, jsem použil Arduino Mega 2560, ale každé druhé Arduino s alespoň osmi GPIO by mělo být v pořádku. Navíc jsem na Amazonu koupil nějaké 5V semafory. Stačí vyhledat semafor Arduino. Jinak můžete jednoduše použít šest různých LED diod. Kromě toho potřebujete dvě tlačítka a dva 10k Ohm odpory.
Tři levé LED diody se používají pro automobilový provoz a tři pravé LED pro chodce, kde žlutá může indikovat požadavek.
Krok 3: Vytvoření stavového stroje
Jak tedy vidíte, existují dva hlavní stavy se složenými členy - stav zapnuto a vypnuto. Mezi oběma stavy můžete přepínat pomocí události onOff, která je připojena k tlačítku ON/OFF. V počátečním stavu, ve vypnutém stavu, obě žluté LED diody začnou blikat každou sekundu. Jakmile se semafor zapne, začne v bezpečném místě. Po 10 sekundách bude zpracováno typické chování semaforů. Ve stavu StreetPrepare se rozsvítí červená a žlutá LED a po dalších 2 sekundách se semafor rozsvítí zeleně. Od této chvíle státní stroj čeká na událost chodec, která je připojena k druhému tlačítku. Po odeslání události bude požadavek indikován přepínáním žluté LED každou sekundu ve stavu PedWating. O 7 sekund později se semafor přepne nejprve na žlutou a poté na červenou, dokud chodci nedostanou signál, aby šli do stavu PedestrianGreen. Poté se aktivuje PedestrianRed a cyklus se opakuje. To lze přerušit pouze opětovným vypnutím semaforu.
Krok 4: Spuštění příkladu
Krok 5: Vygenerovaný kód C ++
Vygenerovaný kód C ++ je klasickým přepínačem, který zvládne logiku stavového stroje. Toto je jen úryvek kódu, jak to vypadá:
void TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1 přestávka; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); přestávka; } výchozí: break; } clearInEvents (); }
Krok 6: Získejte příklad
Celý příklad je připraven ke kompilaci a spuštění. Dodává se s nástroji YAKINDU Statechart Tools, které jsou zdarma pro nekomerční použití. Po stažení můžete příklad importovat přímo do nástroje:
Soubor -> Nový -> Příklad -> Příklady stavového diagramu YAKINDU -> Další -> Semafor (C ++) pro Arduino
> ZDE si můžete stáhnout YAKINDU Statechart Tools <<
Můžete začít s 30denní zkušební verzí. Poté musíte získat licenci, která je pro nekomerční použití zdarma!
Doporučuje:
Hluk semaforu - 3D tisk DIY: 8 kroků (s obrázky)
Semafor hluku - 3D tisk DIY: Všichni lidé chtějí pracovat v tichosti a je důležité mít dobré pracovní prostředí. Ticho vede k efektivní práci. Udělali jsme tento projekt, abychom dosáhli tohoto návrhu. Hlukový semafor se skládá z „semaforu“, který ovládá dB
State Machine a multitasking na Arduinu s rozšiřovači SPI: 3 kroky
State Machine and Multitasking on Arduino With SPI Expanders: Minulý týden jsem žádal o vytvoření systému pro pilotování ohňostrojů s arduinem. K ovládání požárů bylo potřeba asi 64 výstupů. Jedním ze způsobů, jak to udělat, je použít expandéry IC. K dispozici jsou tedy 2 řešení:- expandér I2C, který však potřebuje měnič, když
Arduino PLC 32 I/O+State Machine+SCADA nebo HMI: 8 kroků
Arduino PLC 32 I/O+State Machine+SCADA nebo HMI: Mnoho způsobů programování, ovládání a dohledu nad průmyslovým systémem pomocí arduina
Systém 4směrného semaforu s použitím 5 bezdrátových modulů Arduinos a 5 NRF24L01: 7 kroků (s obrázky)
4směrný semaforový systém využívající 5 bezdrátových modulů Arduinos a 5 NRF24L01: Před malou chvílí jsem vytvořil instruktáž podrobně popisující jeden pár semaforů na prkénku. Vytvořil jsem také další instruktážní nástroj ukazující základní rámec pro používání bezdrátového modulu NRF24L01. Přemýšlel jsem! Existuje docela dost
Jak vyrobit subwoofer na semaforu: 6 kroků (s obrázky)
Jak vyrobit subwoofer na semaforu: NEKRADTE semafor &. Jako řidič a chodec vám říkám, abyste lépe využili usměrňování provozu a poté otřásli domem nebo autem hudbou podle vašeho výběru. Ale pro mě bylo štěstí, že jsem v mém next-doo našel malé červené světlo