Obsah:

State Machine a multitasking na Arduinu s rozšiřovači SPI: 3 kroky
State Machine a multitasking na Arduinu s rozšiřovači SPI: 3 kroky

Video: State Machine a multitasking na Arduinu s rozšiřovači SPI: 3 kroky

Video: State Machine a multitasking na Arduinu s rozšiřovači SPI: 3 kroky
Video: How to Use Millis to Master Arduino Multi-tasking 2024, Červenec
Anonim
State Machine a multitasking na Arduinu s rozšiřovači SPI
State Machine a multitasking na Arduinu s rozšiřovači SPI

Minulý týden jsem žádal o vytvoření systému pro pilotování ohňostrojů s arduino. 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ý ale potřebuje střídač, když zapnete IC (viz můj předchozí návod na stroji s konečným stavem), protože všechny výstupy se rychle zapínají a vypínají: problém s ohňostrojem.

-SPI také snadno běží a bez problémů při zapnutí.

Rozhodl jsem se tedy studovat tento druh expandérů. K ovládání digitálních 16 I/O a 2 analogových výstupů používám také stavový automat s multitaskingem. Tato karta je určena k řízení automatizačních systémů, jako je PLC.

Také jsem studoval rozdíly a překlad mezi výkresy stavového diagramu a dalšího grafu používaného v automatizaci: SFC (Sequential Function Chart) na základě dřívějších Petriho sítí.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Krok 1: Karty a obvody

Karty a obvody
Karty a obvody
Karty a obvody
Karty a obvody
Karty a obvody
Karty a obvody

Používám arduino uno a 2 typy DIL čipů:

- expandér MCP23S17, 2 x 16 I/O ovládaný SPI

-MCP4921, DAC 12 bitů, 0/5V

Tyto IC jsou velmi levné a spolehlivé a také velmi snadno propojitelné a programovatelné. Na schématech jsem použil některé další komponenty, jako jsou oddělovací kondenzátory, stahovací rezistory pro vstupy.

Krok 2: Program pro spuštění víceúlohového stavového stroje

Program pro spuštění víceúlohového stavového stroje
Program pro spuštění víceúlohového stavového stroje
Program pro spuštění víceúlohového stavového stroje
Program pro spuštění víceúlohového stavového stroje

Globální myšlenkou je ovládat digitální I/O a mezitím spustit efekty FAD ON/OFF na LED diodách připojených k oběma analogovým výstupům.

Další věc, účelově dělám oddělené připojení CS pinů (chip select), abych měl více možností více IC na sběrnici SPI. Použil jsem tedy:

- speciální knihovna pro stavový stroj

-speciální knihovna pro MCP23S17

-Žádná speciální knihovna pro MCP4921, CS a SPI připojení soft není hotová.

Na obrázcích můžete vidět překlad mezi očekávaným stavovým automatem a SFC (také francouzsky GRAFCET nebo gr7). Některé běžné termíny: souběžné stavy, multitasking a zapouzdření.

Poskytuji knihovnám a zdrojovému kódu spoustu komentářů. Chcete -li jej přečíst a porozumět mu, musíte si zároveň přečíst stavový diagram nebo SFC.

Krok 3: Na závěr

Funguje to!!

Když zapnete systém, počkejte několik sekund a poté použijte expandér (čas pro spuštění sběrnice SPI).

Systém má velmi rychlé reakce a pokud chcete ovládat jakýkoli stroj, musíte si vytvořit kartu napájecího rozhraní. Viz moje předchozí instrukce, je to velmi snadné !!

Díky velmi zajímavým a fungujícím tutoriálům po celém světě.

Manu4371.

Doporučuje: