Electronique > Réalisations > Sequenceur 006b

Dernière mise à jour : 05/01/2014

Présentation

Ce séquenceur a été conçu pour délivrer une série d'impulsions avec arrêt automatique.

sequenceur_006b_pcb_3d_a

Il fait appel à un PIC 16F88 et trois réglages sont disponibles :
- intervale de temps entre chaque impulsion (100 ms à 100 s);
- nombre d'impulsions (1 à 255);
- durée des impulsions (10 ms à 10 s).
Ce montage existe aussi en version plus "compliquée" mais sans PIC, voir page Séquenceur 006. A l'origine, le montage devait se faire sans microcontrôleur, mais je trouvais l'idée intéressante de montrer deux façons de faire pour parvenir aux mêmes résultats.

Schéma

Un seul circuit intégré, ça peut paraître peu, surtout quand on sait qu'on peut en mettre quatre.

sequenceur_006b

Principe général
Quand on presse le bouton-poussoir SW1/Start, le logiciel lit les valeurs analogiques présentes sur les entrées RA0/AN0 à RA2/AN2.
La durée des impulsions de sortie ne peut pas dépasser l'intervale de temps entre chaque impulsion. La valeur de l'intervale entre chaque impulsion est prioritaire sur leur durée. Si par exemple vous définissez un intervale entre impulsions de 1 secondes et une durée d'impulsion de 2 secondes, alors la durée réelle des impulsions sera diminuée pour être légèrement inférieure à l'intervalle de temps.

Description détaillée
On utilise ici l'oscillateur interne du PIC à sa fréquence de 8 MHz. Le timer 1 est mis à contribution pour délivrer des interruptions toutes les 10 ms, qui est la base de temps principale du séquenceur. A chaque interruption, un compteur (variable iT1Cnt de type DWord) est incrémenté. Trois autres variables de type Word sont utilisées : iPulseInterval, iPulseCountMax et iPulseWidth, ces trois variables permettent de mémoriser les valeurs relatives aux tensions appliquées sur les entrées RA0/AN0 à RA2/AN2, selon la tactique suivante :
Quand on met en marche le séquenceur en pressant le bouton-poussoir SW1/Start, la sortie principale Out est activée et le compteur iT1Cnt est remis à zéro puis s'incrémente de un point toutes les 10 ms. Quand ce compteur atteint la valeur iPulseWidth, la sortie est désactivé. Quand il atteint la valeur iPulseInterval, le compteur d'impulsions est incrémenté de un point et le compteur iT1Cnt est remis à zéro. L'opération se répète tant que le nombre d'impulsions désiré n'a pas été atteint. La LED D1 clignote tant que la séquence est en cours.

Logiciel du PIC

Fichiers binaires compilés (*.hex) et source MikroPascal (*.mpp*) fournis.
Séquenceur 006b - PIC 16F88 - Version du 05/01/2014
Pour obtenir un PIC préprogrammé avec ce logiciel, voir page Logiciel PIC - Sources .

Circuit imprimé

Non réalisé.

Historique

05/01/2014
- Première mise à disposition.