Table des matières:

State Machine et multitâche sur Arduino avec les extensions SPI : 3 étapes
State Machine et multitâche sur Arduino avec les extensions SPI : 3 étapes

Vidéo: State Machine et multitâche sur Arduino avec les extensions SPI : 3 étapes

Vidéo: State Machine et multitâche sur Arduino avec les extensions SPI : 3 étapes
Vidéo: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, Juillet
Anonim
State Machine et multitâche sur Arduino avec des extensions SPI
State Machine et multitâche sur Arduino avec des extensions SPI

La semaine dernière, je demandais de créer un système pour piloter des feux d'artifice avec un arduino. Il fallait environ 64 sorties pour contrôler les incendies. Une façon de le faire est d'utiliser des expanseurs IC. Donc 2 solutions s'offrent à vous:

- un expandeur I2C mais il a besoin d'un onduleur lorsque vous allumez le circuit intégré (voir mon précédent instructable sur la machine à états finis) car toutes les sorties s'allument et s'éteignent rapidement: un problème avec les feux d'artifice.

-un SPI également facile à exécuter et sans problème à la mise sous tension.

J'ai donc décidé d'étudier ce genre d'expandeurs. J'utilise également une machine à états avec multitâche pour contrôler 16 E/S numériques et 2 sorties analogiques. Cette carte est conçue pour contrôler des systèmes d'automatisation comme un automate programmable.

J'ai également étudié les différences et la traduction entre les dessins du diagramme d'état et un autre graphe très utilisé en automatisme: le SFC (Sequential Function Chart) basé sur les anciens réseaux de Petri.

en.wikipedia.org/wiki/Sequential_function_…

fr.wikipedia.org/wiki/Grafcet

Étape 1: Les Cartes et les Circuits

Les Cartes et les Circuits
Les Cartes et les Circuits
Les Cartes et les Circuits
Les Cartes et les Circuits
Les Cartes et les Circuits
Les Cartes et les Circuits

J'utilise un arduino uno et 2 types de puces DIL:

- le MCP23S17, expandeur 2 x 16 E/S piloté par SPI

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

Ces circuits intégrés sont très bon marché et fiables et également très faciles à lier et à programmer. Sur les schémas, j'ai utilisé des composants supplémentaires comme des condensateurs de découplage, des résistances pull-down pour les entrées.

Étape 2: Le programme pour exécuter une machine d'état multitâche

Le programme pour exécuter une machine d'état multitâche
Le programme pour exécuter une machine d'état multitâche
Le programme pour exécuter une machine d'état multitâche
Le programme pour exécuter une machine d'état multitâche

L'idée globale est de contrôler les E/S numériques et en attendant de lancer un fondu d'effets ON/OFF sur les LEDS connectées aux deux sorties analogiques.

Autre chose, je fais exprès la connexion séparée des pins CS (chip select) pour avoir plus de possibilités vers plus d'IC sur le bus SPI. J'ai donc utilisé:

- une bibliothèque spéciale pour la machine d'état

-une bibliothèque spéciale pour le MCP23S17

-AUCUNE librairie spéciale pour le MCP4921, le CS et le soft de connexion SPI n'est "pratique" fait.

Vous pouvez voir sur les photos la traduction entre la machine à états attendue et le SFC (appelé aussi GRAFCET ou gr7 en français). Quelques termes courants: états simultanés, multitâche et encapsulation.

Je fournis les bibliothèques et le code source avec beaucoup de commentaires. Pour le lire et le comprendre, vous devez également lire en même temps le diagramme d'état ou le SFC.

Étape 3: Pour conclure

Ça marche!!

Lorsque vous mettez le système sous tension, attendez quelques secondes puis utilisez l'extenseur (le temps d'initier le bus SPI).

Le système a des réactions très rapides et vous devez créer une carte d'interface d'alimentation si vous voulez contrôler n'importe quelle machine. Voir mes instructables précédentes, c'est très facile !!

Merci aux tutoriels très intéressants et fonctionnels partout dans le monde.

Manu4371.

Conseillé: