Un petit peu d'aide s'il vous plait

Bonjour à toutes et tous.
Novice avec mon Arduino j’ai un petit soucis, que je n’arrive pas à régler.

Pour commencer, avec le code ci dessous :

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 11; //pin IR
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); //activation module IR
  pinMode(2, OUTPUT); //pin Led temoin
  digitalWrite(2, LOW);
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
  if(results.value==0xFFE01F){  //alluamge Led temoin lors de l'activation du bouton Vol-
    digitalWrite(2, HIGH);      
    delay(40);
  }

}

Le moniteur série me sort des valeurs complètements normales :
FFE01F
FFE01F
(en appuyant sur le même bouton)

Mon but suivant est de remplacer la led par un servo qui lirait la valeur d’un potentiomètre.
Je modifie donc le code :

#include <IRremote.h>
#include <IRremoteInt.h>
#include <Servo.h> //ajout de la bibliothèque servo

int RECV_PIN = 11; //pin IR
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo servo; //création de l'objet servo

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); //activation module IR
  pinMode(2, OUTPUT); //pin Led temoin
  digitalWrite(2, LOW);
  servo.attach(8); //liaison entre le servo et son pin
}

void loop() {
  int valeurPotar=analogRead(A0); //lecture de la valeur du potentiomètre
  int angle=map(valeurPotar,0,1023,25,179); //tranformation en angle
  servo.write(angle); //mise en position du servo
  
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
  if(results.value==0xFFE01F){  //alluamge Led temoin lors de l'activation du bouton Vol-
    digitalWrite(2, HIGH);      
    delay(40);
  }

}

Et la le moniteur série me sort des valeur random :
BCAAA6CB
10BB50F1
FCABFFBF
(en appuyant ici aussi sur le même bouton)

En trifouillant, j’ai l’impression que c’est la ligne :

servo.attach(8);

qui détraque tout.
Pourriez-vous m’aider ?

Merci d’avance.

Geoffrey

Geo-frai:
Le moniteur série me sort des valeurs complètements normales :
FFE01F
FFE01F
(en appuyant sur le même bouton)
...

Mon but suivant est de remplacer la led par un servo qui lirait la valeur d'un potentiomètre.

bonsoir
Ok pour le 1er interfaçage
Mais je ne comprend pas "du tout" ta derniere phrase :sunglasses:

explique "mieux/differement" ce que tu "souhaiterais" faire

Bonsoir,
Si tu penses que la ligne servo.write déconne, commente la et réessaye :wink:

Si le servo est alimenté par l'arduino, il pourrait écrouler l'alimentation (ou au moins la perturber) et planter la réception infrarouge. Si c'est le cas essaie d'alimenter le servo avec une alimentation séparée (en pensant à réunir les masses).

C’est bon, j’ai trouvé.
Il suffisait de mettre la 2ème fonction if, celle qui teste la valeur, à l’intérieur de la première celle qui vérifient les entrées infrarouges.
Merci de votre aide.

Voici le code corrigé et fini :

#include <IRremote.h>
#include <IRremoteInt.h>
#include <Servo.h>

Servo servo;
int RECV_PIN = 11; //pin lecture IR
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
servo.attach(9);
irrecv.enableIRIn(); // Initialise le recepteur
pinMode(2, OUTPUT);
pinMode(8, OUTPUT); //led temoin
digitalWrite(2, HIGH);
servo.write(15);
delay(1500);
digitalWrite(2, LOW);
digitalWrite(8, LOW); //led temoin
}

void loop() {
if (irrecv.decode(&results)) {
if(results.value==0xFF02FD){ //8
digitalWrite(2, HIGH);
servo.write(145);
delay(1500);
digitalWrite(2, LOW);
digitalWrite(8, HIGH);
}
if(results.value==0xFF22DD){
digitalWrite(2, HIGH);
servo.write(15);
delay(1500);
digitalWrite(2, LOW);
digitalWrite(8, LOW);
}

Serial.println(results.value, HEX);
irrecv.resume(); // Recoit la valeur suivante
}
}