je tente de piloter ma TV Panasonic avec mon arduino UNO, sans succès. Quelqu'un peut-il m'aider à trouver la coquille SVP.
Voici ce que j'ai fait, inspiré des divers tutoriels trouvés sur internet. Apparemment, j'ai loupé qque chose :
Avec mon capteur IR, j'ai récupéré le code d'une touche de ma télécommande.
Il s'agit ici de Power on/off = F61E2A57
J'ai pris ce code et je l'ai inclus dans le sketch suivant (récupéré aussi des tutos) !:
#include <IRremote.h>
IRsend irsend; #define PanasonicAddress 0x4004 // Panasonic address (Pre data) #define PanasonicPower 0xF61E2A57 // Panasonic Power button
void setup()
{
}
void loop() {
irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off
}
3) J'ai envoyé le signal avec un LED IR (cablage sur pin3, comme il se doit).
=> Résultat : RIEN >:(
A noter que dans les tutos trouvés, le code à utiliser était BCBD, à la place de F61E2A57. J'avais initialement essayé ce code BCBD mais sans plus de succès !!
qq'un pour m'aider SVP, je sèche misérablement depuis plusieurs jours sans savoir plus quoi faire !
Voici au bon format le code utilisé.
#include <IRremote.h>
IRsend irsend;
#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define PanasonicPower 0xF61E2A57 // Panasonic Power button
void setup()
{}
void loop() {
irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off
}
Peut-être les valeurs que tu utilises ne sont-elles pas bonnes.
Regarde ici et cherche la référence de ton équipement. Dans les fichiers de configuration il y a le code pour toutes les touches et le format de l'entête.
bonjour,
merci pour vos messages, mais rien n'y fait pour l'instant.
Voici toutefois ce que je constate. Pour vérifier le protocole utilisé, j'ai lancé IRrecvDump, comme préconisé dans le tuto rappelé par chimere322.
Deux constatations :
le protocole est inconnu, alors que tant ma TV que ma télécommande (achetée en mm tps) sont des Panasonic !
j'ai comparé le résultat de IRrecvDump (code F61E2A57 traduit en valeurs modulées me semble-t-il) et la traduction binaire du code (40040100BCBD) récupéré dans la liste LIRC donnée par fdufnews. Comparaison faite sous excel, image ci-joint => constatation, les profils sont les mêmes !!
=> je dirais donc que mon code ("F61E2A57") transporte les mêmes infos que celles indiquées dans la liste 'Panasonic'. C'est déjà une bonne chose !
Donc je suis reparti sur un code pour Arduino tel que celui-ci (avec les infos 'Panasonic') :
#include <IRremote.h>
#define PanasonicAddress 0x400401 // Panasonic address (Pre data)
#define PanasonicPower 0x00BCBD // Panasonic Power button
IRsend irsend;
void setup(){}
void loop() {
irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off
}
Et je reviens à la case départ : ma TV ne veut rien savoir
bonsoir,
je continue mes investigations, et je les explique dans ce forum, en espérant que j'arriverai à trouver enfin la solution avec l'aide éclairée de vos lumières !! (pas comme la télécommande que j'essaie de faire )...
Je me rends compte de qque chose d'intéressant : lorsque je film (avec mon tel portable) la led de ma télécommande en appuyant sur une touche, je vois très clairement le signal. Par contre, lorsque je fais de même sur la led branchée sur mon arduino, le signal perçu sur mon portable est très faible (mais existe) comparé à ma télécommande !
Voici la manière dont j'ai cablé ma led:
Sur la base du pgm rappelé dans mon précédent post, j'alimente mon anode sur pin3 directement, et la cathode est reliée à une résistance 100 Ohm, avec retour direct sur GND de l'arduino.
Les essais sont déjà faits avec une résistance de 100 Ohm (voir message précédent).
Je ne trouve pas la ref exacte de la diode IR, mais celle-ci m'a déjà servi pour d'autres applications, avec cette même résistance, et la puissance d'emission était largement suffisante.
Bonsoir,
J'ai trouvé une partie de la solution : C'est bon : j'arrive à allumer ma télé avec Arduino. Il fallait rajouter à mon sketch une temporisation de rebouclage. Avec un "delay(100) ;"le signal est reconnu !! super. C'est pas encore bon : la puissance de mon signal. Il faut que je sois à moins d'1 mètre de ma TV pour que ça marche.
J'ai mesuré l'intensité de charge de ma diode, et avec une 100 Ohm j'étais à approx 30mA. Je suis donc passé à 47 Ohm, ce qui fait que me diode supporte ponctuellement 60mA. Comme ça, je gagne de la distance, mais c'est encore loin de la perfo de la "vraie" télécommande !
Pensez-vous que je doive encore pousser l'intensité ??
Oui, il faut augmenter le courant pour augmenter la portée. Bien sur, il ne faut pas commander la led directement, mais par l'intermédiaire d'un transistor.
Les leds IR admettent couramment un courant de pic de 1A, bien sur il faut faire attention de ne pas les laisser allumées en permanence avec un tel courant (j'en ai déjà grillé suite à un bug soft qui les maintenait allumées).
merci pour l'info, quoi qu'elle me surprenne car les LED de forte puissance admettent généralement 0.1A avec pic jusqu'à 0.2A.
Ceci étant, vu le prix modique des LEDs, je suis tenté de forcer son intensité dans cette configuration de transmission modulée à 38khz, jusqu'à destruction. Un transistor fournira en effet ce qu'il faudra !
En tout état de cause, et pour tout lecteur intéressé de piloter une TV Panasonic par IR dont la télécommande est du type N2QAYB000xxx, voici le sketch qui marche.
#include <IRremote.h>
#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define Power 0x0100BCBD // Power button
IRsend irsend;
void setup(){ // This should turn your TV on and off
for (int i=0;i<20;i++) { // L'allumage de la TV ne se fait qu'après un certain nb d'émissions IR. Ici j'ai pris 20 salves espacées de 0.1s chacune
irsend.sendPanasonic(PanasonicAddress,Power); // Emission du signal modulé IR
delay(100); // NE PAS OUBLIER DE TEMPORISER AVANT LA PROCHAINE SALVE DE TRANSMISSION IR
}
}
void loop() {}
GRIGIS:
merci pour l'info, quoi qu'elle me surprenne car les LED de forte puissance admettent généralement 0.1A avec pic jusqu'à 0.2A.
Ceci étant, vu le prix modique des LEDs, je suis tenté de forcer son intensité dans cette configuration de transmission modulée à 38khz, jusqu'à destruction. Un transistor fournira en effet ce qu'il faudra !
Bonsoir
Tu peux aussi t'inspirer des commandes de puissances des LED IR utilisées ici ou là sur du "... TV-BE-Gone"
un exemple là
bonsoir,
merci pour le lien.
J'ai testé ma diode led pour savoir jusqu'où elle pouvait aller : en sortie arduino sur une 1kOhm, j'ai enchainé 2 étages de transistor NPN 2N2222, avec diode entre VCC+5V et collecteur du second transistor. ... et je confirme le propos de kamill, la diode tolère une forte intensité. Mais à trop rester alimenté, la diode s'est détruite ...
Bilan : la puissance de mon dispositif est maintenant équivalent à celui d'une télécommande du commerce, mais il ne faut pas laisser allumé la diode (donc rester appuyé sur ma télécommande) trop longtemps !
Merci