Bac-Ka-Poux-Bêle 2019-2020

Bonjour !! je suis un nouveau sur votre forum et aussi un passionné de l’outil Arduino. Je tiens à vous rappeler que je suis à mes débuts dans cet univers. Cependant j’ai eu à rencontrer quelques difficultés en ce qui concerne le capteur ultrason. Mon petit projet à pour but de commander un moteur, 09 LED , ainsi qu’une sonnerie d’alarme à l’aide des distances déterminées par le capteur ultrason.
J’ai réussi à faire le montage mais j’ai remarqué que l’allumage des 09 LED est beaucoup plus stable et précis. Mais hélas cependant le moteur tourne mais ne s’arrete pas quand l’obstacle est proche . l’alarme aussi ne retenti pas.
A un moment jai essayé d’inclure les conditions d’allumage du moteur et de l’alarme dans la partie traitement des LEDS mais aucun résultat positif. Que faire ………
Voilà le code :
Code : [Select]
//www.elegoo.com
//2016.12.08
#define DISABLE 13

int pinRelais = 9;

int tDelay=3000;

#include "SR04.h"
#define TRIG_PIN 12
#define ECHO_PIN 11
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
long a;

int greenLED = 10;
int greenLED2 = 14;
int greenLED3 = 2;
int yellowLED = 3;
int yellowLED2 = 4;
int yellowLED3 = 5;
int redLED = 6;
int redLED2 = 7;
int redLED3 = 8;

void setup() {

pinMode (greenLED,OUTPUT);
pinMode (greenLED2,OUTPUT);
pinMode (greenLED3,OUTPUT);
pinMode (yellowLED,OUTPUT);
pinMode (yellowLED2,OUTPUT);
pinMode (yellowLED3,OUTPUT);
pinMode (redLED, OUTPUT);
pinMode (redLED2,OUTPUT);
pinMode (redLED3, OUTPUT);
pinMode(DISABLE,OUTPUT);
pinMode(pinRelais,OUTPUT);
Serial.begin(9600);

}

void loop() {

a=sr04.Distance();
Serial.print(a);
Serial.println("cm");

//commande moteur et alarme
if (a<40){
Serial.println("extinction du moteur et déclenchement de l'alarme");
digitalWrite(DISABLE,HIGH); // enable low
digitalWrite(pinRelais,HIGH); // enable On
delay(1000);

}
else if (a>=40){
Serial.println("réarmement du moteur et extinction de l'alarme");
digitalWrite(DISABLE,LOW); // enable ON
digitalWrite(pinRelais,LOW); // enable low

}

//Commande allumage LED
if(a<40){

Serial.println("Allumage des Led vertes, des LED jaune puis des LED rouge et réamement du moteur");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,HIGH);
digitalWrite(yellowLED3,HIGH);
digitalWrite(redLED,HIGH);
digitalWrite(redLED2,HIGH);
digitalWrite(redLED3,HIGH);

}
if(a>=40 && a<80){
Serial.println("Allumage des Led vertes et des LED jaune puis de la premiere et 2eme LED rouge. extinction de la 3eme LED rouge");

digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,HIGH);
digitalWrite(yellowLED3,HIGH);
digitalWrite(redLED,HIGH);
digitalWrite(redLED2,HIGH);
digitalWrite(redLED3,LOW);

}

if (a>=80 && a<100){

Serial.println("Allumage des Led vertes et des LED jaune puis de la premiere LED rouge. extinction des 2eme et 3eme LED rouge");

digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,HIGH);
digitalWrite(yellowLED3,HIGH);
digitalWrite(redLED,HIGH);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}

if (a>=100 && a<150){
Serial.println("Allumage des Led vertes et des LED jaune puis . extinction deS LED rouge");

digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,HIGH);
digitalWrite(yellowLED3,HIGH);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}

if(a>=150 && a<200){
Serial.println("Allumage des Led vertes et des 1ere et 2eme LED jaune. extinction de la 3ème LED jaune et des LED rouge");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,HIGH);
digitalWrite(yellowLED3,LOW);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}
if(a>=200 && a<250){
Serial.println("Allumage des Led vertes et de La 1ere LED jaune. extinction de la 2ème et 3ème LED jaune et des LED rouge");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,HIGH);
digitalWrite(yellowLED2,LOW);
digitalWrite(yellowLED3,LOW);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}
if(a>=250 && a<350){
Serial.println("Allumage des Led vertes et extinction dES LED jaune et des LED rouge");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,HIGH);
digitalWrite(yellowLED,LOW);
digitalWrite(yellowLED2,LOW);
digitalWrite(yellowLED3,LOW);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}
if(a>=350 && a<400){
Serial.println("Allumage de LA 1ère et 2ème Led verte et extinction des LED jaune et rouge et 3ème LED VERTE");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,HIGH);
digitalWrite(greenLED3,LOW);
digitalWrite(yellowLED,LOW);
digitalWrite(yellowLED2,LOW);
digitalWrite(yellowLED3,LOW);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}

if(a>=400){

Serial.println("Allumage de LA 1ère Led verte et extinction des LED jaune et rouge et 3ème ET 2éme LED VERTE");
digitalWrite(greenLED,HIGH);
digitalWrite(greenLED2,LOW);
digitalWrite(greenLED3,LOW);
digitalWrite(yellowLED,LOW);
digitalWrite(yellowLED2,LOW);
digitalWrite(yellowLED3,LOW);
digitalWrite(redLED,LOW);
digitalWrite(redLED2,LOW);
digitalWrite(redLED3,LOW);

}

}