Tabla de contenido:

State Machine y multitarea en Arduino con expansores SPI: 3 pasos
State Machine y multitarea en Arduino con expansores SPI: 3 pasos

Video: State Machine y multitarea en Arduino con expansores SPI: 3 pasos

Video: State Machine y multitarea en Arduino con expansores SPI: 3 pasos
Video: Best Programming Languages #programming #coding #javascript 2024, Mes de julio
Anonim
State Machine y multitarea en Arduino con expansores SPI
State Machine y multitarea en Arduino con expansores SPI

La semana pasada, estaba pidiendo crear un sistema para pilotar fuegos artificiales con un arduino. Necesitaba alrededor de 64 salidas para controlar los incendios. Una forma de hacerlo es utilizar expansores IC. Entonces hay 2 soluciones disponibles:

- un expansor I2C pero necesita un inversor cuando enciende el IC (vea mi instructable anterior sobre la máquina de estado finito) porque todas las salidas se encienden y apagan rápidamente: un problema con los fuegos artificiales.

-un SPI también fácil de ejecutar y sin problemas de encendido.

Entonces decidí estudiar este tipo de expansores. También utilizo una máquina de estado con multitarea para controlar 16 E / S digitales y 2 salidas analógicas. Esta tarjeta está diseñada para controlar sistemas de automatización como un PLC.

También estudié las diferencias y la traducción entre los dibujos del diagrama de estado y otro gráfico muy utilizado en la automatización: el SFC (Sequential Function Chart) basado en las antiguas redes de Petri.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Paso 1: las cartas y los circuitos

Las cartas y los circuitos
Las cartas y los circuitos
Las cartas y los circuitos
Las cartas y los circuitos
Las cartas y los circuitos
Las cartas y los circuitos

Yo uso un arduino uno y 2 tipos de chips DIL:

- el MCP23S17, 2 expansores de 16 E / S controlados con SPI

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

Estos IC son muy baratos y fiables y también muy fáciles de vincular y programar. En los esquemas utilicé algunos componentes adicionales como condensadores de desacoplamiento, resistencias desplegables para las entradas.

Paso 2: el programa para ejecutar una máquina de estado multitarea

El programa para ejecutar una máquina de estado multitarea
El programa para ejecutar una máquina de estado multitarea
El programa para ejecutar una máquina de estado multitarea
El programa para ejecutar una máquina de estado multitarea

La idea global es controlar las E / S digitales y, mientras tanto, lanzar un efecto de atenuación ON / OFF en los LED conectados a ambas salidas analógicas.

Otra cosa, hago a propósito la conexión separada de los pines CS (selección de chip) para tener más posibilidades de más IC en el bus SPI. Entonces usé:

- una biblioteca especial para la máquina de estado

-una biblioteca especial para el MCP23S17

-Ninguna biblioteca especial para el MCP4921, el CS y el software de conexión SPI es "práctico" hecho.

Puede ver en las fotos la traducción entre la máquina de estado esperada y SFC (también llamado GRAFCET o gr7 en francés). Algunos términos comunes: estados concurrentes, multitarea y encapsulación.

Proporciono las bibliotecas y el código fuente con muchos comentarios. Para leerlo y comprenderlo, también debe leer al mismo tiempo el diagrama de estados o el SFC.

Paso 3: para concluir

¡¡Funciona!!

Cuando enciende el sistema, DEBE esperar unos segundos y luego usar el expansor (tiempo para iniciar el bus SPI).

El sistema tiene reacciones muy rápidas y necesita crear una tarjeta de interfaz de energía si desea controlar cualquier máquina. Vea mis instructivos anteriores, ¡es muy fácil!

Gracias a tutoriales muy interesantes y funcionales en todo el mundo.

Manu4371.

Recomendado: