Electronique > Réalisations > Sequenceur 007 - Pro

Dernière mise à jour : 09/11/2014

Présentation

Ce séquenceur autonome permet d'activer ou de désactiver 64 sorties logiques de façon indépendante et à des instants bien précis définis à l'avance, à partir d'une séquence horaire enregistrée sur carte SD.

sequenceur_007_pcb_3d_a

Il met en oeuvre un PIC 18F46K22 et un lecteur de carte MMC/SD, ainsi que des registres à décalage de type 75HC595. Un simple fichier texte enregistré sur la carte SD indique les moments où les sorties doivent changer d'état. Ce fichier comporte autant de lignes que de changements d'états souhaités, chaque ligne comporte l'information horaire (moments où doivent avoir lieu les changements d'état) et les états individuels que doivent avoir les 64 sorties à cet instant précis. Le système peut gérer 255 séquences différentes, chacune pouvant comporter 127 pas de programme (ce nombre de pas peut être plus élevé, détails plus loin). Le démarrage d'une séquence peut se faire via un clavier à touches ou via une commande série RS232 (ou USB avec adaptateur USB/RS232).

Caractéristiques principales

Enregistrement des séquences : sur carte SD (système autonome)
Nombre de séquences max : 255
Nombre de sorties max : 64
Nombre maximal de pas par séquence en mode Lecture carte SD avec buffer, précision de 1/10 seconde (Nota 1) : 127
Nombre maximal de pas par séquence en mode Lecture carte SD au fil de l'eau, précision de 1 seconde (Nota 1) : 800
Durée maximale d'une séquence complète : 6500 secondes (108 minutes)
Déroulement séquence : en mode unique ou en boucle.
Démarrage séquence par clavier ou sur réception d'un ordre "série" (RS232-19200 bauds)
Mode debug : envoi possible sur la sortie Tx (port série) des actions en cours (format texte ASCII)
Nota 1 : détails dans le texte explicatif.

Avertissement

Le logiciel du PIC n'est pas mis à disposition gratuite dans sa version complète. En revanche, je mets à disposition gratuite une version bridée capable de piloter les quatre premières sorties, ce qui permet d'en évaluer le fonctionnement. Pour disposer du logiciel dans sa version complète (64 sorties), merci de me contacter.
Les fonctions "Lecture carte SD au fil de l'eau" et "Commande par port série" ne sont pas implémentées dans cette première version.

Schéma

Quelques circuits intégrés, ça ne peut à priori pas faire de mal.

sequenceur_007

Principe général
Chaque séquence est composée d'un certain nombre de lignes au format texte, enregistrées dans un fichier texte lui-même stocké sur une carte SD formatée en FAT16 ou FAT32. Chaque ligne (pas de séquence) comporte l'information horaire (moment où la ligne doit être exécutée) et l'état que doivent prendre les 64 sorties à cet instant précis. Par exemple, la ligne suivante indique que les 3 premières sorties seulements doivent être actives, 1,7 seconde après le démarrage de la séquence.
00017=1110000000000000000000000000000000000000000000000000000000000000
La ligne suivante quant à elle indique que seules les 8 dernières sorties doivent être actives au bout de 25,3 secondes.
00253=0000000000000000000000000000000000000000000000000000000011111111
Les informations horaires (à gauche du signe égal) sont données en dixièmes de seconde.
Il aurait été également possible (et même conseillé diront certains) d'enregistrer les informations de façon plus compacte. Les 64 états logiques des sorties prennent en effet moins de place dans le fichier si on les écrit au format hexa (8 octets - et donc 16 caractères hexa - suffisent). Mais au départ, ce système était destiné à quelqu'un qui ne voulait pas s'embêter avec le système hexa et préférait voir directement l'état des sorties, d'un simple coup d'oeil. Il est vrai que l'écriture en binaire est plus visuelle pour ce type d'action.

Modes de lecture
Il existe deux modes de lecture des séquences :
Le premier mode est préféré quand le nombre de pas de la séquence à exécuter ne dépasse pas 127.

Chargement, déclenchement et arrêt d'une séquence
Le chargement d'une séquence peut se faire de deux façons :
- par composition du numéro de séquence sur un clavier à touches (0 à 9 suivi de ENTER)
- par envoi d'un octet sur l'entrée Rx du PIC (numéro de la séquence compris entre 0 et 127).
Le démarrage de la séquence sélectionnée peut se faire de deux façons :
- par pression sur la touche START.
- par envoi d'un octet de valeur $FF sur l'entrée Rx du PIC.
Si la touche LOOP a été pressée avant démarrage de la séquence, la séquence est lue en boucle.
L'arrêt de la séquence en cours d'exécution peut se faire de deux façons :
- par pression sur la touche STOP
- par envoi d'un octet de valeur $FE sur l'entrée Rx du PIC.

Interface de sortie
Le schéma montre que les sorties sont de type TTL, sorties directes des registres à décalage 74HC595. La commande d'éléments de puissance (lampes, moteurs, électrovannes, etc) nécessite l'ajout d'une interface de puissance qui n'est pas représentée ici. Cette interface additionnelle dépendra bien sûr des courants et tensions à commuter. Le schéma mentionne tout de même dans un coin un bon vieux ULN2803 qui comporte 8 transistors darlington et pourra être utilisé pour piloter de modestes charges (inductives ou selfiques).

Alimentation
L'ensemble réclame une tension de +5 V pour les circuits logiques et une tension de +3,3 V pour le lecteur de carte SD. J'ai opté pour des régulateurs linéaires classiques de type LM317 mais on peut aussi récupérer une alim +5 V perdue dans un coin et lui ajouter un régulateur à faible chute de tension pour obtenir le +3,3 V.

Circuit imprimé

Non réalisé, vue 3D juste pour faire joli.

Logiciel du PIC

Seule la version bridée à 4 sorties est disponible gratuitement (version carte SD en FAT32). 
Séquenceur 007 - 18F46K22 - Version limitée à 4 sorties (09/11/2014)
Deux fichiers sont fournis :
- electronique_sequenceur_007_18f46k22_le.hex = version limitée à 4 sorties sans infos débogage sur sortie RS232
- electronique_sequenceur_007_18f46k22_le_debug.hex = version limitée à 4 sorties avec infos débogage sur sortie RS232
En temps normal, utiliser la version sans info de débogage. En cas de soucis avec la carte SD, utiliser la version avec infos de débogage.
Pour la version complète à 64 sorties, me contacter.

Historique

09/11/2014
- Première mise à disposition.