Electronique > Réalisations > Sequenceur 002

Dernière mise à jour : 23/01/2012

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


Présentation

Ce séquenceur est un programmateur horaire qui permet d'allumer et d'éteindre une lampe aux heures désirées, de façon progressive. La durée d'allumage et d'extinction sont programmables par l'utilisateur et peuvent se faire sur une plage de une minute ou une heure par exemple.

sequenceur_002_lcd_002a

Vous pouvez par exemple décider des actions suivantes :
- allumage progressif entre 6h30 et 7h00
- extinction progressive entre 11h00 et 11h45
- allumage progressif entre 13h30 et 14h00
- extinction progressive entre 18h00 et 19h00
Une mise en route ou une extinction immédiate (non progressive) est également possible, il suffit de le spécifier.
Ce montage est conçu pour commander deux types d'éclairage :
- ampoules à incandescence avec retard de phase (synchro sur 50 Hz secteur, principe du gradateur de lumière)
- rampes de LED haute luminosité ou ampoules basse tension avec commande de type PWM

Avertissement

- Ce montage ne peut pas commander des lampes halogènes, ni des tubes fluorescents (tubes communément appelés tubes néon), ni des ampoules fluocompactes soit disant à "économie d'énergie".
- La commande de leds est prévue pour des leds haute luminosité / basse consommation. Pour l'heure, l'emploi de leds de forte puissance / fort courant n'a pas été étudié.
- Pour l'heure, les plages horaires doivent se situer entre 00h00 et 23h59, un chevauchement sur deux jours consécutifs n'est pas permis.

Schéma

Le montage est basé sur un PIC de type 18F2420 associé à une horloge temps réel de type PCF8583 et à un afficheur LCD de quatre lignes de vingt caractères.

sequenceur_002

Horloge
La fonction d'horloge, qui permet de savoir quel jour on est et quelle heure il est, peut être basée sur l'une des deux configurations suivantes :
- horloge externe RTC (*) de type PCF8583
- horloge externe RTC (*) de type DS1307
(*) RTC = Real Time Clock en anglais, horloge temps réel en français
Le dialogue avec le PCF8583 ou DS1307 s'oprère via deux fils de liaison, qui sont ici les lignes SCL (signaux d'horloge) et SDA (signaux de données). On a affaire à un bus de type I2C. Il aurait tout à fait été possible de se passer de ce composant externe et d'utiliser l'horloge interne du PIC (avec quartz externe) pour produire les données horaires, ce ne sont pas les ressources du PIC qui manquent. En réalité, utiliser une horloge dédiée externe permet de disposer d'une plus grande autonomie de fonctionnement secouru en cas de panne secteur. Mais l'usage de cette seule horloge externe ne suffit pas pour disposer d'une source de temps permanente. Il faut que cette horloge soit alimentée de façon autonome, avec une petite pile, une batterie ou condensateur de forte capacité. Les horloges externes PCF8583 et DS1307 présentent l'avantage de tourner moins vite (oscillateur 32 KHz) et consomment bien moins d'énergie que le PIC. La sauvegarde en énergie est pour cette raison bien plus aisée à implémenter. En cas de coupure secteur, seul l'horloge externe (PCF8583 ou DS1307) reste alimentée grâce à la source de tension indépendante Bat1. Le reste du montage est complètement hors tension et la consommation globale n'est plus que de quelques dizaines de microampères. Quand la source d'énergie principale revient, le PIC se remet en marche, et questionne l'horloge externe pour se remettre aux bonnes date et heure, en une seconde environ. Le proto a été réalisé avec un PCF8583, comme pour mon horloge 002.

Récupération de l'heure "officielle" via Internet
La mise à l'heure du montage pourrait aussi s'effectuer de façon automatique en allant lire l'heure par le biais d'un lien Internet, grâce au protocole NTP (Network Time Protocole). C'est un sujet que je n'ai pas encore expérimenté, ça viendra peut-être un jour.

Programmations horaires
La programmation des différentes plages horaires s'effectue grâce aux divers boutons poussoirs et à l'afficheur LCD. Il est possible de spécifier 8 plages horaires différentes par jour, ce qui me semble suffisant pour bien des applications. Un menu permet de spécifier si les horaires sont les mêmes pour tous les jours de la semaine, où s'ils doivent être différents. Dans le cas où les plages horaires d'allumage / extinctions sont les mêmes pour tous les jours de la semaine, il serait en effet ridicule de devoir répéter la même programmation sept fois de suite.

Allumage progressif
Dans ce mode, l'allumage de la lampe se fait progressivement de 0% à 100%.

sequenceur_002_lcd_002a

Extinction progressive
Dans ce mode, l'extinction de la lampe se fait progressivement de 100% à 0%.

sequenceur_002_lcd_002b

Allumage direct et extinction directe
Dans ce mode, l'allumage de la lampe est instantané, il n'est pas progressif. Le taux d'éclairement en mode allumage peut être spécifié à n'importe quelle valeur comprise entre 0% et 100%.

sequenceur_002_lcd_002c

Le mode extinction directe se fait obligatoirement à un taux d'éclairement de 0%, c'est bien une extinction totale. Vous pouvez cependant spécifier un mode d'allumage de quelques pourcents pour obtenir un mode d'extinction non totale (par exemple 2% ou 5%).

Commande pour LED ou lampes basse tension (sortie Out1)
La sortie Out1 se fait en PWM, c'est à dire en modulation de rapport cyclique, appelé aussi modulation de largeur d'impulsion (MLI). Le principe repose sur la valeur moyenne d'un signal périodique dont la fréquence est constante mais dont le rapport entre état logique haut et état logique haut peut être ajusté à la valeur désirée, entre 0% et 100%. Si on veut un allumage au maximum d'intensité, le temps alloué aux états logiques hauts doit être maximal (100%). Si on veut un allumage au minimum d'intensité, le temps alloué aux états hauts doit être minimal (0%). Et si la luminosité doit être au quart de sa puissance maximale, les états logiques bas doivent durer trois fois plus longtemps que les états logiques hauts (75 % du temps à l'état bas, et donc rapport cyclique de 25%).

Commande pour lampes secteur 230 V (sortie Out2)
Cette sortie produit des impulsions qui sont synchronisées sur le secteur 50 Hz, avec un retard par rapport au passage par zéro de l'onde secteur d'autant plus important que la lumière doit être de faible intensité. Plus de détails aux pages gradateur de lumière et gradateur de lumière 013, basé sur un principe similaire.

Code source et fichier compilé

L'archive zip dont le lien suit contient le source complet (MikroPascal Pro V5.30) et le fichier binaire compilé (*.hex).
Séquenceur 002 - 18F2420 (23/01/2012)
Programme PIC non terminé et non disponible pour l'heure
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé.