Dernière mise à jour :
01/01/2009
Présentation
Le présent sélecteur de source permet de
sélectionner une voie parmi 16, par le biais de 16
boutons poussoirs déportés et reliés au
système par un simple cable à deux conducteurs, ou par le
biais d'un unique potentiomètre ordinaire. Il met en oeuvre un
PIC de type 12F675, composant programmable de dimensions
réduites et peu couteux.
L'appui sur un bouton est mémorisé, c'est à dire que la sélection
de la sortie reste la même une fois qu'on a appuyé puis relâché le
bouton. Une version un peu plus évoluée, avec affichage voie sélectionnée intégrée, est décrite en page
Sélecteur 006b.
Schéma
Le schéma représente la fonction de commande avec les
boutons poussoirs déportés, l'adaptation pour usage avec
potentiomètre est vue plus loin.
Principe de fonctionnement
Le principe consiste à lire une tension continue via une des
entrées analogiques (équipées d'un CAN) du PIC
12F675, et à activer la sortie qui correspond à la
tension mesurée. Au repos, c'est à dire quand aucun
bouton poussoir n'est enfoncé, la tension continue
appliquée à l'entrée AN0 du PIC (broche 7) est de
+5 V, grâce à la résistance R17 reliée au
pôle plus de l'alimentation. Quand un poussoir est
enfoncé, la tension appliquée à l'entrée
AN0 chute, et prend une valeur comprise entre 0,18 V (appui sur SW16)
et 3,88 V (appui sur SW1). Entre ces deux extrêmes, plusieurs
valeurs de tension possibles, qui dépendent de la valeur
données aux résistances R1 à R16 associées
à chaque poussoir. Ainsi, en fonction de la tension lue, le
programme interne au PIC sait quel bouton poussoir a été
enfoncé. Les valeurs théoriques de la tension que l'on
doit obtenir en fonction du poussoir enfoncé, et avec les
valeurs données ici aux résistances R1 à R17, sont
les suivantes (la valeur iVal1 correspond à la valeur
numérisée sur 10 bits, +5V correspond à 1023) :
SW1 => 3.88 V - iVal1 = 794
SW2 => 3.68 V - iVal1 = 753
SW3 => 3.45 V - iVal1 = 706
SW4 => 3.24 V - iVal1 = 663
SW5 => 3.01 V - iVal1 = 616
SW6 => 2.77 V - iVal1 = 567
SW7 => 2.52 V - iVal1 = 516
SW8 => 2.27 V - iVal1 = 464
SW9 => 2.00 V - iVal1 = 409
SW10 => 1.70 V - iVal1 = 348
SW11 => 1.41 V - iVal1 = 288
SW12 => 1.13 V - iVal1 = 231
SW13 => 0.87 V - iVal1 = 178
SW14 => 0.62 V - iVal1 = 126
SW15 => 0.39 V - iVal1 = 80
SW16 => 0.18 V - iVal1 = 36
Si quelque chose cloche dans la sélection des voies, la
première chose à vérifier est la valeur de ces
tensions. La lecture de la tension d'entrée est effectuée
en boucle, avec une périodicité voisine de 30 ms, et il
faut que trois valeurs identiques ou très proches soient lues
successivement pour que le sélecteur considère cela comme
une demande réelle et non comme un parasite. La prise en compte
d'une commande prend donc approximativement 100 ms (un dizième
de seconde), ce qui est tout à fait convenable.
Interface de sortie
Le circuit présenté ici n'est doté d'aucune
interface de sortie. Vous devez en ajouter une qui dépend de
l'application envisagée. Il peut s'agir de vulgaires
transistors, de relais ou d'optotriacs, voir les quelques exemples
disponibles sur ce site dont les liens sont donnés en page
Interfaces.
Selection des voies avec un potentiomètre
Les boutons poussoirs SW1 à SW16, les résistances R1
à R16 qui leur sont associées et la résistance R17
peuvent être remplacés par un potentiomètre, comme
indiqué sur le schéma ci-après, où le
curseur de RV1 (Ucde) est relié directement à
l'entrée AN0 du PIC.
Sélectionner une voie parmi 16 en tournant l'axe d'un
potentiomètre peut sembler "rigolote" tout en présentant
quelques avantages. Notez que durant la manoeuvre du curseur de RV1
d'un point à un autre, les sorties intermédiaires peuvent
s'activer brièvement. Pour certaines applications, cela n'est
pas important, et pour d'autres, ça peut l'être.
Remarque :
vous aurez sans
doute rapidement fait le rapprochement d'un tel montage avec un montage
à base de LM3914 (circuit spécialisé pour
affichage baregraphe), qui permet en mode point, le même type de
comportement. Le LM3914 n'a pas besoin d'être programmé et
si vous arrivez à vous le procurer facilement (tout en vous
contentant de 10 voies au lieu de 16), je vous le conseille ne
serait-ce que pour cette raison.
Affichage numérique de la voie sélectionnée
En utilisant un décodeur BCD / 7 segments classique tel le
CD4543 ou CD4511 dont les entrées BCD sont cablées aux
points A, B, C et D visibles sur le premier schéma, on peut
afficher un nombre représentatif de la voie
sélectionnée.
La restriction d'un tel système est de ne pouvoir afficher que
l'état des 10 premières entrées, de 0 à 9.
Et il y a un décallage de une unité entre numéro
de voie sélectionnée et numéro affiché :
à la voie Out1 correspond l'affichage du chiffre 0, et à
la voie Out7 correspond l'affichage du chiffre 6. Bien entendu, on peut
numéroter les sorties de Out0 à Out15 au lieu de Out1
à Out16. Mais la présence d'une voie appelée "0"
fait toujours un peut trop "informatique" à mon goût. Il
existe bien entendu plusieurs solutions à ce type de
"problème", en utilisant des composants logiques classiques ou
programmables, je vous laisse chercher un peu...
Logiciel du PIC
Code compilé et code source stockés avec amour dans l'archive zip suivante :
Selecteur
006 12F675 - 01/01/2009
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é. Vue 3D uniquement là pour donner un
apperçu des composants utilisés au niveau platine
(résistances R1 à R16 et poussoirs SW1 à SW16
exclus).
Historique
01/01/2009
- Première mise à disposition.