Hello
ldc.begin (16,2)se met dans le setup et le virer de la loop
il faut appeler la fonction interface lcd en fin du setup
si tu as besoin d'effacer un message, tu effaces l'écran entier par lcd.clear();
ou pour effacer une ligne : ldc.setCursor(0,1);ldc.print(" 16 espaces ");
Par contre dès que je met le lcd.begin() dans le void.setup() les valeurs affichée dans le lcd ne redescendent plus à zéro si je fais revenir le potentiomètre en arrière et le maximum étant 1023 ça m'affiche des valeurs au dessus de 5000.
une entrée analogique ne peut pas dépasser 1023.
j'ai revu un peu ton code
mais rien n'explique ce que tu dis pour la valeur au dessus de 5000
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
#include <Servo.h>
Servo servo1;
Servo servo2;
int valeur1; //valeur du potentiomètre1
int valeur2; //valeur du potentiomètre2
int administrator_code1; //code administrateur potentimomètre1 (définit au démarrage)
int administrator_code2; //code administrateur potentimomètre2 (définit au démarrage)
int bouton1 = 4;
int potentiometre1 = A0; //fils bobinage ou piste graphite sur GND et VCC. curseur sur A0
int potentiometre2 = A1; //fils bobinage ou piste graphite sur GND et VCC. curseur sur A0
//le BP est raccordé sur D4 et GND. l'entrée déclarée en INPUT_PULLUP
//un appui sur le BP ramenera le GND sur l'entrée elle sera donc LOW si appui
//sans appui sur le BP, l'entrée sera à HIGH par sa PULLUP interne validée dans le pinMode
void setup() {
Serial.begin(115200);
servo1.attach(5);
servo2.attach(6);
pinMode(bouton1, INPUT); //ou INPUT_PULLUP ?
//digitalWrite(bouton1, LOW);//??????????????????c'est une entrée avec un BP branché dessus
lcd.begin(16,2);
interface_lcd();// inscrit ("Entrer le code:")
}
void loop()
{
valeur1 = analogRead(potentiometre1);//lecture du potar admin 1
valeur2 = analogRead(potentiometre2);//lecture du potar admin 2
lcd.setCursor(0, 1);
lcd.print(valeur1);// entre 0 et 1023
lcd.setCursor(6, 1);
lcd.print(valeur2);// entre 0 et 1023
if(digitalRead(bouton1) == HIGH) //là, on attends un appui sur le BP alors c'est HIGH ou LOW?
{
if((valeur1 == administrator_code1) && (valeur2 == administrator_code2))
{
administrator_code1 = valeur1;
administrator_code2 = valeur2;
servo1.write(90);
servo2.write(90);
}
if((valeur1 != administrator_code1) or (valeur2 != administrator_code2))
{
lcd.setCursor(0,0);
lcd.print("Code administrateur incorrect");
servo1.write(0);
servo2.write(0);
}
}
}
void interface_lcd() {
lcd.setCursor(0, 0);
lcd.print("Entrer le code:");
}
C'est parce que tu n'effaces pas la valeur précédente et il reste des chiffres qui vont rester affichés derrière.
Une des solutions est d'afficher 3 espaces à la suite de la valeur numérique.