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 en raison 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 qui permet tout de même d'avoir les fonctions chaine suivante , chaine précedente, voire contrôle du volume.
Le principe utilisé est le suivant :
Il s'agit du premier modèle que j'ai réalisé. Il utilise un clavier à matrice de 16 touches suivi d'un encodeur 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.
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 de
telecommande.exe fonctionneront avec cet émetteur. En utilisant
telecommande.exe (16 touches) il sera possible d'exciter toutes les commandes
de 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.
Le circuit MM74C922 est un encodeur de clavier matriciel. Il transforme les informations sur les 8 broches du clavier en un mot de quatres bits représentatifs de la touche pressée (Da..Dd). Il dispose d'un circuit anti-rebond (pour éviter qu'une pression sur une touche soit interprétée comme une succession de plusieurs pressions) paramétré par la capacité sur KBM (Ce circuit est en fait un circuit RC composé de Ckbm et d'une résistance interne de 5kOhms). Cette valeur est importante car elle fixe le temps de réponse du système à une pression sur une touche.
La fréquence d'interrogation du clavier est fixé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 si OE (patte 13) est à l'état bas. Sinon, les sorties sont à l'état haute impédance.
La sortie DAck passe à l'état haut lorsqu'une touche est pressée. En la reliant à OE via un inverseur, les données sont autovalidées à chaque pression d'une touche.
Le circuit encodeur utilisé est un très classique MC145026 permettant de coder 4 bits sur une adresse de 5 bits. Hum, les valeurs utilisées ici pour l'oscilateur sont un peu étranges, mais c'est ce que j'avais sous la main au moment de la réalisation. Il reste bien sur possible d'utiliser des valeurs normalisées dans la gamme E22 à partir du moment ou elles sont proches des valeurs présentées ici.
Le modulateur est réalisé à partir d'un NE555 monté en oscillateur à 36kHz (environ, hein). En effet, le 555 est capable de fournir jusqu'à 200mA ce qui est plus que suffisant 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
Les circuits de réception/démodulation infrarouges ne sont vraiment pas cher, alors pourquoi s'en priver ? J'utilise ici un LTM8848, mais n'importe quel récepteur fonctionnant à 36kHz et sous 5volts fera aussi bien l'affaire.
Ce récepteur inverse la signal émis, il faut donc sacrifier un autre inverseur 4011 pour attaquer l'entrée du décodeur associé au MC145026 : le MC145027. Le décodeur dispose d'une sortie indiquant la réception d'une trame. On utilise ce signal pour allumer une led Verte du plus pur style, et pour indiquer au PC qu'une touche est pressée. Le mot de 4 bits est transmis sur les lignes d'entrée du port parallèle.
Photos de ma réalisation :
Emetteur
Emetteur dans son boitier
Télécommande dans un vrai boitier.
Récepteur
Cable de liaision
Conseils de réalisation :
Au passage : L'auteur ne saurait en aucun cas être tenu responsable de dommages causés au matériel de l'utilisateur, à son chien, ni des émissions radioactives et de gaz toxiques résultant de la réalisation de cet apareil :)
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 | |
Suggestions, remarques, questions, menaces de mort : dgouarin@free.fr