j'écris en ce moments un programme conçu pour utiliser deux capteurs à ultrasons HC-SR04 connectés à une carte Arduino. Les capteurs à ultrasons sont utilisés pour mesurer la distance entre le capteur et un objet en émettant des ondes sonores et en mesurant le temps qu'elles prennent pour rebondir sur l'objet et revenir au capteur.
Je ne suis pas encor au lycée et je n'ai personne pour m'aider a coder, le programme ne fonctionne pas pourriez vous m'aider s'il vous plait?
#include <Arduino.h>
// Définir les broches pour le premier capteur
const int trigPin1 = 2;
const int echoPin1 = 3;
// Définir les broches pour le deuxième capteur
const int trigPin2 = 4; // ERREUR : Utilisation d'une broche réservée
const int echoPin2 = 5;
void setup() {
// Initialiser les broches en tant que sortie ou entrée
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
// Démarrer la communication série
Serial.begin(9600);
}
void loop() {
// Mesurer la distance avec le premier capteur
float distance1 = measureDistance(trigPin1, echoPin1); // ERREUR : Fonction non déclarée
// Mesurer la distance avec le deuxième capteur
float distance2 = measureDistance(trigPin2, echoPin2);
// Afficher les distances mesurées
Serial.print("Distance 1: ");
Serial.print(distance1);
Serial.print(" cm");
Serial.print("Distance 2: ");
Serial.print(distance2);
Serial.print(" cm");
delay(1000);
}
float measureDistance(int trigPin, int echoPin) {
// Envoyer une impulsion ultrasonore
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
voici une version plus complète a laquelle j'ai rajouter des information et ou j'ai corrigé toutes les erreurs que j'ai put trouver
#include <Arduino.h>
// Définir les broches pour le premier capteur
const int trigPin1 = 2; // Broche de déclenchement du premier capteur ultrasonique
const int echoPin1 = 3; // Broche de réception du premier capteur ultrasonique
// Définir les broches pour le deuxième capteur
const int trigPin2 = 6; // Changer la broche à une non réservée
const int echoPin2 = 5; // Broche de réception du deuxième capteur ultrasonique
// Prototype de fonction pour mesurer la distance avec un capteur ultrasonique
float measureDistance(int trigPin, int echoPin);
void setup() {
// Initialiser les broches en tant que sortie ou entrée
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
// Démarrer la communication série à une vitesse de 9600 bauds
Serial.begin(9600);
// Afficher des informations de démarrage sur le moniteur série
Serial.println("Programme de mesure de distance avec deux capteurs ultrasoniques");
Serial.println("===============================================");
Serial.println("Attente de l'initialisation des capteurs...");
Serial.println("===============================================");
Serial.println();
}
void loop() {
// Mesurer la distance avec le premier capteur
float distance1 = measureDistance(trigPin1, echoPin1);
// Mesurer la distance avec le deuxième capteur
float distance2 = measureDistance(trigPin2, echoPin2);
// Afficher les distances mesurées sur le moniteur série
Serial.println("Distances mesurées:");
Serial.print("Capteur 1: ");
Serial.print(distance1);
Serial.println(" cm");
Serial.print("Capteur 2: ");
Serial.print(distance2);
Serial.println(" cm");
Serial.println();
// Attendre 1 seconde avant la prochaine mesure
delay(1000);
}
// Fonction pour mesurer la distance avec un capteur ultrasonique
float measureDistance(int trigPin, int echoPin) {
// Envoyer une impulsion ultrasonore
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mesurer le temps écoulé pour le retour du signal ultrasonore
unsigned long duration = pulseIn(echoPin, HIGH);
// Calculer la distance en cm
float distance = (duration * 0.034) / 2;
return distance;
}