Bonjour je rencontre un problème sur mon code avec l'écran Adafruit sur Arduino IDE alors qu'il fonctionne correctement sur thinkercad
mon code :
#include <Adafruit_LiquidCrystal.h>
#include <Servo.h>
const int pingPin = 10;
Adafruit_LiquidCrystal lcd_4(0);
Servo servo_9;
String etatPrecedent = "";
void setup()
{
Serial.begin(9600);
lcd_4.begin(16, 2);
servo_9.attach(9, 500, 2500);
lcd_4.clear();
lcd_4.print("PARK'N'GO");
delay(2000);
lcd_4.clear();
}
void loop()
{
long duration, cm;
// Envoi du signal
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// Réception de l’écho
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// Conversion en centimètres
cm = microsecondsToCentimeters(duration);
// Affichage dans le moniteur série
Serial.print("Distance: ");
Serial.print(cm);
Serial.println(" cm");
// Logique de contrôle optimisée (évite le clignotement)
if (cm > 100 && etatPrecedent != "disponible") {
servo_9.write(180);
lcd_4.clear();
lcd_4.print("Place disponible");
etatPrecedent = "disponible";
}
else if (cm <= 100 && etatPrecedent != "occupee") {
servo_9.write(0);
lcd_4.clear();
lcd_4.print("Place occupee");
etatPrecedent = "occupee";
}
delay(500); // Pause entre les mesures
}
// Fonction de conversion µs → cm
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
merci d'avance