Problème d'affichage LCD keypad shield

Bonjour,
Mon écran LCD n'affiche que "111" et je ne comprend pas pourquoi.
Mon programme simule un suiveur solaire et des capteurs fin de courses, degree pour la position des panneau
Il simule aussi un état d'urgence si il y a l'appuie d'un bouton, urg.
Des leds simulent le fait que les panneaux touche les capteur fin de cours, LEDg et LEDd
Merci de bien vouloir m'aider
Voici mon code :
'''
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int sensorPin = 0;
//const int ledD=10;
//const int boutonD = 0;
int etatBoutonD;
//const int ledG=9;
//const int boutonG = 3;
int etatBoutonG;
//const int ledA=8;
//const int boutonA = 4;
int etatBoutonA;
int degree;
int pos;
int urg;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

void setup() {
lcd.begin(16,2);
degree = 0;
urg = 1;
Serial.begin(9600);
//pinMode(ledD,OUTPUT);
pinMode(btnRIGHT,INPUT);
//pinMode(ledG,OUTPUT);
pinMode(btnLEFT,INPUT);
//pinMode(ledA,OUTPUT);
pinMode(btnSELECT,INPUT);
}

void loop() {
etatBoutonA = digitalRead(btnSELECT);

if ( degree >=13 ){
//digitalWrite(ledA, HIGH);
delay(200);
//digitalWrite(ledA, LOW);
delay(200);
lcd.setCursor(0,0);
lcd.print("Position depasser");
lcd.setCursor(0,1);
lcd.print("Remise Precededente");
for (int t=0; t<1; t++){
//digitalWrite(ledD, LOW);
degree = degree -1;
//digitalWrite(ledA, HIGH);
delay(500);
//digitalWrite(ledA, LOW);
delay(500);
}
degree = 11;
}
if ( degree <=-1 ){
//digitalWrite(ledA, HIGH);
delay(200);
//digitalWrite(ledA, LOW);
delay(200);
lcd.setCursor(0,0);
lcd.print("Position depasser");
lcd.setCursor(0,1);
lcd.print("Remise Initial");
for (int t=0; t<1; t++){
//digitalWrite(ledD, LOW);
degree = degree +1;
//digitalWrite(ledA, HIGH);
delay(500);
//digitalWrite(ledA, LOW);
delay(500);
}
degree = 0;
}
if(etatBoutonA == HIGH) {
degree = 1;
urg = urg +1;
if (urg == 3 ){
urg = 1;
}
delay(1000);
}
else{
// Etat bouton Droite + led
etatBoutonD = digitalRead(btnRIGHT);

if(etatBoutonD == HIGH) {
  degree = degree +1  ;
  delay(200);
}
else{
  //digitalWrite(ledD, LOW);
}
//Detecter sur Est
if (degree == 0 ) {
  //digitalWrite(ledD, HIGH);
  pos = 1;
}

// Etat bouton gauche + led
etatBoutonG = digitalRead(btnLEFT);

if(etatBoutonG == HIGH) {
  degree = degree - 1  ;
  delay(200);
}
else{
  //digitalWrite(ledG, LOW);
}
//detecter si pos OUEST 

}
if (degree == 1,11){
pos = 0;
}
if (degree == 12 ) {
//digitalWrite(ledG, HIGH);
pos = 2;
}
if (degree == 0 ) {
//digitalWrite(ledD, HIGH);
pos = 1;
}
if ( etatBoutonG && etatBoutonD == HIGH ){
degree = 0;
}
// ecrire la position Est
if (urg == 1){
//digitalWrite(ledA, LOW);

//Position 
if (pos == 0) {
  lcd.setCursor(0,0);
  lcd.print("Position ");
  lcd.setCursor(9,0);
  lcd.print(degree);
  lcd.setCursor(11,0);
  lcd.print("        ");
  lcd.setCursor(0,1);  
  lcd.print("Etat : BON                ");
  if (degree <=9 ){
    lcd.setCursor(10,0);
    lcd.print("        ");
  }
}
// Position EST 
if (pos == 1) {
   lcd.setCursor(0,0);
   lcd.print("Position ");
   lcd.setCursor(9,0);
   lcd.print("Est         ");
   lcd.setCursor(0,1);  
   lcd.print("Etat : BON          ");
}
// Position Ouest
if (pos == 2) {
   lcd.setCursor(0,0);
   lcd.print("Position ");
   lcd.setCursor(9,0);
   lcd.print("Ouest     ");
   lcd.setCursor(0,1);  
   lcd.print("Etat : BON        ");
}

}
// Urgence
if (urg == 2){
//digitalWrite(ledA, HIGH);
degree = 0 ;
lcd.setCursor(0,0);
lcd.print("ALERTE !!! ");
lcd.setCursor(0,1);
lcd.print("Etat : CRITIQUE");
}
}

Bonjour,

Merci de prendre quelques minutes pour lire les bonnes pratiques du forum francophone et les appliquer.

En particulier, la mise en forme du code avec les balises code

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.