Dernière mise à jour :
18/06/2017
Présentation
Le séquenceur 010 produit des allumages et
extinctions progressifs de plusieurs lampes (LED) sur des longues
durées, et a été développé pour l'animation lumineuse d'une sculpture.
Ce séquenceur "010" a fait l'objet de 4 versions :
- schéma 010 : avec PIC 18F46K22 et générateur PWM externe PCA9685 sur
CI -
finalisé mais non
choisi
- schéma 010a : avec PIC 18F46K22 et générateur PWM externe PCA9685 sur
module -
finalisé et choisi
- schéma 010b : avec PIC 18F25K22 et générateur PWM externe
PCA9685 sur module -
non
finalisé
- schéma 010c : avec PIC 18F46K22, sans générateur PWM externe
-
finalisé mais non
choisi
Les différences entre les versions avec ou sans
PCA9685 concernent la
fréquence des
signaux PWM (500 Hz avec le PCA9685, 75 Hz avec le PIC seul) et
la résolution du codage PWM (12 bits avec le PCA9685, 8
bits
avec le PIC seul). La version retenue au final est la version
010a, objet du présent descriptif. Voir aussi page
Séquenceur
010c.
Une télécommande infrarouge permet de sélectionner la séquence
lumineuse désirée parmi les neuf intégrées (évolutions possibles).
Schéma 010a
Le schéma ci-après représente le circuit complet, avec son générateur
PWM PCA9685 monté sur module externe.
(image volontairement
embrouillée)
Remarque importante
: certaines broches du module à base de PCA9685
ne sont pas représentées sur ce schéma. Cela est lié au fait que dans
cette versions, lesdites broches sont accessibles sur le circuit
imprimé du module sous forme de pastilles à souder et non
accessibles avec des connecteurs.
Fonctionnement général
Le PIC 18F46K22 pilote le PCA9685
selon un programme pré-établi parmi plusieurs. Les sorties
du PCA9685 peuvent
attaquer directement des LED standard (max 20 mA) ou transiter par des
transistors darlington (ULN2803) qui se
chargent de l'amplification en courant (max 500 mA par sortie quand
toutes les sorties ne sont pas actives en même temps). La
fréquence des signaux PWM
délivrés par le PCA9685 a été fixée à 500 Hz. Ainsi,
pas de
risque de
scintillement visible (même à travers l'oeil d'une caméra) et
pas trop rapide pour pouvoir utiliser des transistors de puissance
"lents". Le système peut être
démarré et arrêté à distance au moyen d'une télécommande infrarouge,
qui par la même occasion permet le changement des séquences
lumineuses (programmes).
Modes des sorties PWM
Les
sorties PWM du PCA9685 peuvent être configurées de différentes façons,
pour s'adapter à l'étage de sortie (de puissance) désiré, selon l'état
logique des lignes RB2
et RB3 du PIC :
- Inv/RB2 = 0 (JP3 en place) -> sorties avec
logique
"positive" (état bas permanent pour PWM 0%, état haut
permanent pour
PWM 100%)
- Inv/RB2 = 1 (JP3 retiré) -> sorties avec
logique
inversée (état bas permanent pour PWM 100%, état haut permanent pour
PWM 0%)
- Drv/RB3 = 0 (JP4 en place) -> sorties configurées en
"open drain"
(drain ouvert)
- Drv/RB3 = 1 (JP4 retiré) -> sorties configurées en
"totem pole"
Selon la
configuration adoptée, on peut relier directement
des LED (via résistance
série) sur les sorties du PCA9685, ou ajouter une interface de
puissance adaptée à l'usage
désiré (autre que celle adoptée ici). Si on utilise l'interface à
ULN2803 intégrée, alors JP3 doit être mis en place et
JP4 doit être retiré.
Evolution "électrique" des variations de lumière
Utiliser une commande linéaire pour faire varier l'intensité
lumineuse des LED (rapport cyclique PWM de 25% pour quart de luminosité
et de 50% pour moitié de luminosité) est la solution la plus simple
d'un point de vue
technique, mais elle n'est pas "conforme" à la sensibilité de l'oeil
humain qui suit une courbe logarithmique. La commande électrique doit
se faire selon une courbe adaptée à la caractéristique de l'oeil, et
c'est pourquoi ce
séquenceur permet de choisir entre une courbe exponentielle ou
en
S. Il faut savoir que l'oeil est plus sensible aux
petites variations de niveaux quand l'intensité lumineuse est
faible, qu'il ne
l'est aux petites variations de niveaux quand l'intensité
lumineuse
est élevée. Le choix du mode de variation se fait ici grâce au cavalier
JP1/PwmCurve :
- CF1/RB1 = 0 (JP1 en place) : mode de variation en "S"
- CF1/RB1 = 1 (JP1 retiré) : mode de
variation exponentielle
Dans les deux cas, le codage PWM se fait avec une résolution de 12
bits, ce qui permet de
créer des variations suffisament fines dans les faibles niveaux
d'intensité
lumineuse (cette variation fine est tout de même limite pour
des
changements très lents). Les graphes suivant montrent trois
façons
de faire
évoluer une intensité lumineuse, en montant puis en descendant.
Courbe A : Exemple avec
courbe de variation linéaire (pas idéal pour l'oeil
humain)
Courbe B : Exemple avec courbe de variation
en S
Courbe C : Exemple avec courbe de variation
exponentielle
Après essais et pour les séquences de variation demandées
(très lentes) la courbe
exponentielle s'est avéré la mieux adaptée.
Télécommande
Le contrôle du fonctionnement du séquenceur
peut se faire au moyen d'une télécommande infrarouge (IR)
standard pour TV ou lecteur DVD, dès l'instant où cette
dernière
respecte le protocole RC5 ou RC6 de Philips. Les données IR sont
démodulées par un récepteur TSOP4836 comportant le filtre optique et
l'électronique d'extraction des données modulantes.
Le TSOP4836
convient pour une porteuse IR de 36 kHz, alors que le TSOP4838
convient pour une
porteuse IR de 38 kHz (le 36 kHz est plus souvent utilisé, c'est
pourquoi je l'ai adopté ici). Une fois l'extraction (la démodulation)
des
données réalisée, le logiciel analyse les différents éléments de la
trame RC5 (ou RC6) et réagit s'il reconnaît les "codes" (valeurs
système
et programme) attendus :
- Touche Play : (re)mise en route du séquenceur (sans
changement du numéro de programme)
- Touche Stop : arrêt total du séquenceur (toutes les lampes
s'éteignent)
- Touches 1 à 9 : démarrage du programme
correspondant
Le cavalier JP2 permet au logiciel du PIC de s'adapter au protocole de
la télécommande utilisée :
- JP2 retiré (RB2 = 1) : décodage RC5
- JP2 en place (RB2 = 0) : décodage RC6
Les autres protocoles de télécommandes IR (NEC, Sony, etc) ne sont pas
reconnus par ce séquenceur.
Alimentation
Le
PIC est alimenté sous une tension de 5 V délivrée
par un régulateur de type LM7805. La section alimentation
incluse dans le schéma est un exemple complet et suffisant de source
d'alimentation 5 V. La consommation de l'ensemble est inférieure
à 50 mA, si on exclue les LED branchées sur les sorties. Ces
dernières sont reliées entre les sorties collecteur ouvert des ULN2803
et le pôle positif de l'alimentation continue non régulée Vnr, en amont
du régulateur de
tension. Le transformateur choisi ici délivre
une tension secondaire de 9 Vac, ce qui donne
environ 11 Vdc après redressement et filtrage. Le courant
qu'il doit
pouvoir
débiter dépend principalement des LED utilisées. Une alimentation à
tension de sortie continue peut également être utilisée. Dans ce cas,
ne pas oublier que le pont de diodes (D101 à D104) provoque une chute
de tension comprise entre 1,2 V et 2 V, selon consommation des LED.
Circuit(s) imprimé(s)
Circuits des versions 010 et 010a, réalisés en double face.
Version 010 - avec PCA9685 (CMS) directement sur CI
Il faut avoir de bons
yeux, une bonne loupe, de bons outils et la bonne technique
quand on soude le PCA9685 (U2) à
la main... ou demander un pré-assemblage au fabricant de circuit
imprimé.
(pistes de dessus - Top
- seulement)
Version 010a - avec PCA9685 en module externe précâblé
(version retenue)
Module
précâblé PCA9685 Adafruit relié en "carte fille" au
circuit
principal
via les
connecteurs J2-A, J2-B, J2C, J2-D (sorties PWM) et J5 (alimentation et
signaux de contrôle). Plus simple pour le débutant que je suis.
(pistes de dessus - Top
- seulement)
Prototype
Réalisé pour la version 010a avec PCA9685 en module externe.
Pour ce prototype, j'ai utilisé un module
PWM précâblé d'Adafruit (environ 15 euros) pour commencer, et
j'ai
ensuite utilisé le même type de module mais trouvé en Chine à 2 euros
(module complet moins cher que le seul circuit intégré PCA9685 que j'ai
acheté à
l'unité chez Farnell). La différence entre les deux ? Couleur du
vernis épargne, et résistances CMS individuelles sur un des CI
et en réseaux de quatre sur l'autre (
photo
des deux CI côte à côte). Le
circuit finalisé, qui supporte le module PWM en carte fille, est
conforme au dessin du circuit imprimé 010a vu
ci-avant.
J'ai
effectué des tests avec plusieurs LED :
des haute luminosité 5 mm standard, des LED de puissance 1W et
des
lampes à LED pour voiture.
Selon la puissance lumineuse de la LED,
on peut percevoir, à vitesse très lente, les sauts de niveau aux très
faibles valeurs PWM (entre 0% et 5%). Cela n'est guère gênant
pour
l'application envisagée, mais j'ai tout de même voulu jouer le fanfaron
et j'ai éliminé ce phénomène de façon analogique. Désormais et même à
vitesse très lente,
l'extinction et l'allumage se font avec une douceur difficile à
décrire. On a envie de rester devant pendant des heures, ce qui laisse
présager une concurrence sévère avec les poissons dans leur aquarium.
Produit fini
Le circuit a été intégré dans le "monolithe urbain" de Christian
Moreno, visible sur
sa
page Facebook.
L'électronique est placée dans le socle, avec connecteur jack
d'alimentation (12 V) et récepteur IR en face à face.
Difficile de donner une idée du rendu avec des mots, c'est une
oeuvre qu'il faut voir ;-)
Logiciel du PIC
Fichiers non disponibles.
Historique
18/06/2017
- Ajout photos de la sculpture finalisée et exposée.
15/01/2017
- Ajout photos du montage séquenceur finalisé.
08/01/2017
- Première mise à disposition.