Go Down

Topic: Clap clap (Read 65 times) previous topic - next topic

gogo360

Bonjour, je voudrais réaliser un programme permettant d'allumer 2 LEDs au bout de 1 claquement de mains, et après deux claquements, les LEDs s'éteignent, et que ça affiche l'état de la led
J'ai fais un programme comme celui-ci :

const int CS=2;
const int Md=3;
const int Mg=4;
int Compteur=0;

void setup()
{
 pinMode(CS, INPUT);
 pinMode(Md, OUTPUT);
 pinMode(Mg, OUTPUT);
 Serial.begin(9600);
}

void loop()
{
  Compteur=0;
  if(digitalRead(CS)==HIGH)
  {
   Compteur++;
  }
  if(Compteur==1)
  {
  do
  {
   digitalWrite(Mg, HIGH);
   digitalWrite(Md, HIGH);
   Serial.println("LEDs allumees.");
   if(digitalRead(CS)==HIGH)
   {
   Compteur++;
   }
  } while (Compteur==1);
  }
 
  if(Compteur==3)
  {
   do
  {
   digitalWrite(Mg, LOW);
   digitalWrite(Md, LOW);
   Serial.println("LEDs eteintes");
   if(digitalRead(CS)==HIGH)
   {
   Compteur++;
   }
  } while (Compteur<=3);
  }
}

Mg et Md sont des LEDs
CS est un capteur son

Mon programme fait que lorsqu'on claque une fois dans les mains, ça s'allume, mais ensuite ça ne veut pas sortir de la boucle while lorsque je claque dans mes mains.

Pourriez vous m'aider à savoir comment je pourrais faire pour que mon programme fonctionne svp ? Merci

Christian_R

#1
Nov 10, 2014, 06:52 pm Last Edit: Nov 10, 2014, 06:52 pm by Christian_R
Dans ce genre de cas, l'utilisation de la synataxe Switch case rend le code plus lisible
http://arduino.cc/en/Reference/SwitchCase
Christian

B@tto

Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Go Up