aide pour Creation Menu LCD

Bonjour à tous...
je suis un peu embête et j'aurais besoin d'aide pour la réalisation de mon Menu.
Tout d’abord j'ai récupérer un programme pour lire un cd sur un drive de pc en IDE,
le fonctionnement et super mais j'aimerais créer un menu par dessus ce code,
par exemple :

j'aimerais avec un bouton sélection se balader dans le Menu qui comporte 6 titres
(1-lecteur , 2-Playstation , 3-Optique , 4-USB , 5-Coaxiale , 6-Audio Bluetooth)
pour l'instant OK j'ai réussi à le faire

l'idée serait que si je suis dans le Menu lecteur avec un délai je bascule dans le programme Du drive, si j’appuie sur sélection pour changer de Menu alors je passe au suivant en quittant le programme du drive.
et la je n'ai pas réussi, dans le programme du Drive (lecteur) j'ai renommé void setup par démarrage et void loop par chargement,
dans mon programme des qu'il se lance on se trouve dans le menu 0 et le programme du drive se lance, mais si j'appuie sur sélection alors je ne change pas de Menu. smiley-evil

Programme du drive de base : http://singlevalve.web.fc2.com/Atapiduino/sw/cdrom_sketch_R3_11.ino

Mon programme se compose de 3 pages,

la première pour le setup
le deuxième pour Update
le troisième pour le programme du drive modifié

merci beaucoup pour votre aide !

lcd_I2C.rar (7.78 KB)

sinon dans la création du menu ( UpdateLCD ) comment peut'ont aller dans un autre programme puis un autre ?
merci pour votre aide

void setup() {
  // set up the LCD's number of columns and rows:
  
  pinMode(selec,INPUT);
  digitalWrite(selec,HIGH);
  pinMode(ok,INPUT);
  digitalWrite(selec,HIGH);
  pinMode(led,OUTPUT);
  digitalWrite(led,HIGH);
  ////////////////////////////////////////lecteur definition////////////////////////////////////////
  // LCD Part
  // ########
  lcd.begin (16,2);                                // init LCD interface
  // Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home ();                                     // set cursor to home position

  // Arduino Part
  // #############

  // start I2C interface as Master
  Wire.begin();

  // Set all pins of all PCF8574 to high impedance inputs.
  highZ();

  // Start Serial Interface
  //  Serial.begin(9600);

  // initialize the push button pins as inputs with pullup:
  pinMode(NEXT, INPUT);
  pinMode(PREV, INPUT);
  pinMode(EJCT, INPUT);
  pinMode(STOP, INPUT);
  pinMode(PLAY, INPUT);
  pinMode(LED, OUTPUT);

  digitalWrite((byte)NEXT, HIGH);
  digitalWrite((byte)PREV, HIGH);  
  digitalWrite((byte)EJCT, HIGH);
  digitalWrite((byte)STOP, HIGH);
  digitalWrite((byte)PLAY, HIGH);
  digitalWrite((byte)LED, LOW);


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

  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("audio/franck");
  delay(1000);
  lcd.clear();

}



void loop()

{
  BSelect();
  
}

void BSelect()
{



  etat_bouton = digitalRead(selec);
  // compare the buttonState to its previous state
  if (etat_bouton != lastetat_bouton)  {
    // if the state has changed, increment the counter

    if (etat_bouton == LOW)

    {     
      Menu++;
      if (Menu > 5)

        Menu = 0;
    } 
    lastetat_bouton = etat_bouton;
    UpdateLCD();


  }
}

Le code à mettre entre les balises STP... tu peux éditer ton message.

merci c'est quoi les balises ?

voici le code de UpdateLCD()

void UpdateLCD()


{

  if (Menu == 0)   
   { lcd.clear(); 
  lcd.setCursor(0,0);  
  lcd.write("Votre Menu"); 
  lcd.setCursor(5,2); 
  lcd.print("LECTEUR CD");
  delay(3000);
  chargement();
  delay(10);


  if (Menu == 1) { 
    lcd.clear(); 
    lcd.setCursor(0,0);  
    lcd.write("Votre Menu"); 
    lcd.setCursor(5,2); 
    lcd.print("Playstation");      
    delay(10); 
  }
  if (Menu == 2) { 
    lcd.clear(); 
    lcd.setCursor(0,0);  
    lcd.write("Votre Menu"); 
    lcd.setCursor(9,2); 
    lcd.print("Optique");          
    delay(10); 
  }

  if (Menu == 3) { 
    lcd.clear(); 
    lcd.setCursor(0,0);  
    lcd.write("Votre Menu"); 
    lcd.setCursor(11,2); 
    lcd.print("U S B");            
    delay(10); 
  } 

  if (Menu == 4) { 
    lcd.clear(); 
    lcd.setCursor(0,0);  
    lcd.write("Votre Menu"); 
    lcd.setCursor(8,2); 
    lcd.print("Coaxiale");         
    delay(10); 
  }

  if (Menu == 5) { 
    lcd.clear(); 
    lcd.setCursor(0,0);  
    lcd.write("Votre Menu"); 
    lcd.setCursor(2,2); 
    lcd.print("audio Bluetooth");   
    delay(10); 
  }
}

Tu cliques sur le bouton #

tout le code est téléchargeable sur mon premier post ...
vous voulez dire les #includes ? je comprend pas soyez plus précis
merci !!!

Bon.... je ne sais pas si si tu as remarqué, mais maintenant ton code est sur un fond blanc et donc plus lisible( le code html est desactivé)
Dans ta fenêtre d'édition, il y a des boutons....

ah OK désole j'ai compris maintenant !!! merci

PERSONNE POUR M'AIDER ???

Dans ta fonction UpdateLCD, test ta variable menu avec un switch, c'est plus adapté.

switch (menu) {

case 1 :
   //menu1
  break;
case 2 :
  //menu2
  break;
case 3 :
  //menu3
  break;
}

Ce que tu veux faire n'est pas possible de cette manière. On ne peut pas changer de programme comme ça. Il faut que tu intègre tous tes programmes à un seul, avec un seul setup, un seul loop.