sábado, 12 de noviembre de 2016


v: 2.5
12/11/2016














#include <LiquidCrystal.h>


// Initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

//States for the menu.
int currentMenuItem = 0;
int lastState = 0;

void setup() {
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);

   //Set the characters and column numbers.
   lcd.begin(16, 2);
   //Print default title.
   clearPrintTitle();
}

void loop() {
  //Call the main menu.
  mainMenu();
}

void mainMenu() {
  //State = 0 every loop cycle.
  int state = 0;
  //Refresh the button pressed.
  int x = analogRead (0);
  //Set the Row 0, Col 0 position.
  lcd.setCursor(0,0);

  //Check analog values from LCD Keypad Shield
  if (x < 100) {
    //Right
  } else if (x < 200) {
   //Up
    state = 1;
  } else if (x < 400){
   //Down
    state = 2;
  } else if (x < 600){
    //Left
  } else if (x < 800){
    //Select
    state = 3;
  }

  //If we are out of bounds on th menu then reset it.
  if (currentMenuItem < 0 || currentMenuItem > 8) {
   currentMenuItem = 0;
  }

   //If we have changed Index, saves re-draws.
   if (state != lastState) {
      if (state == 1) {
         //If Up
          currentMenuItem = currentMenuItem - 1;
          displayMenu(currentMenuItem);
      } else if (state == 2) {
         //If Down
          currentMenuItem = currentMenuItem + 1;
          displayMenu(currentMenuItem);
      } else if (state == 3) {
         //If Selected
         selectMenu(currentMenuItem);
      }
      //Save the last State to compare.
      lastState = state;
   }
   //Small delay
  delay(5);
}

//Display Menu Option based on Index.
void displayMenu(int x) {
     switch (x) {
        case 1:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->desbloqueo ter");
        break;
      case 2:
      lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->introduccion");
        break;
       case 3:
       lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->anotaciones");
        break;
      case 4:
      lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->software");
        break;
         case 5:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->abrir D.1");
        break;
         case 6:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->cerrar D.1");
        break;
          case 7:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->abrir D.2");
        break;
         case 8:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("->cerrar D.2 ");
        break;
    }
}

//Print a basic header on Row 1.
void clearPrintTitle() {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">_");
  delay(600);
lcd.clear();
delay(600);
  lcd.setCursor(0,0);
  lcd.print(">_");
  delay(600);
lcd.clear();
delay(600);
  lcd.setCursor(0,0);
  lcd.print(">_");
  delay(600);
lcd.clear();
delay(600);
  lcd.setCursor(0,0);
  lcd.print(">_");
  delay(600);
lcd.clear();
delay(600);
  lcd.setCursor(0,0);
  lcd.print("  t");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">_te");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("  ter");
  delay(600);
  lcd.clear();
lcd.setCursor(0,0);
  lcd.print(">_term");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("  termi");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">_termin");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("  termina");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">_terminal");
  lcd.setCursor(0,1);
  lcd.print("    2");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("  terminal");
  lcd.setCursor(0,1);
  lcd.print("    2.");
  delay(600);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">_terminal");
  lcd.setCursor(0,1);
  lcd.print("    2.4");
  delay(600);


}
//////////////////////////////////////////////////////////////
//Show the selection on Screen.
void selectMenu(int x) {
   switch (x) {
     ////////////////////////////////////////////////////////
      case 1:
      lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("DESBLOQUEO...");
        delay(5000);
        lcd.clear();
        lcd.print ("*");
        delay(200);
        lcd.clear();
        lcd.print ("**");
        delay(200);
        lcd.clear();
        lcd.print ("***");
        delay(200);
        lcd.clear();
        lcd.print ("****");
        delay(200);
        lcd.clear();
        lcd.print ("*****");
        delay(200);
        lcd.clear();
        lcd.print ("******");
        delay(200);
        lcd.clear();
        lcd.print ("*******");
        delay(200);
        lcd.clear();
        lcd.print ("********");
        delay(200);
        lcd.clear();
        lcd.print ("*********");
        delay(200);
        lcd.clear();
        lcd.print ("**********");
        delay(200);
        lcd.clear();
        lcd.print ("***********");
        delay(200);
        lcd.clear();
        lcd.print ("************");
        delay(200);
        lcd.clear();
        lcd.print ("*************");
        delay(200);
        lcd.clear();
        lcd.print ("**************");
        delay(200);
        lcd.clear();
        lcd.print ("***************");
        delay(200);
        lcd.clear();
        lcd.print("****************");
        lcd.setCursor(0,1);
        lcd.print("******fallo******");
        delay(1000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("archivo corrupto");
        lcd.setCursor(0,1);
        lcd.print ("solo disp. pc 01");
        delay(2000);
       break;
       /////////////////////////////////////////////////////////
      case 2:
      lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("usted tiene la");
        lcd.setCursor(0,1);
        lcd.print ("terminal 2.4");
        delay(2000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("primera terminal");
        lcd.setCursor(0,1);
        lcd.print ("sintetica ARDU");
        break;
        ///////////////////////////////////////////////////////
       case 3:
       lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("v.2.4");
        lcd.setCursor(0,1);
        lcd.print ("modif. 02/11/16");
        delay(1000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("añadido de ");
        lcd.setCursor(0,1);
        lcd.print ("nuevas opciones");
        //Call the function that belongs to Option 3
        break;
        ///////////////////////////////////////////////////////
      case 4:
      lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("contacte admin.");
        lcd.setCursor(0,1);
        lcd.print ("O en P. WEB");
        break;
        ////////////////////////////////////////////////////////
         case 5:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo.");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo..");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo...");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo.");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo..");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo...");
        delay(1000);
         lcd.setCursor(0,0);
        lcd.print ("D.1 = HIGH");
         digitalWrite(1, HIGH);
     
        break;
        /////////////////////////////////////////////////////////
         case 6:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("CERRANDO...");
         digitalWrite(1, LOW);
        delay(1000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("  D.1 = LOW");
       
       
        break;
        /////////////////////////////////////////////////////////
          case 7:
          lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo.");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo..");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo...");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo.");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo..");
        delay(600);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("abriendo...");
        delay(1000);
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("D.2 : HIGH");
         digitalWrite(2, HIGH);
     
        break;
        ////////////////////////////////////////////////////
        case 8:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("CERRANDO...");
         digitalWrite(2, LOW);
         delay(1000);
         lcd.clear();
        lcd.setCursor(0,0);
        lcd.print ("  D.2 = LOW");
       
     
        break;
    }
}

No hay comentarios:

Publicar un comentario