Índice:

Máquina de estado e multitarefa no Arduino com expansores SPI: 3 etapas
Máquina de estado e multitarefa no Arduino com expansores SPI: 3 etapas

Vídeo: Máquina de estado e multitarefa no Arduino com expansores SPI: 3 etapas

Vídeo: Máquina de estado e multitarefa no Arduino com expansores SPI: 3 etapas
Vídeo: ESP32 com Arduino IDE - Programação Multi-Core - Pt2 2024, Julho
Anonim
Máquina de estado e multitarefa no Arduino com expansores SPI
Máquina de estado e multitarefa no Arduino com expansores SPI

Na semana passada, eu estava pedindo para criar um sistema para pilotar fogos de artifício com um arduino. Precisava de cerca de 64 saídas para controlar os incêndios. Uma maneira de fazer isso é usar expansores IC. Portanto, 2 soluções estão disponíveis:

- um expansor I2C, mas precisa de inversor quando você liga o IC (veja meu instrutivo anterior sobre máquina de estado finito) porque todas as saídas ligam e desligam rapidamente: um problema com fogos de artifício.

-um SPI também fácil de operar e sem problemas ao ligar.

Então decidi estudar esse tipo de expansor. Eu uso também uma máquina de estado com multitarefa para controlar 16 E / S digitais e 2 saídas analógicas. Este cartão é projetado para controlar sistemas de automação como um PLC.

Também estudei as diferenças e a translação entre os desenhos do diagrama de estado e outro gráfico bastante utilizado em automação: o SFC (Sequential Function Chart) baseado nas antigas redes de Petri.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Etapa 1: as cartas e os circuitos

As cartas e os circuitos
As cartas e os circuitos
As cartas e os circuitos
As cartas e os circuitos
As cartas e os circuitos
As cartas e os circuitos

Eu uso um arduino uno e 2 tipos de chips DIL:

- o expansor MCP23S17 2 x 16 I / O controlado com SPI

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

Esses IC são muito baratos e confiáveis e também muito fáceis de vincular e programar. No esquema, usei alguns componentes adicionais, como capacitores de desacoplamento, resistores pull-down para as entradas.

Etapa 2: o programa para executar uma máquina de estado multitarefa

O programa para executar uma máquina de estado multitarefa
O programa para executar uma máquina de estado multitarefa
O programa para executar uma máquina de estado multitarefa
O programa para executar uma máquina de estado multitarefa

A ideia global é controlar a E / S digital e, enquanto isso, lançar um efeito fade ON / OFF nos LEDS conectados às duas saídas analógicas.

Outra coisa, eu faço propositalmente a conexão separada dos pinos CS (chip select) para ter mais possibilidades de mais IC no barramento SPI. Então eu usei:

- uma biblioteca especial para a máquina de estado

- uma biblioteca especial para o MCP23S17

-Nenhuma biblioteca especial para o MCP4921, o CS e o software de conexão SPI é "prático" feito.

Você pode ver nas fotos a tradução entre a máquina de estados esperados e o SFC (também chamado de GRAFCET ou gr7 em francês). Alguns termos comuns: estados concorrentes, multitarefa e encapsulamento.

Eu forneço as bibliotecas e o código-fonte com muitos comentários. Para lê-lo e entendê-lo, você também deve ler ao mesmo tempo o diagrama de estado ou o SFC.

Etapa 3: para concluir

Funciona!!

Ao ligar o sistema, você deve esperar alguns segundos e então usar o expansor (tempo para iniciar o barramento SPI).

O sistema tem reações muito rápidas e você precisa criar uma placa de interface de energia se quiser controlar qualquer máquina. Veja meus instructables anteriores, é muito fácil !!

Obrigado aos tutoriais muito interessantes e úteis em todo o mundo.

Manu4371.

Recomendado: