Coucou,
voila un code arduino qui permet d'allumer 3 leds en fonction de la distance mesurée par le module ultrason HC SR04. J'aimerai définir les variables (capteurs actionneurs) et les différents tests de ce programme mais je n'en suis pas sûre.
merci d'avance
/* [HC-SR04] #Error-404.fr */
#define trigPin 13
#define echoPin 12
#define led1 11
#define led2 10
#define led3 9
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
/* On envoi une "salve" pendant une durée déterminé qui sera par la suite calculée */
distance = (duration/2) / 29.1; // On calcule la distance en fonction du temps
if (distance < 15) // 15 est la distance maximum de l'objet
{
digitalWrite(led3,HIGH); /* Si la distance est < 15 on allume la LED 3 */
digitalWrite(led2,LOW);
digitalWrite(led1,LOW); }
else {
if (distance > 30)
{
digitalWrite(led3,LOW);
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW); }
if (15 < distance < 30)
{
digitalWrite(led3,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW); }
}
if (distance >= 200 || distance <= 0) //On evite toute erreur due une distance trop grande ou trop faible.
{
Serial.println("Hors de portee");
}
else
{
Serial.print(distance); //On affiche la distance dans le moniteur serie
Serial.println(" cm");
} delay(100);
}