Electronique > Réalisations > Selecteur 006

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.

selecteur_006_pcb_3d_a

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.

selecteur_006

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.

selecteur_006_pot

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.

afficheur_leds_7seg_4543_2

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.