Besoin d'aide pour émettre de l'IR.

Bonjour à tous,
Je suis un très grand débutant de l'IR, je n'en avais jamais fait et je voudrais comprendre comment ça marche car j'aime beaucoup l'IR :stuck_out_tongue: . Bref, j'ai commencé un projet pour essayer d'éteindre ma télévision, le modèle de la télécommande est une BN59-01014A.
Donc, pour commencer ce projet j'ai commencé à relever les données à l'aide d'un programme et d'un récepteur IR qui m'a déjà donné ceci à l'appui de la touche power:
9 5B 58 B 20 4 E0 E0 40 BF
9 5A 58 B 20 4 E0 E0 40 BF

Ainsi, avec ceci et plusieurs recherches j'ai trouvé que les 4 derniers bits sont les plus importants, par conséquent, le code de la touche power devrait être : 0x40BF .
Cependant, ayant deux choses cruciales qui me manquaient, le protocole et le nombre de bits, j'ai décidé d'essayer un autre programme pour le détecter. Ce programme m'a donné ceci pour la même touche power :

F4BA2988
Unknown encoding: F4BA2988 (32 bits)
Raw (68): 31240 4500 -4450 550 -1650 600 -1600 600 -1650 550 -550 550 -550 550 -550 600 -500 600 -500

600 -1650 600 -1600 600 -1650 550 -550 550 -550 600 -500 600 -500 600 -500 600 -550 550 -1650 600 -500

600 -500 600 -500 600 -550 550 -550 600 -500 550 -1650 600 -550 550 -1650 600 -1600 550 -1700 550 -1650

600 -1600 600 -1650 550

Et là, je ne comprends strictement plus rien, le code est-il 0xF4BA2988 ou est-ce 0x40BF ?
De plus, je n'ai pas pu recueillir le protocole (NEC, RC5, RC6 etc...) mon projet est-il mort dans l'oeuf ?
PS : Avec ces codes j'ai essayé un programme en mettant les protocoles NEC, puis RC5 sans succès malgré qu'un signal est émis en regardant avec la caméra ce qui est déjà un bon point je suppose.

Merci d'avance à tout ceux qui m'aideront.

PS2 : Voici le programme utilisé pour émettre :

#include <IRremote.h>

IRsend irsend;

void setup() {
}

void loop() {

for (int i = 0; i < 3; i++) {
irsend.sendNEC(0x40BF, 16); // Samsung TV POWER CODE
delay(40);
}
}

ou

#include <IRremote.h>

IRsend irsend;

void setup() {
}

void loop() {

for (int i = 0; i < 3; i++) {
irsend.sendNEC(0xF4BA2988, 32); // Samsung TV POWER CODE
delay(40);
}
}

Mais du coup, le “NEC” reste anecdotique dans le programme puisqu’il semble ne pas marcher, en vérité je ne sais pas ce qui ne fonctionne pas.

up

une piste:

et sa suite:

Justement ça ne m'aide pas car même avec le programme qui donne toutes les informations ce dernier ne parvient pas à trouver le protocole utilisé :confused: .

tu utilises bien la broche 11?

un autre lien:
http://lirc.sourceforge.net/remotes/samsung/

J'ai déjà visité ce lien, ma télécommande est une BN59-01014A et elle n'y figure malheureusement pas. La broche 11 ? Pourquoi l'utilisée ? De toute façon ça me fournit les informations donc ça doit marcher non?

PS : j'ai un émetteur infrarouge grove sur la pin D3 .

broche 3 pour 11
no problem si tu la configure bien dans le prg
un autre lien

Justement je m'étais aussi aidé de ce lien x).
Mais comment on configure quelque chose qui n'est pas déclaré ? Car je ne vois à aucun moment une introduction de la broche 3 pour 11 dans le programme.

non, oublies, je confond avec autre chose

Ok, donc aurais-tu une idée de comment trouver le protocole ? Car je pense que c'est ça le problème, à moins que je ne me trompe :confused: .

up

As tu essayé d’émettre l’intégralité du code que tu as noté (9 5B 58 B 20 4 E0 E0 40 BF), et pas juste les derniers bits ?

Je ne vois pas comment faire, comment le noter et je ne sais pas si ça marcherait puisqu'il y a deux lignes, peux-tu m'expliquer avec le programme que j'utilise comment tu le noterais stp ? Mais il me semble que de toute façon, seule la fin compte où ici par exemple : http://sourceforge.net/p/lirc/mailman/message/31885234/
ils disent que le code est bien et seulement 0x40BF.
Donc je ne pense pas que ce soit la solution :confused:

Ah mais vu que c'est une télécommande Samsung je ne devrais pas utilisé le protocole Samsung (avec la fonction sendSamsung) ? Par contre je ne l'ai pas dans ma librairie et le cherche désespérément :confused:

Hello_I_am_Sam:
Ah mais vu que c'est une télécommande Samsung je ne devrais pas utilisé le protocole Samsung (avec la fonction sendSamsung) ? Par contre je ne l'ai pas dans ma librairie et le cherche désespérément :confused:

sous toutes reserves :
Il me semble que le protocole IFR Samsung impose des timing très "contraignants"

C'est à dire Artouste ? Tu parles du delay ?

Rebonjour, j’ai réussi avec ma télécommande SFR possédant un protocole NEC. Le problème ne venait donc pas de moi mais de l’absence du protocole Samsung dans la librairie(en effet quand je met “irsend.sendSamsung” le sendSamsung n’est pas surligné orange). Toujours pas de solutions svp :confused: ?

Ce qui est très étrange c’est que la méthode sendSamsung() est implémentée mais elle est privée (et inutilisée).
Voici l’implémentation qu’on trouve dans IRemote.cpp:

void IRsend::sendSAMSUNG(unsigned long data, int nbits)
{
  enableIROut(38);
  mark(SAMSUNG_HDR_MARK);
  space(SAMSUNG_HDR_SPACE);
  for (int i = 0; i < nbits; i++) {
    if (data & TOPBIT) {
      mark(SAMSUNG_BIT_MARK);
      space(SAMSUNG_ONE_SPACE);
    } 
    else {
      mark(SAMSUNG_BIT_MARK);
      space(SAMSUNG_ZERO_SPACE);
    }
    data <<= 1;
  }
  mark(SAMSUNG_BIT_MARK);
  space(0);
}

Tu pourrais essayer de la mettre en public dans IRemote.h (en déplacer la déclaration) afin de pouvoir l’utiliser. Elle fonctionne peut-être?

Salut,
merci mais il me semble que j'avais essayé mais ça ne fait rien de plus :confused: . Après peut-être que je m'y prends mal. Pourrais-tu le faire de ton côté vite fait et me dire si ça marche stp ?