Advertisement
Mr_redstone5230

Menu LED

Jul 20th, 2018
2,904
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //plan at dropbox.com/s/yx9dym0ean7zp4y/Menu%20LED.jpg?dl=0
  2.  
  3. #include <LiquidCrystal.h> // on importe la biblioth�que pour LCD
  4. LiquidCrystal monEcran(12, 11, 5, 4, 3, 2); // on cr�e un objet LCD nomm� monEcran en mode 4 bits
  5. const int boutSelect = 9; //constante du pin bouton 1
  6. const int boutControle = 8; //constante du pin bouton 2
  7. boolean etatLed[5]={0,0,0,0,0};//�tat de la LED 13 (0=LOW, 1=HIGH)
  8. String ligne1 = {"LED "};
  9. String ligne2 = "OFF";//cha�ne pour la ligne 2 (d�pend du menu 1)
  10. const int led[5]={A1,A2,A3,A4,A5};
  11. const int buzzer = 13;
  12. int posMenu=0;
  13.  
  14. void setup() {
  15.   //configuration des pins
  16.   pinMode(boutSelect, INPUT_PULLUP);
  17.   pinMode(boutControle, INPUT_PULLUP);
  18.   pinMode(buzzer, OUTPUT);
  19.   pinMode(A1, OUTPUT);
  20.   pinMode(A2, OUTPUT);
  21.   pinMode(A3, OUTPUT);
  22.   pinMode(A4, OUTPUT);
  23.   pinMode(A5, OUTPUT);
  24.   //initialisation de l'�cran LCD
  25.   monEcran.begin(16, 2); //on initialise la communication avec 16 colonnes et 2 lignes
  26.   monEcran.clear(); // on efface l'�cran
  27. }
  28.  
  29. void loop() {
  30.   Serial.println(posMenu);
  31.   navigation(); //appel de la fonction pour naviguer dans les menus
  32.   affichage(); //appel de la fonction pour rafra�chir l'affichage LCD
  33.   digitalWrite(led[posMenu], etatLed[posMenu]);//el de la fonction pour g�rer la LED 13
  34. }
  35.  
  36. //fonction de navigation dans le menu
  37. void navigation() {
  38.   //cr�ation de variables d'�tat pour les boutons
  39.   boolean etatBout1 = digitalRead(boutSelect);
  40.   boolean etatBout2 = digitalRead(boutControle);
  41.   //Boucle pour naviguer dans les menus
  42.   if (!etatBout1 || !etatBout2) { //si l'un des deux boutons est appuy�
  43.     if (!etatBout2) { // si bouton 1
  44.       posMenu++;
  45.       if (posMenu == 5){
  46.         posMenu = 0;//on change le menu principal (2 positions)
  47.       }
  48.     }
  49.     if (!etatBout1) { // si bouton 2
  50.         if (!etatLed[posMenu]){
  51.           etatLed[posMenu] += 1;
  52.         }
  53.         else{
  54.           etatLed[posMenu] = 0;
  55.  
  56.         }
  57.      
  58.     }
  59.     tone(buzzer, 123, 125);
  60.     delay(250); //attente pour �viter les r�p�titions
  61.   }
  62. }
  63.  
  64. //fonction de rafra�chissement de l'�cran LCD
  65. void affichage() {
  66.   monEcran.setCursor(0, 0); // on positionne le curseur en haut � gauche
  67.   monEcran.print(ligne1);
  68.   int resultat = (posMenu + 1);
  69.   monEcran.print(resultat);
  70.   monEcran.print(":");// on �crit le menu de la ligne 1
  71.   monEcran.setCursor(0, 1); // on passe � la ligne suivante
  72.   //d�finition du menu pour la LED 13
  73.   String mLED[2] = {
  74.     "OFF             ",
  75.     "ON              "
  76.   };
  77.   ligne2 = mLED[etatLed[posMenu]];
  78.   monEcran.print(ligne2); // on affiche la ligne du menu 2
  79. }
  80. //plan at dropbox.com/s/yx9dym0ean7zp4y/Menu%20LED.jpg?dl=0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement