Problème développement Arduino

Fermé
iSparks - Modifié le 2 nov. 2018 à 18:28
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 5 nov. 2018 à 09:48
Bonjour ,

je viens de commencer le développement Arduino j'ai quelque petits problème avec la syntaxe du langage C je viens voir si quelqu’un peut m'aider pour débuter j'ai fais un petit programme avec une télécommande infrarouge et des leds la télécommande infrarouge sert a changer différents modes d'éclairage et a l'éteindre mais j'ai un petit problème une fois qu'un mode est actif impossible de changer de mode ou bien de l'éteindre je sais que c'est a cause du bloc que l'on joue en boucle mais je ne sais pas comment y remédier je vous met mon code en bas merci pour votre aide et vos conseils.
#include <IRremote.h>

const char DIN_RECEPTEUR_INFRAROUGE = 2;
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
const int LED6 = 8;
const int LED7 = 9;


IRrecv monRecepteurInfraRouge (DIN_RECEPTEUR_INFRAROUGE);

decode_results messageRecu;

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  Serial.begin(9600);
  monRecepteurInfraRouge.enableIRIn();
  monRecepteurInfraRouge.blink13(true);
}

void loop()
{
  if (monRecepteurInfraRouge.decode(&messageRecu))
  {
    Serial.println(messageRecu.value, HEX);
    if (messageRecu.value == 0xFF30CF){
      digitalWrite(LED1, HIGH);
      delay(100);
      digitalWrite(LED2, HIGH);
      delay(100);
      digitalWrite(LED3, HIGH);
      delay(100);
      digitalWrite(LED4, HIGH);
      delay(100);
      digitalWrite(LED5, HIGH);
      delay(100);
      digitalWrite(LED6, HIGH);
      delay(100);
      digitalWrite(LED7, HIGH);
      delay(100);
      digitalWrite(LED1, LOW);
      delay(100);
      digitalWrite(LED2, LOW);
      delay(100);
      digitalWrite(LED3, LOW);
      delay(100);
      digitalWrite(LED4, LOW);
      delay(100);
      digitalWrite(LED5, LOW);
      delay(100);
      digitalWrite(LED6, LOW);
      delay(100);
      digitalWrite(LED7, LOW);
      delay(100);
      return;
}

    if (messageRecu.value == 0xFF18E7){
      digitalWrite(LED1, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED5, HIGH);
      digitalWrite(LED7, HIGH);
      digitalWrite(LED2, LOW);
      digitalWrite(LED4, LOW);
      digitalWrite(LED6, LOW);
      delay(500);
      digitalWrite(LED1, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED5, LOW);
      digitalWrite(LED7, LOW);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED6, HIGH);
      delay(500);
      return;
}

    if (messageRecu.value == 0xFF7A85){
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
      digitalWrite(LED5, LOW);
      digitalWrite(LED6, LOW);
      digitalWrite(LED7, LOW);
      return;
}

    monRecepteurInfraRouge.resume();
  }

}

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
5 nov. 2018 à 09:48
Salut iSparks,

Est-ce que cela ne serait pas les instructions
return;
que tu as insérées à la fin de tes blocs
if
qui font que la boucle ne boucle pas :-)

Dal
0