Electronique > Réalisations > Sequenceur 008

Dernière mise à jour : 26/04/2015

Article non terminé, volontairement non référencé dans les sommaires du site


Présentation

Ce séquenceur dispose de 64 sorties logiques qui peuvent être activées selon une séquence enregistrée sur carte SD ou micro-SD.

sequenceur_007_pcb_3d_a

Il met en oeuvre un PIC 18F46K22, un lecteur de carte SD et des registres à décalage 75HC595.

Caractéristiques principales
Caractéristiques du logiciel "complet" et du logiciel "limité" (*) :
(*) Le logiciel "limité" est mis à disposition gratuite, me contacter pour le logiciel "complet" ou pour un système dérivé.

Mode de fonctionnement
Dès la mise sous tension, le contenu de la carte SD est analysé et le premier fichier de séquence est lu. Une fois la séquence achevée, le logiciel du PIC cherche la présence d'un autre fichier de séquence. S'il en trouve un autre, il le lit et l'exécute à la suite. S'il n'en trouve aucun autre, il arrête la lecture (mode de lecture unique) ou reprend celle du ou des fichiers lus précédement (mode de lecture en boucle).

Schéma

Quelques circuits intégrés, certains bien spécifiques.

sequenceur_008

Remarque : l'expandeur de port MCP23017 et les boutons-poussoirs ne sont actuellement pas utilisés.

Principe général
Chaque séquence enregistrée sur la carte SD (formatée en FAT16) est composée d'un certain nombre de lignes de données. Chaque ligne correspond à un pas de séquence, et comporte l'information horaire (moment où la ligne doit être exécutée) et l'état que doivent prendre les 64 sorties logiques à cet instant précis. La première ligne est chargée en mémoire et est exécutée à l'instant 00:00:00:00 (hh:mm:ss:cc). La ligne suivante est à son tour chargée et exécutée quand vient son tour. L'accès à la carte SD s'effectue au fil de l'eau, cela permet d'exécuter un très grand nombre de pas de séquence sans surcharger la RAM du microcontrôleur.
Remarque : si aucune carte SD n'est détectée au démarrage, la LED Err clignote.
Le format du fichier de séquence est de type texte et peut donc être créé et modifié avec un éditeur de texte simple comme Notepad. Le signe "égal" sert de séparateur entre l'information horaire et les états logiques :

hh:mm:ss:cc=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[CR][LF]


hh = heures (0 à 23)
mm = minutes (0 à 59)
ss = secondes (0 à 59)
cc = centièmes de seconde (0 à 90, seule la valeur des dizaines sera prise en compte)
x = état logique, désactivé ou activé (0 ou 1)

Chaque ligne doit être terminée par un couple [CR]+[LF] (retour charriot et saut de ligne) et peut comporter entre 1 et 64 valeurs logiques.
Exemple d'une séquence simple à trois lignes (3 pas) pour pilotage de 64 sorties :

00:00:00:00=0000000000000000000000000000000000000000000000000000000000000001[CR][LF]
00:00:24:60=0000000000000000000000000000000000000000000000000000000000000011[CR][LF]
01:05:13:00=1000000000000000000000000000000000000000000000000000000000000000[CR][LF]


Au démarrage de cette séquence, seule la sortie #64 est activée. Après 24 secondes et 6/10 de seconde (60 centièmes de seconde), la sortie #63 est également activée (la sortie #64 le reste). Une heure, 5 minutes et 13 secondes après le démarrage de la séquence, la sortie #1 est activée et les sorties #63 et #64 sont désactivées.

Le type de ligne suivante est également accepté, car le logiciel du PIC se base sur les caractrères [CR]+[LF] pour localiser les fins de ligne :

hh:mm:ss:cc=xxxxxxxx[CR][LF]


Dans l'exemple qui précède, seules les 8 premières sorties du séquenceur sont traitées, toutes les autres sont forcées à l'état logique 0.

Les fichiers de séquence enregistrés sur la carte SD doivent être nommés au format "xxxx.dat", avec xxxx une valeur numérique comprise entre 0001 et 0255 et l'extension (.dat) en minuscule. Au démarrage, le logiciel du PIC recherche un fichier nommé 0001.dat. S'il le trouve, il le charge et le traite. Sinon il cherche un fichier nommé 0002.dat, etc. Si la carte SD comporte seulement deux fichiers nommés 0005.dat et 0017.dat, ces deux fichiers seront exécutés. Un fichier présent sur la carte SD qui ne correspond pas au format attendu est simplement ignoré.

Interface de sortie
Les sorties sont de type TTL, directement issues des registres à décalage 74HC595. La commande d'éléments de puissance (lampes, moteurs, 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. Pour des besoins modestes, un bon vieux ULN2803 qui comporte 8 transistors darlington sera peut-être suffisant pour piloter des charges résistives ou inductives.

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.

Prototype

Réalisé sur plaque sans soudure, programmation du PIC en ICSP avec programmateur PICkit2 de Microchip.

sequenceur_008b_proto_001b sequenceur_008b_proto_001d

Pour le lecteur de carte SD, j'ai utilisé un "vieux" module de MikroElektronika ainsi que des modules plus récents commandés sur eBay (Chine). Pour ces derniers, j'ai du ajouter 6 résistances pour adapter les niveaux de tension (R25 à R30 sur le schéma). Dans le module Mikroe, ces résistances sont incluses, en plus de cavaliers qui permettent de configurer le module en 3,3 V ou en 5 V.

Circuit imprimé

Non réalisé.

Logiciel du PIC

La version mise à disposition ici est limitée. Me contacter pour une version complète ou pour un système dérivé (exemple de système dérivé).
Séquenceur 008 - 18F46K22 - (26/04/2015)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Historique

26/04/2015
- Première mise à disposition.