Bonjour à tous, Pour mon projet de Terminale, j'ai besoin d'utiliser 2 télémètres simultanément. J'ai donc suivi ce très bon tutoriel : https://zestedesavoir.com/tutoriels/539/realiser-un-telemetre-a-ultrasons/ Et j'ai modifié le programme comme ceci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | const int USTrig = 8; // Déclencheur sur la broche 8 const int USEcho = 9; // Réception sur la broche 9 const int USTrigBIS = 6; const int USEchoBIS = 7; void setup() { pinMode(USTrig, OUTPUT); pinMode(USEcho, INPUT); pinMode(USTrigBIS, OUTPUT); pinMode(USEchoBIS, INPUT); digitalWrite(USTrig, LOW); digitalWrite(USTrigBIS, LOW); Serial.begin(9600); } #define VITESSE 340 //vitesse du son 340 m/s // setup() void loop() { // 1. Un état haut de 10 microsecondes est mis sur la broche "Trig" digitalWrite(USTrig, HIGH); digitalWrite(USTrigBIS, HIGH); delayMicroseconds(10); //on attend 10 µs // 2. On remet à l’état bas la broche Trig digitalWrite(USTrig, LOW); digitalWrite(USTrigBIS, LOW); // 3. On lit la durée d’état haut sur la broche "Echo" unsigned long duree = pulseIn(USEcho, HIGH); unsigned long dureebis = pulseIn(USEchoBIS, HIGH); if(duree > 30000) { // si la durée est supérieure à 30ms, l'onde est perdue Serial.println("Onde perdue, mesure échouée !"); } else { // 4. On divise cette durée par deux pour n'avoir qu'un trajet duree = duree/2; dureebis = dureebis/2; // 5. On calcule la distance avec la formule d=v*t float temps = duree/1000000.0; //on met en secondes float distance = temps*VITESSE; //on multiplie par la vitesse, d=t*v float tempsbis = dureebis/1000000.0; float distancebis = tempsbis*VITESSE; // 6. On affiche la distance Serial.print("Duree = "); Serial.println(temps); //affiche le temps de vol d'un trajet en secondes Serial.print("Distance = "); Serial.println(distance); //affiche la distance mesurée (en mètres) Serial.print("Duree2 = "); Serial.println(tempsbis); //affiche le temps de vol d'un trajet en secondes Serial.print("Distance2 = "); Serial.println(distancebis); //affiche la distance mesurée (en mètres) } // petite pause delay(250); } |
Mais lorsque je lance le programme, sur le moniteur série je lis : Duree = 0.00 Distance = 0.29 Duree2 = 0.00 Distance2 = 0.00 Pas moyen d'avoir une Distance2, j'ai pourtant vérifié et revérifié tous mes branchements, je voulais donc savoir si quelque chose n'allait pas dans mon programme. Merci d'avance Blairuae
+0
-0