#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(39, 16, 2);
byte Cup[] = {
B00000,
B00000,
B00000,
B01111,
B11100,
B10000,
B10000,
B10000
};
byte Cdown[] = {
B10000,
B10000,
B10000,
B11100,
B01111,
B00000,
B00000,
B00000
};
byte Oup[] = {
B00000,
B00000,
B00000,
B01110,
B10001,
B10001,
B10001,
B10001
};
byte Odown[] = {
B10001,
B10001,
B10001,
B10001,
B01110,
B00000,
B00000,
B00000
};
byte Aup[] = {
B00000,
B00000,
B00000,
B00100,
B01010,
B10001,
B10001,
B10001
};
byte Adown[] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B00000,
B00000,
B00000
};
byte Lup[] = {
B00000,
B00000,
B00000,
B10000,
B10000,
B10000,
B10000,
B10000
};
byte Ldown[] = {
B10000,
B10000,
B10000,
B10000,
B11111,
B00000,
B00000,
B00000
};
byte Fup[8] = {
B00000,
B00000,
B00000,
B11111,
B10000,
B10000,
B10000,
B11110
};
byte Fdown[8] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B00000,
B00000,
B00000
};
byte Nup[8] = {
B00000,
B00000,
B00000,
B10001,
B11001,
B11001,
B11101,
B10101
};
byte Ndown[8] = {
B10101,
B10111,
B10011,
B10011,
B10001,
B00000,
B00000,
B00000
};
byte Tup[8] = {
B00000,
B00000,
B00000,
B11111,
B00100,
B00100,
B00100,
B00100
};
byte Tdown[8] = {
B00100,
B00100,
B00100,
B00100,
B00100,
B00000,
B00000,
B00000
};
byte Pup[] = {
B00000,
B00000,
B00000,
B11110,
B10001,
B10001,
B11110,
B10000
};
byte Pdown[] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B00000,
B00000,
B00000
};
byte Eup[] = {
B00000,
B00000,
B00000,
B11111,
B10000,
B10000,
B10000,
B11111
};
byte Edown[] = {
B10000,
B10000,
B10000,
B10000,
B11111,
B00000,
B00000,
B00000
};
byte Sup[] = {
B00000,
B00000,
B00000,
B01111,
B10000,
B10000,
B10000,
B10000
};
byte Sdown[] = {
B11111,
B00001,
B00001,
B00001,
B11111,
B00000,
B00000,
B00000
};
byte Iup[] = {
B00000,
B00000,
B00000,
B11111,
B00100,
B00100,
B00100,
B00100
};
byte Idown[] = {
B00100,
B00100,
B00100,
B00100,
B11111,
B00000,
B00000,
B00000
};
byte Rup[] = {
B00000,
B00000,
B00000,
B11110,
B10001,
B10001,
B10001,
B10001
};
byte Rdown[] = {
B11111,
B11000,
B10100,
B10010,
B10001,
B00000,
B00000,
B00000
};
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
int PINSERVO1=2;
int PINSERVO2=3;
int PINSERVO3=4;
int PINSERVO4=5;
int PINSERVO5=6;
int PINSERVO6=7;
int PULSOMIN1=500;
int PULSOMAX1=2500;
int PULSOMIN2=500;
int PULSOMAX2=2500;
int PULSOMIN3=500;
int PULSOMAX3=2500;
int PULSOMIN4=500;
int PULSOMAX4=2500;
int PULSOMIN5=500;
int PULSOMAX5=2500;
int PULSOMIN6=500;
int PULSOMAX6=2500;
#include <Keypad.h>
const byte FILAS=4;
const byte COLUMNAS=4;
char keys [FILAS][COLUMNAS] ={
{'1','2','3'},
{'*','0','#'},
};
byte pinesFilas[FILAS] = {12,11};
byte pinesColumnas [COLUMNAS]={10,9,8};
Keypad teclado = Keypad (makeKeymap(keys), pinesFilas, pinesColumnas,FILAS,COLUMNAS);
char TECLA;
char CLAVE [4];
char CLAVE_MAESTRA1[4]="001";
char CLAVE_MAESTRA2[4]="002";
char CLAVE_MAESTRA3[4]="003";
byte INDICE = 0;
void setup() {
Serial.begin(9600);
servo1.attach(PINSERVO1,PULSOMIN1,PULSOMAX1);
servo2.attach(PINSERVO2,PULSOMIN2,PULSOMAX2);
servo3.attach(PINSERVO3,PULSOMIN3,PULSOMAX3);
servo4.attach(PINSERVO4,PULSOMIN4,PULSOMAX4);
servo5.attach(PINSERVO5,PULSOMIN5,PULSOMAX5);
servo6.attach(PINSERVO6,PULSOMIN6,PULSOMAX6);
servo2.write(90);
servo4.write(90);
servo6.write(90);
servo1.write(0);
servo3.write(0);
servo5.write(0);
delay(10);
lcd.init();
lcd.backlight();
}
void loop() {
TECLA = teclado.getKey();
if (TECLA) {
CLAVE [INDICE]=TECLA;
INDICE++;
Serial.print (TECLA);
lcd.setCursor(6,0);
lcd.print(CLAVE);
lcd.display();
}
if (INDICE ==3) {
if (!strcmp(CLAVE, CLAVE_MAESTRA1)) {
delay(1000);
Serial.println(" Fanta");
servo1.write(90);
delay(300);
servo2.write(0);
delay(10);
lcd.clear();
lcd.createChar(1,Fup);
lcd.createChar(2,Fdown);
lcd.createChar(3, Aup);
lcd.createChar(4, Adown);
lcd.createChar(5, Nup);
lcd.createChar(6, Ndown);
lcd.createChar(7, Tup);
lcd.createChar(8, Tdown);
//F
lcd.setCursor(5, 0);
lcd.write (1);
lcd.setCursor(5,1);
lcd.write(2);
//A
lcd.setCursor(6, 0);
lcd.write (byte (3));
lcd.setCursor(6,1);
lcd.write(byte(4));
//N
lcd.setCursor(7, 0);
lcd.write (byte (5));
lcd.setCursor(7,1);
lcd.write(byte(6));
//T
lcd.setCursor(8, 0);
lcd.write (byte (7));
lcd.setCursor(8,1);
lcd.write(byte(8));
//A
lcd.setCursor(9, 0);
lcd.write (byte (3));
lcd.setCursor(9,1);
lcd.write(byte(4));
lcd.display();
delay(5000);
lcd.noDisplay();
lcd.clear();
servo1.write(0);
delay(500);
servo2.write(90);
delay(10);
}
else if(!strcmp(CLAVE, CLAVE_MAESTRA2)){
delay(1000);
Serial.println(" CocaCola");
servo3.write(90);
delay(300);
servo4.write(0);
delay(10);
lcd.clear();
lcd.createChar(1, Cup);
lcd.createChar(2,Cdown);
lcd.createChar(3, Oup);
lcd.createChar(4, Odown);
lcd.createChar(5, Aup);
lcd.createChar(6, Adown);
lcd.createChar(7, Lup);
lcd.createChar(8, Ldown);
//C
lcd.setCursor(4, 0);
lcd.write (byte (1));
lcd.setCursor(4,1);
lcd.write(byte(2));
//O
lcd.setCursor(5, 0);
lcd.write (byte (3));
lcd.setCursor(5,1);
lcd.write(byte(4));
//C
lcd.setCursor(6, 0);
lcd.write (byte (1));
lcd.setCursor(6,1);
lcd.write(byte(2));
//A
lcd.setCursor(7, 0);
lcd.write (byte (5));
lcd.setCursor(7,1);
lcd.write(byte(6));
//C
lcd.setCursor(8, 0);
lcd.write (byte (1));
lcd.setCursor(8,1);
lcd.write(byte(2));
//O
lcd.setCursor(9, 0);
lcd.write (byte (3));
lcd.setCursor(9,1);
lcd.write(byte(4));
//L
lcd.setCursor(10, 0);
lcd.write (byte (7));
lcd.setCursor(10,1);
lcd.write(byte(8));
//A
lcd.setCursor(11, 0);
lcd.write (byte (5));
lcd.setCursor(11,1);
lcd.write(byte(6));
lcd.display();
delay(5000);
lcd.noDisplay();
lcd.clear();
servo3.write(0);
delay(300);
servo4.write(90);
delay(10);
}
else if(!strcmp(CLAVE, CLAVE_MAESTRA3)){
delay(1000);
Serial.println(" Pepsi");
servo5.write(90);
delay(300);
servo6.write(0);
delay(10);
lcd.clear();
lcd.createChar(1,Pup);
lcd.createChar(2,Pdown);
lcd.createChar(3, Eup);
lcd.createChar(4, Edown);
lcd.createChar(5, Sup);
lcd.createChar(6, Sdown);
lcd.createChar(7, Iup);
lcd.createChar(8, Idown);
//P
lcd.setCursor(5, 0);
lcd.write (1);
lcd.setCursor(5,1);
lcd.write(2);
//E
lcd.setCursor(6, 0);
lcd.write (byte (3));
lcd.setCursor(6,1);
lcd.write(byte(4));
//P
lcd.setCursor(7, 0);
lcd.write (byte (1));
lcd.setCursor(7,1);
lcd.write(byte(2));
//S
lcd.setCursor(8, 0);
lcd.write (byte (5));
lcd.setCursor(8,1);
lcd.write(byte(6));
//I
lcd.setCursor(9, 0);
lcd.write (byte (7));
lcd.setCursor(9,1);
lcd.write(byte(8));
lcd.display();
delay(5000);
lcd.noDisplay();
lcd.clear();
servo5.write(0);
delay(300);
servo6.write(90);
delay(10);
}
else {
delay(1000);
Serial.println("Incorrecta");
lcd.clear();
lcd.createChar(1,Eup);
lcd.createChar(2,Edown);
lcd.createChar(3, Rup);
lcd.createChar(4, Rdown);
lcd.createChar(5, Oup);
lcd.createChar(6, Odown);
//E
lcd.setCursor(5, 0);
lcd.write (1);
lcd.setCursor(5,1);
lcd.write(2);
//R
lcd.setCursor(6, 0);
lcd.write (byte (3));
lcd.setCursor(6,1);
lcd.write(byte(4));
//R
lcd.setCursor(7, 0);
lcd.write (byte (3));
lcd.setCursor(7,1);
lcd.write(byte(4));
//O
lcd.setCursor(8, 0);
lcd.write (byte (5));
lcd.setCursor(8,1);
lcd.write(byte(6));
//I
lcd.setCursor(9, 0);
lcd.write (byte (3));
lcd.setCursor(9,1);
lcd.write(byte(4));
lcd.display();
delay(5000);
lcd.noDisplay();
lcd.clear();
}
for (int i = 0; i < 4; i++) {
CLAVE[i] = 0;
}
INDICE=0;
}
}