Plusieurs capteur ultrason

Omega
jeu, 03/09/2017 - 09:57
Bonjours voila mon probleme , je dois connecter plusieurs capteur ultrason dans 1 programme , pour en faire fonctionner , pas de probleme , mais arriver a 2 , le 2e ne fonctionne pas , voicis mon programme ;
on ma parler du switch case mais je ne sais pas ou et comment m'en servvir merci de vos reponse .
// définition des broches utilisées
int trig1 = 12;
int echo1 = 11;
int trig2 = 9;
int echo2 = 10;
long lecture_echo1;
long lecture_echo2;
long cm1;
long cm2;
void setup() {
//Définition des entrées/Sorties
pinMode(trig1, OUTPUT);
pinMode(trig2, OUTPUT);
digitalWrite(trig1, LOW);
digitalWrite(trig2, LOW);
pinMode(echo1, INPUT);
pinMode(echo2, INPUT);
//Liaison série
Serial.begin(9600);
}
void loop() {
//lancement de l'impulsion
digitalWrite(trig1, HIGH);
delayMicroseconds(10);
digitalWrite(trig1, LOW);
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
//Mesure de la pulsion
lecture_echo1 = pulseIn(echo1, HIGH);
lecture_echo2 = pulseIn(echo2, HIGH);
//calcul de la distance en centimetre
cm1 = lecture_echo1 / 58;
cm2 = lecture_echo2 / 58;
//Afficher distance dans moniteur serie
Serial.print("Distance en cm SENSOR1 : ");
Serial.println(cm1);
delay(1000);
Serial.print("Distance en cm SENSOR2 : ");
Serial.println(cm2);
delay(1000);
if(cm1 > 20 && cm1 < 60){
Serial.print ("EN VUS D'UN OBTACLE");}
if(cm2 > 20 && cm2 < 60){
Serial.print ("EN VUS D'UN OBSTACLE 2");
}
}
Nathan Garnier
jeu, 03/09/2017 - 12:31
Bonjour,
Pour assurer la lecture des 2 capteur il faut faire par "séquence" cet a dire, vous faite l'acquisition entière pour un capteur et après vous faites l'autre
Omega
jeu, 03/09/2017 - 16:07
Merci de ta reponse Nathan , cela veux dire qu'il ne faut pas que je melange le programme comme je viens de le faire mais que j'an crée un 2em a la suite du 1er ?
Nathan Garnier
jeu, 03/09/2017 - 16:19
Oui c'est tt a fait sa.
Omega
sam, 03/11/2017 - 10:27
J'ai essayé comme vous m'avez dit mais quand je refais le programme en séquence ca ne marche pas /: un msg d'erreur s'affiche au niveau du setup
int trig = 12;
int echo = 11;
long lecture_echo;
long cm;
//Définition des entrées/Sorties
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
//Liaison série
Serial.begin(9600);
}
//lancement de l'impulsion
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
Serial.print("Distance en cm : ");
Serial.println(cm);
delay(1000);
}
int trig2 = 9;
int echo2 = 10;
long lecture_echo2;
long cm2;
//Définition des entrées/Sorties
pinMode(trig2, OUTPUT);
digitalWrite(trig2, LOW);
pinMode(echo2, INPUT);
//Liaison série
Serial.begin(9600);
}
//lancement de l'impulsion
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
lecture_echo2 = pulseIn(echo2, HIGH);
cm2 = lecture_echo2 / 58;
Serial.print("Distance en cm : ");
Serial.println(cm2);
delay(1000);
}
Omega
jeu, 03/09/2017 - 16:33
Et bien merci encore ,je vais essayer ca , et je vous verrais par de mes resultats
Omega
sam, 03/11/2017 - 10:29
Ha priorie ca ne fonctionne pas , je n'arrive toujours pas a faire fonctionner plusieurs capteur HS-SR04 sur le meme programme :/
Omega
sam, 03/11/2017 - 10:30
J'ai essayé comme vous m'avez dit mais quand je refais le programme en séquence ca ne marche pas /: un msg d'erreur s'affiche au niveau du setup
int trig = 12;
int echo = 11;
long lecture_echo;
long cm;
//Définition des entrées/Sorties
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
//Liaison série
Serial.begin(9600);
}
//lancement de l'impulsion
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
Serial.print("Distance en cm : ");
Serial.println(cm);
delay(1000);
}
int trig2 = 9;
int echo2 = 10;
long lecture_echo2;
long cm2;
//Définition des entrées/Sorties
pinMode(trig2, OUTPUT);
digitalWrite(trig2, LOW);
pinMode(echo2, INPUT);
//Liaison série
Serial.begin(9600);
}
//lancement de l'impulsion
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
lecture_echo2 = pulseIn(echo2, HIGH);
cm2 = lecture_echo2 / 58;
Serial.print("Distance en cm : ");
Serial.println(cm2);
delay(1000);
}
Cédric29
sam, 03/11/2017 - 18:33
Salut
2 boucles loop, impossible.
Tu emets capteur1, tu ecoutes capteur1, tu traites capteur1, ensuite tu passes au 2.
Naoui Ayoub
mar, 04/18/2017 - 21:22
Salut
2 boucles loop ca ne va pas fonctionner car il va rester dans la premier essayer de faire 2 fonction Capteur1 et Capteur2 et traiter l'un après l'autre