Arduino programme pour contrôler un moteur avec une télécommande ir

bonjour,
Je veux contrôler un moteur DC avec mon arduino uno R3 et une télécommande IR (j’ai déjà réalisé mon montage) : je veux avec une touche faire tourner le moteur adroite et une autre le faire tourner a gauche et une autre le stopper…
j’ai déjà écrit un sketch et ça ne marche pas il y’a forcement des erreurs dans le code SVP aidez moi a les corriger :slight_smile:
voila mon sketch et merci d’avance :smiley:

[
#include <IRremote.h>
int recv_pin = 11;
int motord = 2;
int motorg = 3;
IRrecv reception_ir(recv_pin); // crée une instance 
decode_results decode_ir; // stockage données reçues
                         
void setup()
{
  reception_ir.enableIRIn();
  pinMode(motord, OUTPUT);
  pinMode(motorg, OUTPUT);
  pinMode(recv_pin, INPUT);
}  
void loop ()
{
 if (reception_ir.decode(&decode_ir)) 
  { 
   if(decode_ir.value == 0x20df609f)
{
 digitalWrite(motord, LOW);
 digitalWrite(motorg, HIGH); 
 
}
if (decode_ir.value == 0x20dfe01f)
{
digitalWrite(motord, HIGH); 
    digitalWrite(motorg, LOW); 
    
} 
if(decode_ir.value == 0x20df22dd)
{
  digitalWrite(motord, LOW); 
    digitalWrite(motorg, LOW); 
}
} 
} 
]

kaky951357:
j'ai déjà écrit un sketch et ça ne marche pas SVP aidez moi :slight_smile:

C'est à dire ???

Autrement le code entre balise .., utiliser le bouton # au-dessus de la fenêtre de saisie.
Tu peux modifier le contenu de ton post pour corriger ça.

Voila j’ai rectifié mon code et merci fdufnews .
En attente de votre réponse.
cordialement.

Bonjour,

La fonction resume() ne sert pas qu’à faire jolie :wink:

#include <IRremote.h>

const byte IR_RECV_PIN = 11;
const byte MOTOR_D_PIN = 2;
const byte MOTOR_G_PIN = 3;

IRrecv irrecv(IR_RECV_PIN);
decode_results results;

void setup() {
  irrecv.enableIRIn();

  pinMode(MOTOR_D_PIN, OUTPUT);
  pinMode(MOTOR_G_PIN, OUTPUT);
}  
void loop () {
  if (irrecv.decode(&results)) { 

    if(results.value == 0x20df609f) {
      digitalWrite(MOTOR_D_PIN, LOW);
      digitalWrite(MOTOR_G_PIN, HIGH); 

    }  else if (results.value == 0x20dfe01f) {
      digitalWrite(MOTOR_D_PIN, HIGH); 
      digitalWrite(MOTOR_G_PIN, LOW); 

    }  else if(results.value == 0x20df22dd) {
      digitalWrite(MOTOR_D_PIN, LOW); 
      digitalWrite(MOTOR_G_PIN, LOW); 
    }

    irrecv.resume();
  } 
}