Ce montage a base d'un microcontroleur PIC16F84 (voir la section sur les PIC à la rubrique cours) est capable de memoriser jusqu'a 4 codes de telecommandes Infra rouge (televisions, chaines, magnetoscopes, ...), et ainsi de piloter quelques appareils (reglage du volume, changement de chaine, ...) Le montage est tres petit, puisqu'il ne mesure que 3 * 7 cm. Je l'ai testé avec succés avec les telecommandes de marque suivante:
Philips, Grundig, Kenwood, JVC, Akai, Goldstar, Technics, Panasonic. Il doit pouvoir fonctionner avec presque toutes les marques.
Par contre il ne peut pas fonctionner avec les telecommandes de voiture, en effet leur code est beaucoup trop long pour la memoire du PIC.
Prix de revient: ordre d'idée: à partir de 60F environ (10Euros).
Quelques images des codes de differentes telecommandes (relevés à l'oscilloscope): (Base de temps: 2ms/division)
Ci dessus, le code d'une telecommande Philips. (Touche pour augmenter le volume). Ce code est du type RC-5
Ci dessus le code d'une telecommande Kenwood. (Touche pour augmenter le volume). Ce code est du type REC-80.
Ci dessus le code d'une telecommande Technics. (Touche pour augmenter le volume). Ce code est du type REC-80, mais il est bien plus long en terme de nombre de bits que le precedent; ce qui fait qu'on ne peut pas memoriser 4 touches dans la memoire du PIC, mais seulement 2 si on a ce type de telecommande.
Vous l'aurez remarqué, il existe deux normes de codage, (RC-5 et REC80), mais en plus le codage differe en terme de vitesse et de nombre de bits entre chaque telecommande. Ceci ne rend pas la memorisation du code facile, car il faut non seulement memoriser tous les bits, mais en plus il faut memoriser la vitesse d'emission.
Comme si ca ne suffisait pas, il y a une porteuse à environ 40kHz lorsque la telecommande emet un niveau haut (voir image ci dessus). Cette porteuse permet au recepteur d'éviter les parasites dus aux néons, .... Le probleme, c'est qu'il faut recreer cette porteuse avec le PIC pour que le recepeur réagisse!
Ci dessus, le code d'une telecommande Philips. (Touche pour augmenter le volume). Ce code est du type RC-5
Ci dessus le code d'une telecommande Kenwood. (Touche pour augmenter le volume). Ce code est du type REC-80.
Ci dessus le code d'une telecommande Technics. (Touche pour augmenter le volume). Ce code est du type REC-80, mais il est bien plus long en terme de nombre de bits que le precedent; ce qui fait qu'on ne peut pas memoriser 4 touches dans la memoire du PIC, mais seulement 2 si on a ce type de telecommande.
Vous l'aurez remarqué, il existe deux normes de codage, (RC-5 et REC80), mais en plus le codage differe en terme de vitesse et de nombre de bits entre chaque telecommande. Ceci ne rend pas la memorisation du code facile, car il faut non seulement memoriser tous les bits, mais en plus il faut memoriser la vitesse d'emission.
Comme si ca ne suffisait pas, il y a une porteuse à environ 40kHz lorsque la telecommande emet un niveau haut (voir image ci dessus). Cette porteuse permet au recepteur d'éviter les parasites dus aux néons, .... Le probleme, c'est qu'il faut recreer cette porteuse avec le PIC pour que le recepeur réagisse!
Schéma:
Voici le schema relativement simple de la telecommande:
Description du schema de gauche à droite:
~ On a tout d'abord la partie receptrice avec une diode infra rouge branchée sur un darlington PNP (T1+T2) pour amplifier fortement en courant. Le tout va sur une entrée trigger du PIC (patte 3)
~ On trouve ensuite la partie emission, avec T4 qui est commandée par la patte 6 du PIC. T4 sert à recreer le code en lui meme. T5 quant à lui sert à recreer la porteuse. Il est commandé par la patte 7 du PIC.
nb: je ne sais pas s'il fallait faire comme ca pour recreer la porteuse, mais l'essentiel c'est que ca marche!
~ A droite du PIC, on trouve deux LED pour indiquer les differents etats de la telecommande (programmation, ...).
~ Le fait qu'il n'y ait pas de resistance de rappel pour les interrupteurs n'est pas une erreur de ma part! En effet elles sont deja incluses dans le PIC, il suffit de les activer.
~ On a tout d'abord la partie receptrice avec une diode infra rouge branchée sur un darlington PNP (T1+T2) pour amplifier fortement en courant. Le tout va sur une entrée trigger du PIC (patte 3)
~ On trouve ensuite la partie emission, avec T4 qui est commandée par la patte 6 du PIC. T4 sert à recreer le code en lui meme. T5 quant à lui sert à recreer la porteuse. Il est commandé par la patte 7 du PIC.
nb: je ne sais pas s'il fallait faire comme ca pour recreer la porteuse, mais l'essentiel c'est que ca marche!
~ A droite du PIC, on trouve deux LED pour indiquer les differents etats de la telecommande (programmation, ...).
~ Le fait qu'il n'y ait pas de resistance de rappel pour les interrupteurs n'est pas une erreur de ma part! En effet elles sont deja incluses dans le PIC, il suffit de les activer.
Principe de fonctionnement:
Voici le principe que j'utilise pour memoriser le code sans erreur:
Quelques explications. Tout d'abord, on fait rechercher au PIC la durée minimale d'un etat (On mesure T et on le divise par 2). Ensuite, il "suffit" d'utiliser les interruptions du PIC, et d'interrompre l'execution du programme toutes les T/2 secondes pour memoriser l'etat de la LED receptrice (niveau haut ou bas).
Pour eviter les decalages entre l'horloge du PIC et l'horloge de la telecommande; je resynchronise l'horloge du PIC à chaque changement d'etat de la LED receptrice (Fleche violete). D'autre part, la durée avant interruption du programme lorsqu'il y a changement d'etat est T/4 (au lieu de T/2); ceci pour etre environ au milieu de l'etat a memoriser lorsqu'il y a interruption.
Matériel nécessaire:
Un fer a souder, de la soudure, du matériel pour graver les plaques, et de préférence une insoleuse et une bonne imprimante.
PIC | PIC16F84A-04 (environ 40F soit 6.1Euros) |
R1 | 560 kOhm |
R2 | 100 Ohm |
R3, R5, R6, R7 | 1 kOhm |
R4 | 39 Ohm |
C1 | 100 µF |
C2 | 100 nF |
C3, C4 | 15 à 33 pF |
D1 | Photo diode receptrice (dans le cas d'un boitier parallelepipedique, l'angle cassé sur le dessus de la LED indique la cathode) A priori a peu pres tous les modeles peuvent convenir; j'ai récupéré la mienne dans une television. Attention tout de meme de ne pas prendre un photo transistor, ca ne se branche pas pareil. |
D2 | Diode emetrice infra rouge 5mm quelconque. Vous pouvez eventuellement en mettre 2 (voir typon), pour augmenter la portée, mais dans ce cas il faut baisser la valeur de R4 (par exemple 15 Ohm ou moins). |
D3, D4 | LED 5mm |
T1, T2 | BC327-25 ou BC557B ou BC558B ou BC559B |
T3 | BC327 de preference (a cause du courant assez important qui circule dans D2). eve,tuellement BC557 |
T4 | BC337 de preference (a cause du courant assez important qui circule dans D2). eventuellement BC547 |
I1 à I6 | Interrupteurs poussoir miniatures à 4 pattes (voir la photo). Il faut imperativement qu'ils aient 4 pattes, car ces pattes sont reliées 2 à 2 à l'interieur de l'interrupteur et servent de strap de temps en temps. |
Q1 | Quartz 4MHz pour faire fonctionner le PIC |
S1 à S4 | Straps (morceaux de fil) |
Description:
Voici le typon. Vous devez telecharger le typon en cliquant tout en appuyant sur la touche MAJUSCULE: cliquez ici
Je rappelle qu'il faut telecharger le logiciel ARES Lite qui est gratuit. Il est disponible sur le site suivant: http://www.multipower-fr.com
Vous pouvez également cliquer ici pour voir comment faire pour imprimer votre typon
Réalisation:
Commencez par souder les 4 straps pour ne pas les oublier.
Concernant la diode receptrice, j'utilise un modele parallelepipedique noir recuperé dans une television. J'ai fait des essai avec plusieurs, ca a l'air de bien fonctionner à chaque fois. Pour verifier le bon fonctionnement de la partie reception, mettez le montage sous tension, et controlez la tension entre le collecteur de T1 et la masse. Elle doit valoir environ 0V quand le montage est dans le noir, et pas loin de 5V quand le montage est fortement eclairé.
Attention au sens de cette diode, si vous la mettez à l'envers la diode ou/et les transistors grilleront! Pour la mettre dans le bon sens, il suffit de la tester au multimetre.
Partie emission: Vous pouvez mettre une ou deux LED. Pour ma part, je n'en n'ai mis qu'une, la portée est generalement suffisante: 2m à 3m. Vous pouvez eventuelement baisser la valeur de R4, en effet dans ma telecommande de chaine, la valeur de cette resistance est 2.2 Ohm (alimenté sous 3V, 2V pour la diode, - 0.2V dans le transistor, ca fait un courant impulsionnel de (3 - 2 - 0.2)/2.2 = 350mA). Avec R4 = 39 Ohm, le courant n'est que de (5 - 2 - 0.2 - 0.2) / 39 = 66mA.
Interrupteurs: choisissez bien des modeles à 4 pattes, car ils servent egalement de straps (traits en pointillé sur le typon). Notez que les pattes sont deja reliés deux par deux à l'interieur de l'interrupteur, et qu'il n'est pas necessaire de les relier exterieurement.
Concernant l'alimentation: Le montage consomme moins de 700µA au repos dans un endroit faiblement eclairé. Avec des piles 300mAH, ca fait une autonomie d'environ 17 jours.
Il est preferable de ne pas utiliser de pile 4.5V, en effet, cette tension est limite, et le PIC peut ne pas arriver à ecrire dans l'EEPROM. Pour ma part, j'ai mis 4 piles rechargeables en serie. Avec une tension de 1.25V par pile, ca fait 5V environ. Attention, ca ne marche que parce que ce sont des piles rechargeable, ne faites surtout pas ca avec des piles normales, ca ferait 6V ce qui est trop pour le PIC.
Le circuit est assez compacte, avant de brancher, verifiez bien qu'aucun composant ne se touche.
Essais et mode d'emploi:
Le programme: Cliquez pour le telecharger: RecIR_12.asm. Vous pouvez egalement telecharger la version deja compilée: RecIR_12.hexSi tout ce passe bien: Lorsque vous mettez le montage sous tension, rien ne doit se passer. Appuyez alors sur I2. La LED du haut doit s'allumer. Le PIC va reconnaitre le type de telecommande que vous utilisez (il va mesurer la duree minimale d'un etat). Cette etape est appelée echantillonage dans mon programme.
Mettez vous dans un endroit faiblement eclairé pour ne pas perturber le montage, mettez la telecommande en face de la LED receptrice du montage (à quelques centimetres). Appuyez sur un peu tous les boutons de votre telecommande. La LED du bas doit clignoter tres rapidement lorsque vous appuyez. Au bout d'un certaint moment la LED du dessus va s'eteindre. Ca y est le PIC a reconnu le type de telecommande. Nous allons maintenant passer à la memorisation du code proprement dit:
~ Mettez la telecommande en face de la LED receptrice du montage (à quelques centimetres)
~ Appuyez sur le bouton I1 du montage, puis sur l'un des boutons I3 à I6 pour memoriser l'une des touche de votre telecommande.
~ Appuyez alors sur la touche de votre telecommande que vous voulez memoriser. La LED du dessus doit s'alluer un court instant. Pour reemetre le code de cette touche avec le montage, il suffit d'appuyer sur l'un des interrupteurs I3 à I6 (celui sur lequel vous avez appuyé quand vous avez enregistré le code)
Pour enregistrer d'autre touches, il suffit de refaire l'etape de memorisation. Il n'y a pas besoin de refaire l'etape d'echantillonage à chaque fois, sauf si vous changez de telecommande.
Si rien ne va plus:
Si aucune LED ne s'allume quand vous echantillonez, c'est qu'il y a un probleme au niveau du montage, regardez bien qu'il n'y a aucun court circuit. Si vous avez un oscilloscope, controlez que le quartz oscille. Si tout a l'air de fonctionner normalement, mais pourtant l'appereil concerné ne veut rien savoir:
~ Commencez par regarder s'il n'est pas de marque Panasonic ou Technics et peut etre d'autres. Dans ce cas, il faut que vous editiez le programme avec notepad ou xedit par exemple, et que vous enleviez le point virgule devant "#DEFINE Panasonic". En effet les codes de ces fabricants sont trop longs pour tenir sur 16bits; le fait d'enlever le ";" permet de memoriser sur 32bits. En contre partie, il n'y plus que deux memoires.
~ Vous pouvez egalement lire la memoire EEPROM avec le programmateur. Voici le contenu obtenu avec le logiciel P16Pro:
Il y a une ligne par touche. Les 15 premier octets correspondent au code. Les 2 premieres lignes proviennent d'une telecommande kenwood. Les deux dernieres d'une telecommande Philips.
Ce que vous pouvez verifier: Il doit normalement y avoir un zero juste avant le 16eme octet de chaque ligne. Sinon, il est possible que le code soit trop long, dans ce cas voyez ci dessus.
Le dernier octet du code correpsond a la vitesse d'emission. Convertissez le en decimal et regardez sa valeur. Il doit valoir environ 40 pour une telecommande Philips, Grundig; environ 122 pour une telecommande Kenwood, Goldstar; et environ 150 pour une telecommande Panasonic ou Technics.
~ Enfin regardez si la partie reception a l'air de fonctionner: controlez la tension entre le collecteur de T1 et la masse. Elle doit valoir environ 0V quand le montage est dans le noir, et pas loin de 5V quand le montage est fortement eclairé. A l'oscillo, vous devez voir des crenaux lorsque vous appuyez sur une touche de la telecommande mise en face du montage (base de temps 1ms).
Aucun commentaire:
Enregistrer un commentaire