Sommario:
- Step 1: Le Carte e i Circuiti
- Passaggio 2: il programma per eseguire una macchina a stati multitasking
- Passaggio 3: per concludere
Video: Macchina a stati e multitasking su Arduino con espansioni SPI: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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:
Macchina a stati finiti su un MSP430: 6 passaggi
Finite State Machine su un MSP430: ti mostrerò come programmare un Launchpad MSP430G2 con Finite State Machines (FSM) utilizzando YAKINDU Statechart Tools direttamente in Texas Instruments Code Composer Studio. Questo tutorial contiene sei passaggi: Installazione di YAKINDU Statechart Tools come
Arduino Otto Robot con macchina a stati: 4 passaggi
Arduino Otto Robot With State Machine: Panoramica del progettoIn questo progetto, voglio mostrarvi un modo di programmare Otto Robot, che è un robot fai-da-te basato su Arduino. Utilizzando YAKINDU Statechart Tools (gratuito per non commerciali) possiamo facilmente utilizzare macchine a stati per modellare graficamente il comportamento
Orologio digitale su Arduino utilizzando una macchina a stati finiti: 6 passaggi
Orologio digitale su Arduino utilizzando una macchina a stati finiti: Ehi, ti mostrerò come creare un orologio digitale con YAkinDU Statechart Tools ed eseguirlo su un Arduino, che utilizza uno scudo per tastiera LCD. Il modello originale del digitale orologio è stato preso da David Harel. Ha pubblicato un articolo su
Arduino HMI con macchine a stati: 9 passaggi
Arduino HMI utilizzando macchine a stati: in questo Instructable, ti mostrerò come utilizzare gli strumenti YAkinDU Statechart per realizzare un HMI semplice ed espandibile utilizzando uno scudo tastiera LCD 16x2 per Arduino. Le macchine a stati finiti (FSM) sono un potente modello di progettazione da sviluppare macchina umana complessa
Arduino PLC 32 I/O+Macchina a stati+SCADA o HMI: 8 passaggi
Arduino PLC 32 I/O+Macchina a stati+SCADA o HMI: tanti modi per programmare, controllare e supervisionare un sistema industriale con arduino