Taula de continguts:
- Pas 1: les cartes i els circuits
- Pas 2: el programa per executar una màquina d'estat multitarea
- Pas 3: per concloure
Vídeo: State Machine i multitarea a Arduino amb expansors SPI: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
La setmana passada demanava crear un sistema per pilotar focs artificials amb un arduino. Necessitava unes 64 sortides per controlar els focs. Una manera de fer-ho és fer servir expansors IC. Per tant, hi ha dues solucions disponibles:
- Un expansor I2C, però que necessita inversor quan enceneu l’IC (vegeu la meva instrucció prèvia a la màquina d’estats finits) perquè totes les sortides s’activen i s’apaguen ràpidament: un problema amb els focs artificials.
-un SPI també fàcil d’executar i sense cap problema a l’encesa.
Així que vaig decidir estudiar aquest tipus d’expansors. També faig servir una màquina d’estats amb multitarea per controlar 16 E / S digitals i 2 sortides analògiques. Aquesta targeta està dissenyada per controlar sistemes d'automatització com un PLC.
També vaig estudiar les diferències i la traducció entre els dibuixos del diagrama d’estats i un altre gràfic molt utilitzat en automatització: el SFC (Sequential Function Chart) basat en les antigues xarxes Petri.
en.wikipedia.org/wiki/Sequential_function_…
fr.wikipedia.org/wiki/Grafcet
Pas 1: les cartes i els circuits
Faig servir un arduino uno i 2 tipus de xips DIL:
- El MCP23S17, 2 x 16 expansor d'E / S controlat amb SPI
-el MCP4921, DAC de 12 bits, 0 / 5V
Aquests IC són molt barats i fiables i també són molt fàcils d’enllaçar i programar. Als esquemes he utilitzat alguns components addicionals com condensadors de desacoblament, resistències desplegables per a les entrades.
Pas 2: el programa per executar una màquina d'estat multitarea
La idea global és controlar les E / S digitals i, mentrestant, llançar efectes de desactivació / desactivació dels LED connectats a les dues sortides analògiques.
Una altra cosa, faig a propòsit la connexió separada dels pins CS (xip select) per tenir més possibilitats de més IC al bus SPI. Així que he utilitzat:
- una biblioteca especial per a la màquina estatal
-una biblioteca especial per a l'MCP23S17
-No hi ha cap biblioteca especial per a l'MCP4921, el CS i la connexió SPI suau són "útils".
Podeu veure a les imatges la traducció entre la màquina d'estats esperada i SFC (també anomenada GRAFCET o gr7 en francès). Alguns termes comuns: estats concurrents, multitarea i encapsulació.
Proporciono moltes biblioteques i el codi font amb molts comentaris. Per llegir-lo i entendre’l, també heu de llegir alhora el diagrama d’estats o el SFC.
Pas 3: per concloure
Funciona!!
Quan engegueu el sistema, espereu uns segons i, a continuació, utilitzeu l'expansor (temps per iniciar el bus SPI).
El sistema té reaccions molt ràpides i heu de crear una targeta d’interfície d’alimentació si voleu controlar qualsevol màquina. Veure els meus instructables anteriors, és molt fàcil !!
Agraïm tutorials molt interessants i que treballen a tot el món.
Manu4371.
Recomanat:
State Machine a Arduino: un semàfor per a vianants: 6 passos (amb imatges)
State Machine a Arduino: un semàfor per a vianants: hey allà, us mostraré com programar un semàfor per a vianants per a Arduino en C ++ amb una màquina d’estats finits mitjançant les eines YAKINDU Statechart Tools. Això demostrarà la potència de les màquines estatals i es pot utilitzar com a pla per a més
Pantalla LCD I2C / IIC - Utilitzeu un LCD SPI a la pantalla LCD I2C mitjançant el mòdul SPI a IIC amb Arduino: 5 passos
Pantalla LCD I2C / IIC | Utilitzeu un LCD SPI a la pantalla LCD I2C Utilitzant el mòdul SPI a IIC amb Arduino: Hola, ja que un SPI LCD 1602 normal té massa cables per connectar-se, de manera que és molt difícil connectar-lo amb arduino, però hi ha un mòdul disponible al mercat. converteix la pantalla SPI en pantalla IIC, de manera que només heu de connectar 4 cables
Arduino PLC 32 I / O + State Machine + SCADA o HMI: 8 passos
Arduino PLC 32 I / O + State Machine + SCADA o HMI: moltes maneres de programar, controlar i supervisar un sistema industrial amb arduino
SPI preliminar * al Pi: comunicar-se amb un acceleròmetre de 3 eixos SPI mitjançant un Raspberry Pi: 10 passos
SPI preliminar * al Pi: Comunicar-se amb un acceleròmetre de 3 eixos SPI utilitzant un Raspberry Pi: guia pas a pas sobre com configurar Raspbian i comunicar-se amb un dispositiu SPI mitjançant la biblioteca SPI bcm2835 (NO està petita). molt preliminar … Necessito afegir millors imatges de connexió física i treballar alguns codis incòmodes
Altímetre Arduino amb BMP i SPI o I2C OLED: 5 passos
Altímetre Arduino amb BMP i SPI o I2C OLED: fa temps que busco altímetre i temperatura mitjançant un únic sensor i el mostro a OLED basat en SPI. Com que no trobava res precís, vaig pensar a construir-ne el meu mitjançant la biblioteca U8glib. Hi ha un tutorial a youtub