Bonjour, je travaille sur un capteur à ultrasons avec une carte arduino uno, j’arrive a faire et voir les mesure sur le moniteur série mais pas a les afficher sur un LCD, et je ne sais pas pourquoi, merci de votre aider !
/* 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;
/*Afficheur LCD
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
/** Fonction setup() */
void setup() {
/* Initialise le port série */
lcd.begin(16,2);
/* Initialise le port série */
Serial.begin(115200);
/* 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, cm et m */
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);
/*Print lcd*/
lcd.display();
lcd.setCursor(0,0);
lcd.print(distance_mm);
lcd.clear();
delay(1000);
}