// Prueba de Menu con LCD y Teclado
// by: http://elprofegarcia.com
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
int val;
char pulsacion; // almacena la tecla pulsada
int contador = 1; // cuenta el nivel del menu en el que se esta
const byte ROWS = 4; //Cuatro Filas
const byte COLS = 4; //Cuatro Columnas
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {13,12,11,10}; //Puntos de conexion del teclado al arduino FILAS
byte colPins[COLS] = {9,8,7,6}; //Puntos de conexion del teclado al arduino COLUMNAS
Keypad Teclado1 = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //Configura el teclado
LiquidCrystal_I2C lcd(0x27,16,2); // dependiendo del fabricante del I2C el codigo 0x27 cambiar a
// 0x3F , 0x20 , 0x38 ,
////////////////////////////////// Void Setup() ///////////
void setup () {
lcd.init();
lcd.backlight();
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(1, OUTPUT);
pinMode(0, OUTPUT);
intro_0(); // muestra el intro de bienvenida
}
////////////////////////// Void loop() ///////////////////////
void loop(){
val=analogRead(A0);
pulsacion = Teclado1.getKey() ; // Lee la tecla pulsada
if (pulsacion != 0) {
lcd.clear();
delay(100);
}
if(contador == 4){ menu_4();accion_4();}
if(contador == 3){ menu_3();accion_3();}
if(contador == 2){ menu_2();accion_2();}
if(contador == 1){ menu_1();accion_1();}
if(contador == 0){ intro_0();}
} ///////// Fin del void loop(), inician las Funciones///////////////
/////////////////////Intro_0 //////////////////////////////
void intro_0(){
lcd.clear(); // Borra el LCD
lcd.setCursor(3,0); // Se posiciona en la Columna 3, Fila 0
lcd.print("BIENVENIDO ");
lcd.setCursor(1,1);
lcd.print("PRUEBA DE MENU");
delay(4000); // espera 4 segundos mostrando el intro
lcd.clear();
contador = 1;
}
/////////////////////Menu_1 //////////////////////////////////
void menu_1(){
lcd.setCursor(0,0);
lcd.print("ON >1 ");
lcd.setCursor(10,0);
lcd.print("OFF >2");
lcd.setCursor(0,1);
lcd.print("INTER >3 ");
lcd.setCursor(10,1);
lcd.print("MAS >*");
}
/////////////////////Accion 1 //////////////////////////////
void accion_1(){
if(pulsacion == '1') digitalWrite(4,HIGH);
if(pulsacion == '2') digitalWrite(4,LOW);
if(pulsacion == '3') intermitente();
if(pulsacion == '*') contador=2;
if(pulsacion == '0') contador=0;
}
/////////////////////Menu_2 //////////////////////////////////
void menu_2(){
lcd.setCursor(0,0);
lcd.print("LUZ >1 ");
lcd.setCursor(8,0);
lcd.print("TIEMPO>2");
lcd.setCursor(0,1);
lcd.print("MENU ># ");
}
/////////////////////accion_2 //////////////////////////////////
void accion_2(){
if(pulsacion == '1') contador=3;
if(pulsacion == '2') contador=4;
if(pulsacion == '#') contador=1;
if(pulsacion == '0') contador=0;
}
/////////////////////Menu_3 //////////////////////////////////
void menu_3(){
lcd.setCursor(0,0);
lcd.print("LUZ : ");
lcd.setCursor(5,0);
lcd.print(analogRead(A0));
lcd.setCursor(0,1);
lcd.print("MENU># <--0");
}
/////////////////////accion_3 //////////////////////////////////
void accion_3(){
if(pulsacion == '#') contador=1;
if(pulsacion == '0') contador=2;
if(pulsacion == '0') contador=0;
if(val>=200) digitalWrite(5, HIGH);
if(val>=400) digitalWrite(3, HIGH);
if(val>=600) digitalWrite(2, HIGH);
if(val>=800) digitalWrite(1, HIGH);
if(val>=1000) digitalWrite(0, HIGH);
if(val<200) digitalWrite(5, LOW);
if(val<400) digitalWrite(3, LOW);
if(val<600) digitalWrite(2, LOW);
if(val<800) digitalWrite(1, LOW);
if(val<1000) digitalWrite(0, LOW);
}
/////////////////////Menu_4 //////////////////////////////////
void menu_4(){
unsigned long tiempo1 = (millis()/1000);
lcd.setCursor(0,0);
lcd.print("TIEMPO: ");
lcd.setCursor(8,0);
lcd.print(tiempo1);
lcd.setCursor(0,1);
lcd.print("MENU># <--0");
}
/////////////////////accion_4 //////////////////////////////////
void accion_4(){
if(pulsacion == '#') contador=1;
if(pulsacion == '0') contador=2;
if(pulsacion == '0') contador=0;
}
/////////////////////intermitente //////////////////////////////////
void intermitente(){
digitalWrite(4,HIGH);
delay(300);
digitalWrite(4,LOW);
delay(300);
digitalWrite(4,HIGH);
delay(300);
digitalWrite(4,LOW);
delay(300);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
keypad1:R1
keypad1:R2
keypad1:R3
keypad1:R4
keypad1:C1
keypad1:C2
keypad1:C3
keypad1:C4
led1:A
led1:C
FPS: 0
Power: 0.00W
Power: 0.00W
pot1:GND
pot1:SIG
pot1:VCC
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led7:A
led7:C