Dernière mise à jour :
11/07/2026
Présentation
Cette
télécommande émet
des ordres IR (infrarouges) standards à destination d'un téléviseur,
d'un lecteur de DVD et d'une box Internet, par contact d'un doigt sur
des touches sensitives. Elle a été développée pour une personne n'ayant
plus de force manuelle pour presser les touches de télécommandes
standards. Les 16 codes que peut transmettre cette télécommande peuvent
être
quelconques, grâce à une méthode d'auto-apprentissage. Les fréquences
de porteuse IR supportées sont 33 kHz, 36 kHz, 38 kHz et 40 kHz.
Schéma
Le schéma repose sur un PIC 18F26K22.
Le
logiciel du PIC gère le clavier tactile (touches sensitives), le clavier standard
(boutons-poussoirs), la création des commandes IR à partir d'un
émulateur de terminal, et la réception des
commandes IR (fonction auto-apprentissage).
Fonctionnement général
Les ordres infrarouges de la télécommande peuvent être initiés par la
pression de boutons-poussoirs classiques ou par contact de touches
sensitives (tactiles) capacitives. Dans le premier cas, les 16 touches
sont câblées selon une traditionnelle matrice de 4 rangées et 4
colonnes qui ne réclame que 8 fils de liaison (R0 à R3 et C0 à C3).
Dans le second cas, un
circuit spécialisé TTP229 est mis en oeuvre, le PIC dialogue avec lui
par une liaison série I2C à 2 fils (horloge
Clock/SCL et
données
Data/MISO).
Programmation des codes à envoyer
Le code attribué à chaque touche peut être défini de deux façons :
- par auto-apprentissage du code reçu par le récepteur IR de la
télécommande (code envoyé par la télécommande à cloner)
- par envoi du code idoine sur le port série COM-UART (envoi depuis un
simple émulateur de terminal)
Dans tous les cas, le code peut contenir au maximum 120
informations binaires (120 bits). Pour exemple comparatif, un code de
télécommande répondant à
la norme RC5 comporte 14 bits, la place ne devrait pas manquer !
Remarque importante
: il faut en réalité enregistrer deux codes pour chaque
touche, ces deux codes pouvant être identiques ou différents. Dans une
même trame IR, on peut en effet trouver un bit d'information
qui permet de savoir si des commandes transmises
successivement le sont avec une touche maintenue pressée ou relâchée
entre deux. Ce bit de "bascule" (
toggle) change
simplement d'état quand une touche
est relachée puis pressée de nouveau et permet ainsi de détecter un
appui continu. C'est précisément ce bit (
toggle) qui permet
au récepteur (TV, lecteur DVD) de savoir si une même touche est
maintenue pressée (utile par exemple pour un réglage de volume).
Programmation des touches par auto-apprentissage
Dans ce mode de programmation, aucune saisie manuelle de code n'est
nécessaire. Il suffit de placer la LED d'émission IR de la télécommande
à cloner dans l'axe de la LED de réception IR de la télécommande 015
(la distance qui sépare les deux doit être comprise entre 1 mètre et 3
mètres pour assurer une bonne reconnaissance du code transmis par IR).
La procédure à suivre pour attribuer un code de télécommande à
l'une des 16 touches SW1 à SW16 est la suivante :
- préciser la fréquence de la porteuse (33, 36, 38 ou 40 kHz)
avec les cavaliers JP0 et JP1
- placer le système en mode Programmation en pressant le
bouton-poussoir SW18/Mode, la LED Mode clignote alors lentement
- presser la touche
de la télécommande 015 à laquelle attacher le code désiré (SW1
à SW16)
- envoyer l'ordre souhaité depuis la télécommande à
cloner vers la LED de
réception IR de la télécommande 015
- relâcher la touche de la télécommande à cloner, la LED Mode se met à
clignoter rapidement.
- presser à nouveau la même touche de la télécommande à cloner
Si les codes (identiques ou différents) ont été correctement
réceptionnés et enregistrés, la LED Mode s'arrête de clignoter.
Programmation des touches avec un émulateur de terminal
Dans ce mode de programmation, l'utilisateur doit
saisir manuellement le code à faire émettre par la
télécommande 015, par le biais d'un émulateur de terminal.
La procédure à suivre pour attribuer un code de télécommande à
l'une des 16 touches SW1 à SW16 est la suivante :
- relier l'entrée Rx de la télécommande 015 à la sortie Tx du port COM
de l'ordinateur sur lequel tourne l'émulateur de terminal (
Nota 1)
- relier la sortie Tx de la télécommande 015 à l'entrée Rx du port COM
de l'ordinateur sur lequel tourne l'émulateur de terminal (
Nota 2)
- préciser la fréquence de la porteuse (33, 36, 38 ou 40 kHz)
avec les cavaliers JP0 et JP1
- placer le système en mode Programmation en pressant le
bouton-poussoir SW18/Mode, la LED Mode clignote alors lentement
- presser la touche
de la télécommande 015
à laquelle attacher le code désiré (SW1 à SW16)
- envoyer le numéro de la touche à programmer (min 1, max 16).
- envoyer la valeur de la fréquence de la porteuse IR, en kHz (min 30, max 50)
- envoyer le nombre de bits constituant la trame de la
commande à envoyer (min 1, max 120).
- envoyer l'ordre souhaité (1è trame) depuis l'émulateur de
terminal (
Nota 3), la
LED Mode se met à clignoter rapidement
.
- envoyer l'ordre souhaité (2è trame) depuis l'émulateur de
terminal (
Nota 3), la
LED Mode s'arrête de clignoter.
- envoyer le code de sauvegarde en EEProm correspondant au numéro de la touche à programmer (min 1, max 16).
Si les trames ont été correctement réceptionnées, la
télécommande 015 renvoie au terminal les trames qu'il a reçues.
Nota 1 -
Port COM physique réel ou adaptateur USB-COM requis
Note 2 -
Liaison facultative mais conseillée, requise uniquement pour
confirmation visuelle du
code réceptionné
Nota 3 - Les
ordres souhaités (1è et 2è trames) doivent être transmis selon le
protocole indiqué ci-après.
Protocole des commandes pour programmation avec émulateur de
terminal
Paramètres
du terminal :
19200,8,1 ;
[CR] = Retour à la ligne (
Return).
La première commande à envoyer depuis le terminal est le
numéro de la touche à programmer. La commande doit commencer par la
lettre "K", être suivie du numéro de la touche (1, 2 ou 3 caractères)
puis être terminée par un Retour Charriot (CR = Return) :
Kxxx[CR]
Important
: le numéro de touche spécifié ici doit correspondre à la touche
correspondante pressée au préalable. Si les deux numéros de touche
(touche télécommande 015 et touche spécifiée dans le terminal) ne
correspondent pas, les commandes suivantes seront rejetées.
La deuxième commande doit indiquer la fréquence de la porteuse IR.
La
commande doit commencer par la lettre "F", être suivie de la fréquence
exprimée en kHz (par exemple 33 ou 40) puis être terminée par un Retour
Charriot (CR = Return) :
Lxxx[CR]
La
troisième commande doit indiquer la longueur de la commande. La
commande doit commencer par la lettre "L", être suivie du nombre de
bits de la trame, puis être terminée par un Retour
Charriot (CR = Return) :
Lxxx[CR]
La quatrième commande doit indiquer le contenu de la 1è trame. La commande
doit commencer par la lettre "A", être suivie de la valeur de chacun
des bits (0 ou 1) de la 1è trame, puis être terminée par un Retour
Charriot (CR = Return) :
Axxxxxxxxxxxxxx[CR]
La cinquième commande doit indiquer le contenu de la 2è trame. La
commande doit commencer par la lettre "B", être suivie de la valeur de
chacun des bits (0 ou 1) de la 2è trame, puis être terminée par un Retour
Charriot (CR = Return) :
Bxxxxxxxxxxxxxx[CR]
La sixième commande permet de sauvegarder les valeurs précédente dans l'EEProm du PIC. La
commande doit commencer par la lettre "S", être suivie du numéro de la touche (1, 2 ou 3 caractères)
puis être terminée par un Retour Charriot (CR = Return) :
Sxxx[CR]
L'exemple suivant s'applique à la touche 12, longueur de trame 14 bits (commande au protocole RC5) :
K12[CR]
F38[CR]
L14[CR]
A11000101110101[CR]
B11100101110101[CR]
S12[CR]
Stockage des codes en EEPROM
Les codes appris restent mémorisés dans l'EEPROM du PIC et persistent
donc même après une coupure de l'alimentation.
L'organisation
dans la plage mémoire est simple : on dispose avec le PIC choisi de
1024 octets et donc de 8192 bits. Comme on doit pouvoir sauvegarder 256
bits maximum par code de télécommande, on dispose de 32 plages de
mémoire (8192 / 256), soit 32 code de télécommande.
En limitant la longueur maximale d'une commande à 127 bits, il est
possible de doubler le nombre de commandes différentes.
Alimentation
L'alimentation requise par cette télécommande est de 3 V, le PIC est un
18
LFxxxx.
Aucun régulateur de tension n'a été prévu.
Circuit imprimé (PCB)
En cours de réalisation.
Logiciel du PIC
En cours de développement.
Télécommande
015 - 16F1826 - xx/xx/2026
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à
utiliser, merci de consulter la page
PIC - Sources.
Historique
xx/xx/2026
- Première mise à disposition.