Indholdsfortegnelse:

Statsmaskine og multitasking på Arduino med SPI -udvidere: 3 trin
Statsmaskine og multitasking på Arduino med SPI -udvidere: 3 trin

Video: Statsmaskine og multitasking på Arduino med SPI -udvidere: 3 trin

Video: Statsmaskine og multitasking på Arduino med SPI -udvidere: 3 trin
Video: KUKA.PalletTech Palletizing Software Webinar 2024, Juli
Anonim
Statsmaskine og multitasking på Arduino med SPI -udvidere
Statsmaskine og multitasking på Arduino med SPI -udvidere

I sidste uge bad jeg om at oprette et system til at styre fyrværkeri med en arduino. Det havde brug for omkring 64 output til at kontrollere brande. En måde at gøre det på er at bruge IC -udvidere. Så der findes 2 løsninger:

- en I2C -ekspander, men den har brug for inverter, når du tænder for IC'en (se min tidligere instruerbare på endelige tilstandsmaskine), fordi alle output går hurtigt ON og OFF: et problem med fyrværkeri.

-en SPI også let at køre og uden problemer med at tænde.

Så jeg besluttede mig for at studere denne form for ekspandere. Jeg bruger også en statsmaskine med multitasking til at styre digitale 16 I/O og 2 analoge udgange. Dette kort er designet til at styre automatiseringssystemer som en PLC.

Jeg har også undersøgt forskellene og oversættelsen mellem tegningerne af tilstandsdiagrammet og en anden graf, der er tungt brugt i automatisering: SFC (Sequential Function Chart) baseret på de tidligere Petri -net.

da.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Trin 1: Kortene og kredsløbene

Kortene og kredsløbene
Kortene og kredsløbene
Kortene og kredsløbene
Kortene og kredsløbene
Kortene og kredsløbene
Kortene og kredsløbene

Jeg bruger en arduino uno og 2 typer DIL -chips:

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

-den MCP4921, DAC 12 bits, 0/5V

Denne IC er meget billig og pålidelig og også meget let at linke og programmere. På skemaerne brugte jeg nogle ekstra komponenter som afkoblingskondensatorer, nedtrækningsmodstande til indgangene.

Trin 2: Programmet til at køre en multitask -tilstandsmaskine

Programmet til at køre en multitask -tilstandsmaskine
Programmet til at køre en multitask -tilstandsmaskine
Programmet til at køre en multitask -tilstandsmaskine
Programmet til at køre en multitask -tilstandsmaskine

Den globale idé er at styre digital I/O og i mellemtiden starte en fade ON/OFF -effekt på lysdioder, der er tilsluttet begge analoge udgange.

En anden ting, jeg gør med vilje den separate forbindelse af CS -benene (chip select) for at have flere muligheder for mere IC på SPI -bussen. Så jeg brugte:

- et særligt bibliotek til statsmaskinen

-et særligt bibliotek til MCP23S17

-IKKE noget specielt bibliotek til MCP4921, CS og SPI -forbindelsen soft er "praktisk" udført.

Du kan se på billederne oversættelsen mellem den forventede statsmaskine og SFC (også kaldet GRAFCET eller gr7 på fransk). Nogle fælles udtryk: samstemmende tilstande, multitask og indkapsling.

Jeg giver bibliotekerne og kildekoden mange kommentarer. For at læse og forstå det skal du også læse tilstandsdiagrammet eller SFC på samme tid.

Trin 3: Afslutning

Det virker!!

Når du tænder systemet, venter du et par sekunder og bruger derefter ekspanderen (tid til at starte SPI -bussen).

Systemet reagerer meget hurtigt, og du skal oprette et power interface -kort, hvis du vil styre hvilken som helst maskine. Se mine tidligere instruktioner, det er meget let !!

Tak for meget interessante og fungerende selvstudier over hele verden.

Manu4371.

Anbefalede: