// La broche numérique 11 est reliée à trig HC-SR04. On lui donne le nom trigPin. int trigPin = 11; // La broche numérique 12 est reliée à echo HC-SR04. On lui donne le nom echoPin. int echoPin = 12; // Déclaration variable duration qui va servir à stocker une valeur au format float. float duration; // Déclaration variable distance qui va servir à stocker une valeur au format float. float distance; // Déclaration variable nombreled qui va servir à stocker une valeur au format int. // Elle prend la valeur de 9 équivalant au nombre de LED int nombreled = 9; // Déclaration d'un tableau de variable ledPins qui va servir à stocker des valeurs au format int. // On remplit le tableau avec les numéros des broches numériques utilisées pour les LEDS int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() { // Définit trigPin comme sortie. pinMode(trigPin, OUTPUT); // Définit echoPin comme sortie. pinMode(echoPin, INPUT); // On utilise une boucle for pour déclarer les sorties // On initialise une variable int Led pour qu’elle débute de 0 // Tant que la condition est Vrai Led < nombreled on répète les actions entre {} de la boucle for // Et on incrémente Led++. for (int Led = 0; Led < nombreled; Led++) { // Définit ledPins[Led] comme sortie. pinMode(ledPins[Led], OUTPUT); } }
void loop() { // Met la broche numérique trigPin sur ON digitalWrite(trigPin, HIGH); // On attend 10 millisecondes delayMicroseconds(10); // Met la broche numérique trigPin sur OFF digitalWrite(trigPin, LOW); // On lit le temps d'impulsion sur echoPin et on stock la valeur dans la variable duration duration = pulseIn(echoPin, HIGH); // On calcule la distance par rapport à la durée de l'impulsion // Puis on stocke la valeur dans la variable distance distance = duration * 0.034 / 2; // La valeur distance Min = 5, Max = 40 et mappée à Min = nombreled soit 9, Max = 0 // puis est stockée dans la variable ledon au format int. int ledon = map(distance, 5, 40, nombreled, 0); // On utilise une boucle for pour définir état de sortie des Leds soit HIGH ou LOW // On initialise une variable int Led pour qu’elle débute de 0 // Tant que la condition est Vrai Led < nombreled on répète les actions entre {} de la boucle for // Et on incrémente Led++. for (int Led = 0; Led < nombreled; Led++) { // Si Led < ledon on exécute les actions entre {} if (Led < ledon) { // Met la broche numérique stockée dans ledPins[Led] sur ON digitalWrite(ledPins[Led], HIGH); } // Sinon on exécute les actions entre {} else { // Met la broche numérique stockée dans ledPins[Led] sur OFF digitalWrite(ledPins[Led], LOW); } } // On attend 150 millisecondes delay(150); }