Transmetteur HF codé simple avec PIC 16F84
Ce montage ne differe pas de la precedente version toujours disponible, à base de deux UM3750 utilisé en codage et décodage. J'ai juste ajouté en sortie un PIC 16F84 qui est solution des nbeux besoins que l'on peut avoir avec une telecommande : temporisations, etc...
1. L'émetteur :
La télécommande utilise un boitier porte-clé avec 1 bouton (prix env. 15-20FF un peu partout : Arquie, Farnell, etc...) ; le circuit est composé d'un UM3750 version CMS pour un gain non fortuit de place, et un emetteur miniature TX-433 de chez Mipot. J'ai mis une antenne de longueur 15.5cm dans la télécommande (broche 3). Le codage du signal s'effectue en coupant ou non les pistes reliant les broches 1 à 12 du UM3750 à la masse (les laisser en l'air revient à mettre un 1). La fréquence d'oscillation est déterminée par une resistance de 100k et une capa de 100pF.
2. Le récepteur :
Apres une petite alim de +5V à base de classique 7805, on trouve un recepteur TELECONTROLLI ref. RR3-433. Vous pourrez bien entendu le remplacer par un autre modele de chez Mipot, en veillant à bien relier les broches Vcc, Masse, Antenne, Sortie. Le module que j'utilise est remarquable par sa compatibilité avec les modules Mipot et Aurel : pour une utilisation avec un module Mipot (ce qui est notre cas), il faut mettre Vcc aux broches 1,12,15. Pour un emetteur Aurel, il faut mettre Vcc aux broches 1,10,15. Ensuite la sortie attaque un UM3750, programmé pour le même codage et la même fréquence (même RC). La sortie du decodeur est à 1 en etat normal et 0 lorsqu'il detecte un signal correct. ce signal attaque alors l'entrée 3 du port A du PIC.
3. Le PIC 16F84 :
Celui-ci se comporte en fait comme une bascule, qui fait de la sortie du rcepteur de la telecommande une sortie bistable, pouvant commander relais, etc., auquel sont ajoutées plusieurs lignes auxiliaires temporisées. On selectionne l'etat initial de la sortie au demarrage du recepteur par le bit 2 du port A. Tout chabngement d'etat initial s'effectuera recepteur eteint car il sera prix en compte au lancement du programmme.
Tout d'abord on sélectionne le mode d'action du PIC. Tout changement, là aussi, sera pris en compte en debut de mise sous tension du PIC.
Port | Etat | On a attendu | Temps Total depuis Reception Signal |
1. RA3 | Reçois un signal | x (boucle infinie d'attente) | |
2. RB1 | Change d'etat | 0 | 0 |
3. RB3-6 | Passent à 1 | 0 | 0 |
4. RB3 | Passe à 0 | 200ms | 200ms |
5. RB4 | Passe à 0 | 200ms | 400ms |
6. RB5 | Passe à 0 | 600ms | 1s |
7. RB6 | Passe à 0 | 2s | 3s |
On revient en attente (1) |
Bien sûr ce programme est améliorable. Dans un cas de fonctionnement sur pile ou en tres faible consommation, il serait préférable de mettre le PIC en sommeil (sleep), et il serait réveillé par un changement d'etat sur RA3 (ou sur le port B plutôt, car je ne sais pas si c'est possible sur A). Sa consommation en attente serait inférieure à celle dans la boucle infinie d'attente de changement (btfsc PORTA,3 goto §-1 suite du programme).
Le quartz est prévu pour 4MHz (mais bon j'ai mis un jour un 4.332MHz et ça marchait tres bien). Ses habituelles capas sont de 15pF à 33pF (valeurs limites). Les entrées RA1,RA2 et MCLR (Reset) sont gardées par des resistances de pull-up (1k). On choisit le mode ou l'etat initial pour RA1 et RA2 soit en laissant tout normal soit en mettant un strap reliant les entrées à la masse.
Si tout ceci n'est pas encore tres clair, regardez le programme en asm, il est commenté. De plus c'est un de mes premiers programmes (et en plus qui fonctionne ; heureusement sinon je l'aurais pas mis là...), donc il n'est pas structuré en 50 sous-programmes et est tres court. Les instructions se suivent simplement. Mais ça marche, alors ya rien à dire !
Les codes que j'utilisent pour les temporisations ont été générés par un programme (ben oui puisque ça existe je l'utilise, pourquoi se faire chier !), PICDEL, qui selon la fréquence d'horloge et le delai que vous aurez entré, vous donne la procédure à inclure. Vous pouvez le téléchargez ci-dessous.
4. Fichiers