Electronique > Réalisations > Télécommandes > Télécommande 010

Dernière mise à jour : 09/06/2019

Présentation

Cette télécommande permet de démarrer ou d'arrêter à distance un appareil quelconque. Elle a été développée pour une liaison avec faisceau laser, mais un autre support de transmission peut bien sûr être utilisé.

telecommande_010_pcb_3d_a

Ses caractéristiques principales sont les suivantes (à défaut d'être les précédentes) :
L'allumage et l'extinction de l'appareil distant peut se faire avec un seul bouton Start/Stop, ou avec deux boutons indépendants Start et Stop. Le système dispose de deux sorties maintenues (bascule) complémentaires, et de trois sorties délivrant des impulsions lors des changements d'état.

Schéma

Les deux appareils A (à gauche) et B (à droite) sont rigoureusement identiques et construits autour d'un microcontrôleur PIC 18F2520. Chacun peut servir en même temps d'émetteur et de récepteur.

telecommande_010

Remarque : ce schéma ne montre que le coeur du système. La section dédiée à la transmission (optique ou filaire) sera vue plus loin.

Fonctionnement général
Les deux appareil A et B peuvent simultanément émettre et recevoir des données, la transmission est bidirectionnelle. Chaque appareil effectue en permanence les tâches suivantes :
Après réception d'un ordre valide, le récepteur envoie un accusé de réception, cet accusé bien sûr ne peut être utilisé que s'il existe une voie de retour (liaison bidirectionnelle full duplex). En absence d'accusé de réception, la LED de l'émetteur clignote 1 fois lors de l'émission d'un ordre. En présence d'un accusé de réception, la LED de l'émetteur clignote 3 fois (1 fois + 2 fois) lors de l'émission d'un ordre.

Sélection du code
L'oeil soucieux du lecteur que je perçois à travers l'écran ne trompe pas : comment obtenir 16 millions de codes possibles avec seulement 8 micro-interrupteurs (DSW1) qui en théorie ne devraient pouvoir offrir que 256 possibilités ? Grâce à une astuce fort simple : le même paquet de 8 interrupteurs sert pour définir 3 octets différents. Trois octets équivalent à 24 bits, soit 16777216 codes possibles. Pour modifier le code en cours, suivre la procédure décrite ci-après.

Etape 1 - Placer le système en mode Programmation :
- Eteindre le système.
- Placer l'entrée RA3 à +5V avec JP1/Prog côté +Valim (mode Prog).
- Mettre le système sous tension.
Etape 2 - Sélection/programmation du premier octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #1)
- Presser le bouton-poussoir SW1/Start-Stop jusqu'à ce que la LED clignote (2 fois)
Etape 3 - Sélection/programmation du second octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #2)
- Presser le bouton-poussoir SW2/Start jusqu'à ce que la LED clignote (3 fois)
Etape 4 - Sélection/programmation du troisième octet :
- Configurer les 8 interrupteurs DSW1 comme bon vous semble (octet #3)
- Presser le bouton-poussoir SW3/Stop jusqu'à ce que la LED clignote (4 fois)
Etape 5 - Retour en mode Normal (sortie du mode programmation) :
- Placer l'entrée RA3 à 0V avec JP1/Prog côté masse (mode Normal).

Ces étapes doivent être répétées à l'identique pour les deux circuits émetteur et récepteur, en plaçant bien évidement les 8 interrupteurs DSW1 dans la même configuration pour l'émetteur et le récepteur.

Remarques

Sorties
5 sorties sont disponibles, de type "T" (Toggle, bascule) ou "P" (Pulse, impulsion) :
Ces sorties sont en logique TTL, 0V ou +5V et ne doivent pas débiter plus de 20 mA. La sortie P1 doit être utilisée si l'appareil à commander réclame une impulsion sur une unique entrée pour la mise en route et pour l'arrêt. Les sorties P2 et P3 peuvent par exemple être utilisées pour piloter un relais bistable (avec deux bobines de commande séparées).

Transmission des données
La vitesse de transmission des données a été fixée à 4800 bauds, c'est une valeur assez faible mais qui permet une liaison fiable avec un support de transmission "un peu limite". Les données sont transmises dans une trame de longeur fixe de 8 octets :
- 1 octet START (début de trame)
- 4 octets "CODE" (code commun à l'émetteur et au récepteur) - Nota 1
- 1 octet "COMMANDE" (ordre de marche ou d'arrêt)
- 1 octet CRC (contrôle de validité de la trame) - Nota 2
- 1 octet STOP (fin de trame)
Nota 1 : le code spécifié par l'utilisateur tient sur 3 octets (24 bits) mais il est transmis de manière "répartie" sur 4 octets.
Nota 2 : le récepteur ne valide la commande reçue que si l'octet de CRC calculé à la réception (à partir des données reçues) est identique à l'octet CRC transmis.

Support de transmission
Le support de transmission peut être électrique ou optique, il suffit d'ajouter les composants requis pour garantir une liaison fiable.
Pour disposer de la liaison bi-directionnelle, il faut disposer de deux supports de transmission indépendants (ici, pas de multiplexage). Moins facile en HF...

Exemple de liaison par LASER (avec exercice à la clé) :

telecommande_010_link-laser

Petit exercice que je vous laisse résoudre par vous-même (4 questions) :
1 - Sachant que les données émises par la sortie Rx de l'UART du PIC et que celles qui arrivent sur l'entrée Rx de l'UART du PIC doivent être en logique inversée (état 0 pour une donnée à l'état 1), comment la diode LASER doit-elle être raccordée ? Cathode côté masse et anode en sortie TX, ou cathode en sortie Tx et anode côté +5V ?
2 - Qu'observe-t-on si on intervertit les deux entrées [+] et [-] du circuit CA3140 ?
3 - Quel est le rôle de la diode D303 (réponse dans datasheet du CA3140) ? Dans le cas présent, peut-on la supprimer ?
4 - Un oscilloscope est-il indispensable pour s'en sortir, en cas de non fonctionnement ?

Alimentation
L'alimentation de l'appareil émetteur, s'il est portable, se fait avec une pile 9V. Côté récepteur, une alimentation secteur (sortie 9Vdc) est recommandée. Les deux appareils possèdent leur propre régulateur de tension 5V, valeur requise pour le PIC.

Circuit imprimé

Non réalisé. La vue 3D n'est là que pour donner un aperçu, et le PCB ne comporte pas les composants requis pour s'adapter au support de transmission choisi.

Logiciel des PIC

Le code disponible ici en libre téléchargement est une version limitée à 256 codes différents, sans la fonction d'accusé de réception. La version à 16 millions de codes incluant la fonction d'accusé de réception peut être livrée en échange d'un petit geste de votre part ;)
Télécommande 010 - 18F2520 - LE - 09/06/2019
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Historique

09/06/2019
- Première mise à disposition.