Bonjour , j'ai trouvé ce code sur internet pour un capteur a ultrason et j'ai rajouté une parti LCD pour pouvoir afficher la valeur de la distance dessus, celui ci marche tres bien mais j'aimerais comprendre le code en détail, la partie void_loop ne me pose pas de problème mais tout ce qui es avant j'aimerais mieux en savoir et avoir des explications précise ( PS : je suis débutant je ne connais pas encore tout le vocabulaire technique ) , j'ai mis tout le code pour les curieux et je remercie ce qui m'aideront a mieux comprendre ce code !
* Code d'exemple pour un capteur à ultrasons HC-SR04.
*/
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;
/** Fonction setup() */
void setup() {
/* Initialise le port série */
Serial.begin(115200);
lcd.begin(16, 2);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
/** Fonction loop() */
void loop() {
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
/* 3. Calcul la distance à partir du temps mesuré */
float distance_mm = measure / 2.0 * SOUND_SPEED;
/* Affiche les résultats en mm */
Serial.print(F("Distance: "));
Serial.print(distance_mm);
Serial.print(F("mm ("));
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
delay(500);
lcd.setCursor(0,0);
lcd.print(distance_mm);
delay(1000);
lcd.clear();
}