compréhension code

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 ! :slight_smile:

* 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();
 
}

Avant c'est juste la déclaration de l'écran lcd, les branchements et l'initialisation du capteur ultrason

Et avant avant il aurait été préférable de commencer avec le tuto d'Eskimon dont on donne le lien dans les messages épinglés.

Bonjour remitll,

Quelles lignes de votre code vous posent soucis?

Cordialement,
bidouilleelec

Ce code est suffisamment bien écrit et commenté poir pouvoir
a) recabler à partir du cide l'US et le LCD
b) constater que ce qui ne varie pas est déclaré en const (une saine habitude). Parmi celles ci, une est un unsigned long (32 bits sans signe) et la valeur est suivie de UL ce qui est propre.