Innholdsfortegnelse:

State Machine og Multitasking på Arduino med SPI -utvidere: 3 trinn
State Machine og Multitasking på Arduino med SPI -utvidere: 3 trinn

Video: State Machine og Multitasking på Arduino med SPI -utvidere: 3 trinn

Video: State Machine og Multitasking på Arduino med SPI -utvidere: 3 trinn
Video: Lecture 19: Designing the Remote Control Fan State Machine 2024, Juli
Anonim
State Machine og Multitasking på Arduino med SPI -utvidere
State Machine og Multitasking på Arduino med SPI -utvidere

I forrige uke ba jeg om å lage et system for pilotering av fyrverkeri med en arduino. Den trengte om lag 64 utganger for å kontrollere brannene. En måte å gjøre det på er å bruke IC -utvidere. Så to løsninger er tilgjengelige:

- en I2C -ekspander, men den trenger inverter når du slår på IC (se min forrige instruksjonsmaskin om endelig maskin) fordi alle utgangene går raskt PÅ og AV: et problem med fyrverkeri.

-en SPI også enkel å kjøre og uten problemer med å slå på.

Så jeg bestemte meg for å studere denne typen utvidere. Jeg bruker også en statlig maskin med multitasking for å kontrollere digitale 16 I/O og 2 analoge utganger. Dette kortet er designet for å kontrollere automatiseringssystemer som en PLS.

Jeg studerte også forskjellene og oversettelsen mellom tegningene av tilstandsdiagrammet og en annen graf som ble tungt brukt i automatisering: SFC (Sequential Function Chart) basert på de tidligere Petri -nettene.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Trinn 1: Kortene og kretsene

Kortene og kretsene
Kortene og kretsene
Kortene og kretsene
Kortene og kretsene
Kortene og kretsene
Kortene og kretsene

Jeg bruker en arduino uno og 2 typer DIL -brikker:

- MCP23S17, 2 x 16 I/O -ekspander kontrollert med SPI

-MCP4921, DAC 12 bits, 0/5V

Disse IC er veldig billige og pålitelige og også veldig enkle å koble til og programmere. På skjemaene brukte jeg noen ekstra komponenter som avkoblingskondensatorer, nedtrekksmotstander for inngangene.

Trinn 2: Programmet for å kjøre en multitask -tilstandsmaskin

Programmet for å kjøre en multitask -tilstandsmaskin
Programmet for å kjøre en multitask -tilstandsmaskin
Programmet for å kjøre en multitask -tilstandsmaskin
Programmet for å kjøre en multitask -tilstandsmaskin

Den globale ideen er å kontrollere digital I/O og i mellomtiden lansere en fade ON/OFF -effekt på lysdioder som er koblet til begge analoge utgangene.

En annen ting, jeg gjør med vilje den separate tilkoblingen til CS -pinnene (chip select) for å ha flere muligheter til mer IC på SPI -bussen. Så jeg brukte:

- et spesielt bibliotek for statsmaskinen

-et spesielt bibliotek for MCP23S17

-IKKE noe spesielt bibliotek for MCP4921, CS og SPI -tilkoblingen myk er "praktisk" gjort.

Du kan se på bildene oversettelsen mellom den forventede tilstandsmaskinen og SFC (også kalt GRAFCET eller gr7 på fransk). Noen vanlige begreper: samstemte tilstander, multitask og innkapsling.

Jeg gir bibliotekene og kildekoden mange kommentarer. For å lese og forstå det må du samtidig lese tilstandsdiagrammet eller SFC.

Trinn 3: For å konkludere

Det fungerer!!

Når du slår på systemet, venter du i noen sekunder og bruker deretter ekspanderen (tid til å starte SPI -bussen).

Systemet reagerer veldig raskt, og du må lage et strømgrensesnittkort hvis du vil kontrollere hvilken maskin som helst. Se mine tidligere instrukser, det er veldig enkelt!

Takk for veldig interessante og fungerende opplæringsprogrammer over hele verden.

Manu4371.

Anbefalt: