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 : quand l’obstacle vient devant le capteur le moteur ne s’arrête pas, les LED s’allument normalement dans l’ordre d’allumage mais l’alarme ne retenti pas.
est-ce que c’est mon programme qui est incorrect ? ou un problème au niveau du capteur?
aidez moi s’il vous plait.
Voilà mon code :
//www.elegoo.com
//2016.12.08
#define DISABLE 13
int pinRelais = 9;
int tDelay=100;
#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);
delay(100);
pinMode(DISABLE,OUTPUT);
pinMode(pinRelais,OUTPUT);
Serial.begin(9600);
}
void loop() {
// commande ultrason
a=sr04.Distance();
Serial.print(a);
Serial.println("cm");
//commande moteur
if (a<40){
Serial.println("extinction du moteur");
digitalWrite(DISABLE,HIGH); // enable OFF
}
else if (a>=40){
Serial.println("réarmement du moteur");
digitalWrite(DISABLE,LOW); // enable ON
}
// commande alarme
if (a<80 && a>=0){
Serial.println("declenchement de l'alarme");
digitalWrite(pinRelais,HIGH); // enable On
}
else if (a>=80){
Serial.println("extinction de l'alarme");
digitalWrite(pinRelais,LOW); // enable OFF
}
//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);
digitalWrite(pinRelais,HIGH); //
digitalWrite(DISABLE,HIGH); // enable OFF
}
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);
//on active l'alarme
digitalWrite(pinRelais,HIGH); //
digitalWrite(DISABLE,LOW); // enable ON
}
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);
//on Désactive l'alarme
digitalWrite(pinRelais,LOW);
digitalWrite(DISABLE,LOW); // enable ON
}
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);
//on désactive l'alarme
digitalWrite(pinRelais,LOW);
digitalWrite(DISABLE,LOW); // enable ON
}
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);
digitalWrite(pinRelais,LOW); // enable on
digitalWrite(DISABLE,LOW); // enable ON
}
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);
// ALARME DESACTIVE
digitalWrite(pinRelais,LOW); // enable on
digitalWrite(DISABLE,LOW); // enable ON
}
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);
// ALARME DESACTIVE
digitalWrite(pinRelais,LOW); // enable on
digitalWrite(DISABLE,LOW); // enable ON
}
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);
// ALARME DESACTIVE
digitalWrite(pinRelais,LOW); // enable on
digitalWrite(DISABLE,LOW); // enable ON
}
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);
// ALARME DESACTIVE
digitalWrite(pinRelais,LOW); // enable on
digitalWrite(DISABLE,LOW); // enable ON
}
}