Description
int echoPin = 7;
int triggerPin = 8;
int distance = 0;
long readUltrasonicDistance(int triggerPin, int echoPin);
void setup() {
Serial.begin(9600);
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
distance = 0.01723 * readUltrasonicDistance(triggerPin, echoPin);
Serial.println(distance);
if (distance >= 200) {
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
} else {
if (distance < 200 && distance >= 80) {
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
} else {
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
}
}
delay(10); // Retarde un peu pour améliorer la simulation
}
// Définition de la fonction readUltrasonicDistance
long readUltrasonicDistance(int triggerPin, int echoPin) {
// Envoie une impulsion de 10 microsecondes pour déclencher le capteur à ultrasons
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Lis la durée de l'impulsion renvoyée par le capteur
long duration = pulseIn(echoPin, HIGH);
// Calcule la distance en cm
long distance = duration * 0.034 / 2;
return distance;
}