menu sur lcd 2*16

bonjour

j’essaye de faire menu simple plusieurs fois mais je n’arrive pas :confused:
je veux utilise ce code 5110 avec un lcd 2*16 pourmon pfe
quelqu’un veut m’aider svp

/////////////////////////////////////////////////////////////////////

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

boolean backlight = true;
int contrast=50;

int menuitem = 1;
int page = 1;

volatile boolean up = false;
volatile boolean down = false;
volatile boolean middle = false;

int downButtonState = 0;
int upButtonState = 0;  
int selectButtonState = 0;          
int lastDownButtonState = 0;
int lastSelectButtonState = 0;
int lastUpButtonState = 0;

Adafruit_PCD8544 display = Adafruit_PCD8544( 5, 4, 3);

void setup() {

 pinMode(2, INPUT_PULLUP);
 pinMode(1, INPUT_PULLUP);
 pinMode(0, INPUT_PULLUP);
 pinMode(7,OUTPUT);

 digitalWrite(7,LOW); //Turn Backlight ON
 
 Serial.begin(9600);
 
 display.begin();      
 display.setContrast(contrast); //Set contrast to 50
 display.clearDisplay(); 
 display.display();   
}

void loop() {
 
 drawMenu();

 downButtonState = digitalRead(2);
 selectButtonState = digitalRead(1);
 upButtonState =   digitalRead(0);

 checkIfDownButtonIsPressed();
 checkIfUpButtonIsPressed();
 checkIfSelectButtonIsPressed();

 if (up && page == 1 ) {
   up = false;
   menuitem--;
   if (menuitem==0)
   {
     menuitem=3;
   }      
 }else if (up && page == 2 ) {
   up = false;
   contrast--;
   setContrast();
 }


 if (down && page == 1) {
   down = false;
   menuitem++;
   if (menuitem==4) 
   {
     menuitem=1;
   }      
 }else if (down && page == 2 ) {
   down = false;
   contrast++;
   setContrast();
 }


 if (middle) {
   middle = false;
   
   if (page == 1 && menuitem==2) 
   {
     if (backlight) 
     {
       backlight = false;
       turnBacklightOff();
       }
     else 
     {
       backlight = true; 
       turnBacklightOn();
      }
   }

   if(page == 1 && menuitem ==3)
   {
     resetDefaults();
   }


else if (page == 1 && menuitem==1) {
     page=2;
    }
else if (page == 2) {
     page=1;
    }
  }
  
 }

 void checkIfDownButtonIsPressed()
 {
   if (downButtonState != lastDownButtonState) 
 {
   if (downButtonState == 0) 
   {
     down=true;
   }
   delay(50);
 }
  lastDownButtonState = downButtonState;
 }

void checkIfUpButtonIsPressed()
{
 if (upButtonState != lastUpButtonState) 
 {
   if (upButtonState == 0) {
     up=true;
   }
   delay(50);
 }
  lastUpButtonState = upButtonState;
}

void checkIfSelectButtonIsPressed()
{
  if (selectButtonState != lastSelectButtonState) 
 {
   if (selectButtonState == 0) {
     middle=true;
   }
   delay(50);
 }
  lastSelectButtonState = selectButtonState;
}

 
 void drawMenu()
 {
   
 if (page==1) 
 {    
   display.setTextSize(1);
   display.clearDisplay();
   display.setTextColor(BLACK, WHITE);
   display.setCursor(15, 0);
   display.print("MAIN MENU");
   display.drawFastHLine(0,10,83,BLACK);
   display.setCursor(0, 15);
  
   if (menuitem==1) 
   { 
     display.setTextColor(WHITE, BLACK);
   }
   else 
   {
     display.setTextColor(BLACK, WHITE);
   }
   display.print(">Contrast");
   display.setCursor(0, 25);
  
   if (menuitem==2) 
   {
     display.setTextColor(WHITE, BLACK);
   }
   else 
   {
     display.setTextColor(BLACK, WHITE);
   }    
   display.print(">Light: ");
   
   if (backlight) 
   {
     display.print("ON");
   }
   else 
   {
     display.print("OFF");
   }
   display.display();
   
   if (menuitem==3) 
   { 
     display.setTextColor(WHITE, BLACK);
   }
   else 
   {
     display.setTextColor(BLACK, WHITE);
   }  
   display.setCursor(0, 35);
   display.print(">Reset");
   display.display();
 }
   

 else if (page==2) 
 {
   
   display.setTextSize(1);
   display.clearDisplay();
   display.setTextColor(BLACK, WHITE);
   display.setCursor(15, 0);
   display.print("CONTRAST");
   display.drawFastHLine(0,10,83,BLACK);
   display.setCursor(5, 15);
   display.print("Value");
   display.setTextSize(2);
   display.setCursor(5, 25);
   display.print(contrast);

   display.setTextSize(2);
   display.display();
 }
 
 }

 void resetDefaults()
 {
   contrast = 50;
   setContrast();
   backlight = true;
   turnBacklightOn();
 }

 void setContrast()
 {
   display.setContrast(contrast);
   display.display();
 }

 void turnBacklightOn()
 {
   digitalWrite(7,LOW);
 }

   void turnBacklightOff()
 {
   digitalWrite(7,HIGH);
 }

//////////////////////////////////////////

Nokia5110Menu.ino (4.24 KB)

Bonjour,

je veux utilise ce code 5110 avec un lcd 2*16

comment fabriquer un vélo avec des pièces récupérées sur un vieux téléviseur ??

c'est tout bonnement impossible !

dans le programme proposé y a pratiquement tout a jeter ... a part peut être l'idée du menu ....

il me semble nécessaire de faire un (gros) effort de compréhension sur le fonctionnement du matériel qui sera utilisé.

cordialement

bonjour
1/
merci de bien vouloir rectifier ton post en mettant ton code entre balises. voir ICI

ensuite, tu dois préciser de quel matériel tu disposes.
quelle carte arduino?
quel afficheur?
16x2 seul comment est il connecté 8bits ou 4 bits?
16x2 avec interface serie?
shield arduino pour UNO comprenant le LCD 16x2 et les boutons poussoirs ?

Salut Khalil

Étant moi même novice je te conseil de voir ce lien qui est une mine de diamants pour tout ce qui est affichage et le reste, franchement trop fort et trop bien expliqué.

Comme c'est du Roumain tu dois utilisé un translator et tu trouvera tout ton bonheur, cordialement.

bonjour Mr

Merci de vous être intéressé .
je veux utiliser la carte arduino mega et connecte 2*16 l'afficheur 4 bits avec 3 boutons poussoirs
le progrès et un lave linge
l'aide de remplase les composant moteur elec vane... par led chaque étape s allume un led

https://scontent.fnbe1-1.fna.fbcdn.net/v/t34.0-12/23519329_1524564407591677_1727426862739677217_n.jpg?oh=f3502a586fe69ec9b729f5c254f133d4&oe=5A0B90D8

tiens, c'est marrant ...

va voir la, et à lire jusqu'au bout

puis si tu as des questions, reviens nous voir

Bonjour

désolé je fait quelque examen ces jour

je veux une menu avec 3 type de lavage

je commence fait une menu et lié avec la program de lavage