Je décris ici la réalisation d'une télécommande infra-rouge pour PC fonctionnant sur port parallele permettant par exemple de piloter un media player.J'ai codé le logiciel d'interface il y a déjà fort longtemps, ce n'est absolument pas un modèle à suivre.Le code source peut par contre aider à mettre au point un soft d'interface efficace.
Le premier modèle réalisé est une télécommande à 16 touches, malheureusement plutôt chère à réaliser enraison du prix de l'encodeur de clavier nécessaire. C'est pourquoi je proposeégalement une variante à quatres touches seulement, beaucoup moins chère et quipermet tout de même d'avoir les fonctions chaine suivante , chaine précedente,voire contrôle du volume.
Le principe utilisé est le suivant :
Les versions 16 touches et 4 touches detelecommande.exe fonctionneront avec cet émetteur. En utilisanttelecommande.exe (16 touches) il sera possible d'exciter toutes les commandesde 0 à 15 par des combinaisons des quatres touches de l'émetteur.
Exemple :
En appuyant simultanement sur les touches 0 et 3, on simulera le code correspondant à la touche 9.
La fréquence d'interrogation du clavier estfixée par la capacité sur OSC (ici 100 Hz pour une valeur de 1uF).Enfin, la donnée n'est validée en sortie que siOE (patte 13) est à l'état bas. Sinon, les sorties sont à l'état hauteimpédance.
La sortie DAck passe à l'état haut lorsqu'unetouche est pressée. En la reliant à OE via un inverseur, les données sontautovalidées à chaque pression d'une touche.
Le circuit encodeurutilisé est un très classique MC145026 permettant de coder 4 bits surune adresse de 5 bits. Hum, les valeurs utilisées ici pour l'oscilateur sont unpeu étranges, mais c'est ce que j'avais sous la main au moment de laréalisation. Il reste bien sur possible d'utiliser des valeurs normalisées dansla gamme E22 à partir du moment ou elles sont proches des valeurs présentéesici.
Le modulateur est réalisé à partir d'un NE555 monté en oscillateur à 36kHz (environ, hein). Eneffet, le 555 est capable de fournir jusqu'à 200mA ce qui est plus quesuffisant pour une bonne portée.
Datasheets des composants utilisés :
MM74C922.pdf (encodeur de clavier)
mc145026rev3.pdf (MC145026/27) codeur/décodeur 4 bits
NE555.pdf composant à tout faire
Ce récepteur inverse la signal émis, il fautdonc sacrifier un autre inverseur 4011 pour attaquer l'entrée dudécodeur associé au MC145026 : le MC145027. Le décodeur disposed'une sortie indiquant la réception d'une trame. On utilise ce signal pourallumer une led Verte du plus pur style, et pour indiquer au PC qu'une toucheest pressée. Le mot de 4 bits est transmis sur les lignes d'entrée du portparallèle.
Conseils de réalisation :
Au lieu de 2.2k pour les pull-ups, utilisez des valeurs plus élevées. Attention cependant à ne pas tropmonter (50k maximum).
Réduire la fréquence de scan du clavier en augmentant la valeur de la capa sur OSC.
Ne pas cabler les pulls ups optionnels.
Utiliser un interrupteur sur la pile.
Le premier modèle réalisé est une télécommande à 16 touches, malheureusement plutôt chère à réaliser enraison du prix de l'encodeur de clavier nécessaire. C'est pourquoi je proposeégalement une variante à quatres touches seulement, beaucoup moins chère et quipermet tout de même d'avoir les fonctions chaine suivante , chaine précedente,voire contrôle du volume.
Le principe utilisé est le suivant :
- Pour l'émetteur, une télécommande infrarouge classique alimentée par une pile de neuf volts.
- Un récepteur infrarouge branché sur port parallèle, alimenté par un connecteur d'alimentation classique de PC, et entrant dans un emplacement 3''5 en facade.
- Un logiciel d'interface sous windows tournant en tâche de fond
Télécommande 16 touches
Il s'agit du premier modèleque j'ai réalisé. Il utilise un clavier à matrice de 16 touches suivi d'unencodeur de clavier. Un émetteur est chargé du codage du mot de 4 bits obtenu,puis le signal codé est modulé et enfin transmis en infrarouge.Télécommande 4 touches
Version allégée et moins chère que le modèle précédent, dépourvue de clavier.Les versions 16 touches et 4 touches detelecommande.exe fonctionneront avec cet émetteur. En utilisanttelecommande.exe (16 touches) il sera possible d'exciter toutes les commandesde 0 à 15 par des combinaisons des quatres touches de l'émetteur.
Exemple :
En appuyant simultanement sur les touches 0 et 3, on simulera le code correspondant à la touche 9.
Récepteur
Schéma du récepteurExplications
Fonctionnement de l'émetteur :
Le circuitMM74C922 est un encodeur de clavier matriciel. Il transforme lesinformations sur les 8 broches du clavier en un mot de quatres bitsreprésentatifs de la touche pressée (Da..Dd). Il dispose d'un circuitanti-rebond (pour éviter qu'une pression sur une touche soit interprétée commeune succession de plusieurs pressions) paramétré par la capacité sur KBM (Cecircuit est en fait un circuit RC composé de Ckbm et d'une résistance internede 5kOhms). Cette valeur est importante car elle fixe le temps de réponse dusystème à une pression sur une touche.La fréquence d'interrogation du clavier estfixée par la capacité sur OSC (ici 100 Hz pour une valeur de 1uF).Enfin, la donnée n'est validée en sortie que siOE (patte 13) est à l'état bas. Sinon, les sorties sont à l'état hauteimpédance.
La sortie DAck passe à l'état haut lorsqu'unetouche est pressée. En la reliant à OE via un inverseur, les données sontautovalidées à chaque pression d'une touche.
Le circuit encodeurutilisé est un très classique MC145026 permettant de coder 4 bits surune adresse de 5 bits. Hum, les valeurs utilisées ici pour l'oscilateur sont unpeu étranges, mais c'est ce que j'avais sous la main au moment de laréalisation. Il reste bien sur possible d'utiliser des valeurs normalisées dansla gamme E22 à partir du moment ou elles sont proches des valeurs présentéesici.
Le modulateur est réalisé à partir d'un NE555 monté en oscillateur à 36kHz (environ, hein). Eneffet, le 555 est capable de fournir jusqu'à 200mA ce qui est plus quesuffisant pour une bonne portée.
Datasheets des composants utilisés :
MM74C922.pdf (encodeur de clavier)
mc145026rev3.pdf (MC145026/27) codeur/décodeur 4 bits
NE555.pdf composant à tout faire
Fonctionnement du récepteur :
Les circuits de réception/démodulation infrarouges ne sont vraiment pas cher, alorspourquoi s'en priver ? J'utilise ici un LTM8848, mais n'importe quelrécepteur fonctionnant à 36kHz et sous 5volts fera aussi bien l'affaire.Ce récepteur inverse la signal émis, il fautdonc sacrifier un autre inverseur 4011 pour attaquer l'entrée dudécodeur associé au MC145026 : le MC145027. Le décodeur disposed'une sortie indiquant la réception d'une trame. On utilise ce signal pourallumer une led Verte du plus pur style, et pour indiquer au PC qu'une toucheest pressée. Le mot de 4 bits est transmis sur les lignes d'entrée du portparallèle.
Réalisation
Photos de la réalisation :Emetteur
Emetteur dans son boitier
Récepteur
Conseils de réalisation :
- Utiliser des capas de découplage, surtout sur l'émetteur. Utilisez par exemple une capa de 10uF au niveau de la pile, et tout près des circuits MM71C922 et 145026 des capas de 100nF.
- Sur l'émetteur, le reseau de 4 fois 2.2k utilisé en pull-ups sur les sorties de 14 à 17 du 74C922 est optionnel.
- Utiliser un interrupteur sur la pile de l'émetteur, car celui-ci à tendance à bien consommer sa race. En passant, quelques trucs pour réduire la consommation :
Au lieu de 2.2k pour les pull-ups, utilisez des valeurs plus élevées. Attention cependant à ne pas tropmonter (50k maximum).
Réduire la fréquence de scan du clavier en augmentant la valeur de la capa sur OSC.
Ne pas cabler les pulls ups optionnels.
Utiliser un interrupteur sur la pile.
- Utilisez les inverseurs en rab du 4011 du récepteur pour une meilleure mise en forme du signal. Exemple de schéma :
- Pour le récepteur, utilisez un vrai connecteur d'alimentation avec détrompeur pour le brancher à l'alim du P.C. Ou bien placez une diode de protection en entrée du montage.
Nomenclature :
Référence | Désignation | Quantité |
LTM8848 | Récepteur infrarouge | 1 |
MC145027 | Décodeur 4 bits | 1 |
MC145026 | Encodeur 4 bits | 1 |
4011 | 4 Inverseurs CMOS | 2 |
2N2222 | Transistor NPN | 1 |
MC74C922 | Encodeur de clavier 4x4 | 1 |
NE555 | Bidule multi-usage | 1 |
LED IR | 1 | |
LED VERTE | 1 | |
Résistances : | ||
470 - 1/4W | 1 | |
1k - 1/4W | 1 | |
170k - 1/4W | 1 | |
330k - 1/4 W | 1 | |
10k - 1/4W | 1 | |
18k - 1/4W | 1 | |
4k7 - 1/4W | 1 | |
56 - 1/2W | 1 | |
91k | ou bien 100k | 1 |
43k | ou bien 47k | 1 |
Reseau SIL 2.2k*5 | avec commun | 2 |
Reseau SIL 2.2k*4 | (optionnel) | 1 |
Capas: | 1 | |
0.1u | 1 | |
0.01u | 2 | |
1nF | 1 | |
1u | 1 | |
10u | 1 | |
Divers : | ||
Clavier 4x4 | à matrice X-Y | 1 |
Commutateur DIL | 5 contacts | 2 |
Connecteur SUB-D 25 broches + capot | 1 | |
Aucun commentaire:
Enregistrer un commentaire