valeur touche télécommande arduino

Quelque chose ne fonctionne pas dans mon code pour afficher en console, la valeur hexadécimale de chacune de mes touches de télécommande. ( petite TLC prévue pour arduino, made in China)
A chaque pression, j'obtiens la valeur 0, quelque soit la touche.
De ce fait, à l'inverse, en envoyant le code 0xFFA25D, rien ne se produit en retour aussI.
Pourtant largement utilisé tel quel, ce code est éprouvé, aurais-je un problème de librairie, pourtant provenant de Github? Serais-un problème de conversion Hexadécimal ? j'utilise une carte Nano, driver CH340, fonctionnant bien sur divers autres applications .
Je sollicite votre aide ici, car n'ai pas trouvé de post évoquant ce problème sur la toile.
Merci d'avance.

#include <IRremote.h>

int RECV_PIN=11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {  

  pinMode(13,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();

}

void loop() {
  if(irrecv.decode(&results))
  {
    Serial.println(results.value,HEX);
  
    delay(500);
    irrecv.resume();

    if(results.value == 0xFFA25D) {digitalWrite(13,HIGH);}   
    
}}

vaut mieux mettre le resume() à la fin et vous pouvez parler à la console plus rapidement

#include <IRremote.h>

const byte RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(11520);
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    if (results.value == 0xFFA25D) {
      digitalWrite(LED_BUILTIN, HIGH);
    }
    irrecv.resume();
  }
}

regardez du côté du câblage de votre récepteur IR (vous en avez bien un qui est connecté?)

cette modification de code change la valeur lue dans la console à chaque appui.
au lieu de 0 , j'obtiens x??x??xX?? avec le ? inversé.
Le récepteur IR est normalement connecté, d'autant que sa led comme celle de la carte nano, clignote à chaque appui sur l'une des touches tlc.

Passez la console à 115200 et corrigez la faute de frappe dans le code :wink: Serial.begin(115200);

je n'avais pas vu également cette erreur.
Changement résultats encore, Seuls des ?? inversés s'affichent cette fois.

La console est elle à 115200 bauds ??? ?

elle n'y était pas , mais corrigée, elle affiche des zéro comme à 9600 bauds.

Votre récepteur est dans doute mal branché ou endommagé alors ou ce n’est pas le bon récepteur...

Vous pouvez poster une photo claire du montage ?

pourtant télécommande et récepteur sont issus du même fournisseur.

La photo a l’air bien le capteur est peut-être défectueux

Vous avez un lien vers votre kit ?

Oui, le voici:
https://fr.aliexpress.com/item/32773714400.html?spm=a2g0s.9042311.0.0.547c6c372VrMN5

Ok ..

Il y a une led d’emission on dirait donc ce serait intéressant de voir si elle est détectée par le récepteur

En téléversant un autre code, destiné à copier celui d' autres télécommandes, nec, Sony etc ....
4 lignes s'affichent, communiquant la valeur, les code hexa et code decimal à 0, et de plus la console affiche ne reconnaître aucun type de code.
Cela pourrait confirmer l'hypothèse d'un récepteur défectueux. Il reçoit,oui, et renvoie une information. Sans doute très parasitée et indéchiffrable. les clignotements ne signifiant pas pour autant fonctionner correctement.

oui, une led d'émission fait partie du Kit.
Pour émettre, je dois faire un code via une autre carte Nano

Essayez avec d'autres télécommandes.

Bonjour. J'ai le même problème que Bisontin avec quasiment le même matériel : une petite télécommande et un récepteurs infrarouge VS1838B reçus dans un kit de démarrage Arduino il y a qq années.
Avec le script de base, le même qu'utilise Bisontin, je n'ai que des zéros affichés sur le terminal.
Avec le script "IRreceiveDump", fourni avec les exemples de la librairie IRremote, je vois passer les codes des touches de la télécommande. Ce qui exclus la panne du récepteur IR.
Malheureusement le code du script "IRreceiveDump" est d'un niveau supérieur à mes compétences informatiques, donc je ne sais pas le modifier pour l'adapter à mon besoin et je ne comprends pas pourquoi le script de base ne fonctionne pas.
Quelqu'un a t il une idée ? Merci d'avance.

J'ai fait divers essais avec d'autres télécommandes, du même type que celle du kit arduino, ainsi que de tv , ou autres....
obtenant systématiquement des Zéros.
Fin de journée ,lundi, je fais un essai avec IRreceiveDump ,afin de voir si comme Pelicanbleu, j'obtiens d'autres résultats, même si ce ne sont pas ceux espérés. ( Merci pour l'info, en attendant)

IRreceiveDump functionne sur la même bibliothèque et avec le meme principe mais lit/affiche les codes d'erreurs. effectivement ça peut aider à se faire une opinion sur ce qu'il se passe.

votre récepteur est il sous une lampe de bureau à LEDs ? avez vous essayé dans le noir ?

Je ne connais pas le VS1838B, je travaille plutôt avec des TSOP4838, également en 38KHz.
telecommande-de-relais-par-infra-rouge
Comme on peut le voir (voir paragraphe 3), le code est identique. Il a été essayé avec succès avec la télécommande d'un récepteur satellite Metronic et également celle d'un téléviseur Samsung.

bisontin:
Oui, le voici:
https://fr.aliexpress.com/item/32773714400.html?spm=a2g0s.9042311.0.0.547c6c372VrMN5

j'adore la traduction automatique du code qu'ils proposent :slight_smile:

# Inclure <IRremote. h>
  Int RECV_PIN = 11;
  IRrecv irrecv (RECV_PIN);
  Decode_results résultats;
  Vide setup ()
  {
    Série. Commencez (9600);
    Irrecv. enableIRIn ();//démarrer le récepteur
  }

  Boucle vide () {
    If (irrecv. decode (& resultats)) {
      Série. println (résultats. Valeur, HEX);
      Irrecv. Cv ();//recevoir la valeur suivante
    }
  }

surtout l'usage du CV pour traduire resume :wink: