Pred pár dňami sa tu riešil návrh stavového automatu, ktorý bude reagovať na tlačidlá a v závislosti od času sa aj sám vypne. Vtedy som spomenul knižnicu, ktorá má v sebe všetko toto už hotové.
https://github.com/jonblack/arduino-fsm
Ku knižnici sú aj nejaké demá pribalené, ale už tradične obsahujú chyby. Tak som dve demá opravil a dopísal ešte jedno, ktoré lepšie ukáže možnosti knižnice.
1. blink
Toto je v podstate variácia na blink príklad. Sú zadefinované dva stavy a v loop funkcii sa samé prepínajú. Pôvodné demo vôbec nefungovalo, lebo zabudol svoj FSM inicializovať.
https://github.com/RoboUlbricht/arduino ... ght_switch
2. timed transition
Tu sa autor snažil o nasledovnú vec. Tlačítkom zapnúť LED a tlačítkom ju aj vypnúť. Ale pridal ešte jeden zaujímavý moment. Po nejakom čase nečinnosti sa LED sama vypla. V deme nemal ošetrené zákmity, takže nechápem, ako to vlastne bez ošetrenia zákmitov testoval u seba.
https://github.com/RoboUlbricht/arduino ... _switchoff
3. timed transition with LED bar
Toto som napísal podľa druhého príkladu a pridal ešte 8 LED diód, aby vytvorili stĺpcový graf (viď priložený obrázok), ktorý sa dá tlačidlom nastavovať. A po období nečinnosti sa všetko zase vypne. Pričom čas nečinnosti závisí od počtu svietiacich diód. To už nie je taká sranda robiť ručne a výsledný kód by nemal tých pár riadkov, čo má pomocou knižnice.
Na tomto príklade vidno, že sa pomocou knižnice dajú robiť celkom zložité stavové automaty, iba musíte trochu popremýšľať, kam presne umiestnite callback funkcie, ktoré vykonajú samotné akcie.
https://github.com/RoboUlbricht/arduino ... med_ledbar
FSM (Finite State Machine) pre Arduino
Moderátor: Moderátori
- roboulbricht
- Stály člen
- Príspevky: 156
- Dátum registrácie: 07 Jan 2015, 12:01
- Bydlisko: Banská Bystrica
- Vek: 54
- Kontaktovať používateľa:
FSM (Finite State Machine) pre Arduino
0
Arduino tools: AVR Timer Calculator, AVR Register Table
YouTube: Arduino
Moja hudba: SoundCloud, MuseScore
YouTube: Arduino
Moja hudba: SoundCloud, MuseScore
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 4 Odpovedí
- 848 Zobrazení
-
Posledný príspevok od používateľa lucky62
-
- 20 Odpovedí
- 770 Zobrazení
-
Posledný príspevok od používateľa jankrizan
-
- 11 Odpovedí
- 953 Zobrazení
-
Posledný príspevok od používateľa mirosne
-
- 10 Odpovedí
- 314 Zobrazení
-
Posledný príspevok od používateľa budvar10
-
- 3 Odpovedí
- 3976 Zobrazení
-
Posledný príspevok od používateľa jankrizan