Sommario:

Macchina a stati e multitasking su Arduino con espansioni SPI: 3 passaggi
Macchina a stati e multitasking su Arduino con espansioni SPI: 3 passaggi

Video: Macchina a stati e multitasking su Arduino con espansioni SPI: 3 passaggi

Video: Macchina a stati e multitasking su Arduino con espansioni SPI: 3 passaggi
Video: StackyPi Review: A Raspberry Pi Zero Sized RP2040 Board 2024, Dicembre
Anonim
State Machine e Multitasking su Arduino con Expander SPI
State Machine e Multitasking su Arduino con Expander SPI

La scorsa settimana, stavo chiedendo di creare un sistema per pilotare i fuochi d'artificio con un arduino. Aveva bisogno di circa 64 uscite per controllare gli incendi. Un modo per farlo è utilizzare gli espansori IC. Quindi sono disponibili 2 soluzioni:

- un espansore I2C ma necessita di inverter quando si accende l'IC (vedi la mia precedente istruzione sulla macchina a stati finiti) perché tutte le uscite si accendono e si spengono rapidamente: un problema con i fuochi d'artificio.

-un SPI anche facile da eseguire e senza problemi all'accensione.

Così ho deciso di studiare questo tipo di espansori. Utilizzo anche una macchina a stati con multitasking per controllare 16 I/O digitali e 2 uscite analogiche. Questa scheda è progettata per controllare sistemi di automazione come un PLC.

Ho anche studiato le differenze e la traduzione tra i disegni del diagramma di stato e un altro grafico pesantemente utilizzato in automazione: l'SFC (Sequential Function Chart) basato sulle ex reti di Petri.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Step 1: Le Carte e i Circuiti

Le carte e i circuiti
Le carte e i circuiti
Le carte e i circuiti
Le carte e i circuiti
Le carte e i circuiti
Le carte e i circuiti

Uso un arduino uno e 2 tipi di chip DIL:

- l'MCP23S17, espansore 2 x 16 I/O controllato con SPI

-l'MCP4921, DAC 12 bit, 0/5V

Questi circuiti integrati sono molto economici e affidabili e anche molto facili da collegare e programmare. Negli schemi ho utilizzato alcuni componenti aggiuntivi come condensatori di disaccoppiamento, resistori di pull-down per gli ingressi.

Passaggio 2: il programma per eseguire una macchina a stati multitasking

Il programma per eseguire una macchina a stati multitasking
Il programma per eseguire una macchina a stati multitasking
Il programma per eseguire una macchina a stati multitasking
Il programma per eseguire una macchina a stati multitasking

L'idea globale è quella di controllare l'I/O digitale e nel frattempo lanciare un effetto di dissolvenza ON/OFF sui LED collegati ad entrambe le uscite analogiche.

Un'altra cosa, faccio apposta la connessione separata dei pin CS (chip select) per avere più possibilità di più IC sul bus SPI. Quindi ho usato:

- una biblioteca speciale per la macchina dello stato

-una libreria speciale per MCP23S17

-NESSUNA libreria speciale per l'MCP4921, il CS e il software di connessione SPI è "a portata di mano".

Puoi vedere nelle foto la traduzione tra la macchina a stati prevista e SFC (chiamato anche GRAFCET o gr7 in francese). Alcuni termini comuni: stati concorrenti, multitasking e incapsulamento.

Fornisco alle librerie e al codice sorgente molti commenti. Per leggerlo e comprenderlo, è necessario leggere contemporaneamente anche il diagramma di stato o l'SFC.

Passaggio 3: per concludere

Funziona!!

Quando accendi il sistema, attendi qualche secondo e poi usi l'espansore (tempo per avviare il bus SPI).

Il sistema ha reazioni molto rapide ed è necessario creare una scheda di interfaccia di potenza se si desidera controllare qualsiasi macchina. Vedi le mie istruzioni precedenti, è molto facile !!

Grazie a tutorial molto interessanti e funzionanti in tutto il mondo.

Manu4371.

Consigliato: