Problelme ! utilisation de deux capteur ultrasonore simultanément (HC-sr04)

voici notre programme:
include <Servo.h>
Servo monservo;
const int trigPin = 7;
const int echoPin = 8;
const int LedR1 = 2;
const int trigPin2 = 12;
const int echoPin2 = 13;
const int LedR2 = 4;
const int LedJ1 = 5;
const int LedJ2 = 6;
const int LedV1 = 9;
const int LedV2 = 10;
long duration, duration2, inches, cm, cma ;

void setup() {
// initialize serial communication:
Serial.begin(9600);
monservo.attach(3);
}

void loop()
{
monservo.write(0);

** if(cm<6){**
** digitalWrite(LedR2,HIGH);**
** digitalWrite(LedR1,HIGH);}**
** else{digitalWrite(LedR2,LOW);**
digitalWrite(LedR1,LOW);}

if((cm<10)&&(cm>6)){
digitalWrite(LedR1,HIGH);}
else{digitalWrite(LedR1,LOW);}

if((cm<15)&&(cm>6)){
digitalWrite(LedJ2,HIGH);}
else{digitalWrite(LedJ2,LOW);}

if((cm<20)&&(cm>6)){
digitalWrite(LedJ1,HIGH);}
else{digitalWrite(LedJ1,LOW);}

if((cm<25)&&(cm>6)){
digitalWrite(LedV2,HIGH);}
else{digitalWrite(LedV2,LOW);}

if((cm<30)&&(cm>6)){
digitalWrite(LedV1,HIGH);}
else{digitalWrite(LedV1,LOW);}

if((cma <40)&&(cma > 6)){
monservo.write(90);
** delay(5000);}**
else{monservo.write(0);}

// Etablir variables pour la duree de la commande ping,
// et le résultat de la distance en pouces et en centimetres:

// Le capteur est déclenche par une impulsion haute d’au moins 10 microsecondes.
// Donne une impulsion courte basse avant pour assurer une impulsion HIGH propre:
pinMode(LedR1,OUTPUT);
pinMode(LedR2,OUTPUT);
pinMode(LedJ1,OUTPUT);
pinMode(LedJ2,OUTPUT);
pinMode(LedV1,OUTPUT);
pinMode(LedV2,OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(trigPin2, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

// Lire le signal de la sonde: une impulsion HIGH dont
// Durée est le temps (en microsecondes) à partir de l’envoi
// Du ping à la reception de son écho sur un objet.
pinMode(echoPin, INPUT);
pinMode(echoPin2, INPUT);
duration = pulseIn(echoPin, HIGH);
duration2 = pulseIn(echoPin2, HIGH);

// convertir le temps en une distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters (cm);
cma = microsecondsToCentimeters (cma);
//Serial.print(inches);//Serial.print("in, ");
Serial.print(cm);Serial.print(“cm”);
Serial.print(cma);Serial.print(“cma”);
Serial.println();
delay(100);
}

long microsecondsToInches(long microseconds)
{
// Selon la fiche technique du Parallax pour le PING))), il ya
// 73.746 microsecondes par pouce (c. voyages sonores au 1130 pieds par
// Seconde). Cela donne la distance parcourue par la commande ping, sortant
// Et retour, de sorte que l’on divise par 2 pour obtenir la distance de l’obstacle.
// Voir: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
// La vitesse du son est de 340 m/s ou 29 microsecondes par centimètre.
// Le ping voyage aller et retour, de sorte à trouver la distance de l’
// Object on prend la moitié de la distance parcourue.
return microseconds / 29 / 2;

}

Nous avons donc deux capteurs ,un avec serial print cm et l’autre avec cma sauf que lorsqu’on lance le programme cm varie et cma reste à zero .Comment en modifiant le programme on peut faire fonctionner le second capteur ? Merci

Once more in English, since YOU posted in the English forum.

Il faut activer les 2 capteurs l'un après l'autre et non les 2 en même temps.

bonjour déjà, ;) mets entre balise code # car c'est illisible

Nous avons donc deux capteurs ,un avec serial print cm et l'autre avec cma sauf que lorsqu'on lance le programme cm varie et cma reste à zero .Comment en modifiant le programme on peut faire fonctionner le second capteur ? Merci

il suffit d'interoger chaque capteur l'un après l'autre, mais impossible de voir ca dans ton code, Cf maremarque ;)

EDIT grillé par fdufnews :)

Bonjour fdufnews et PaulS pourriez vous m'expliquer comment faire marcher les deux capteurs l'un après l'autre ? Merci !

Tu veux dire que tu utilises des capteurs et un programme sans avoir compris comment ils fonctionnent?

un bon vrai copier/coller sans comprendre ;) déjà les pinMode dans le loop

un bon conseil qui prend pas très longtemps. apprendre la hiérarchie d'un programme arduino se renseigner en CHERCHANT sur le net un programme se référant à ton module juste en tapant HC-sr04 sur google, tu trouves plein d'exemple http://itechnofrance.wordpress.com/2013/03/12/utilisation-du-module-ultrason-hc-sr04-avec-larduino/ https://docs.google.com/document/d/1Y-yZnNhMYy7rwhAgyL_pfa39RsB-x2qR4vP8saG73rE/edit compare avec ton copier/coller et tu trouveras sans doute de très grosses différences.

je vais passer pour le ronchon de service du "petit groupe" (certains vont comprendre de suite ;) ), mais là c'est vraiment un manque de recherche perso. évidemment ce projet est urgent comme dab :)