#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=2;
const byte COLUMNAS=3;
char keys [FILAS][COLUMNAS] ={
{'1','2','3'},
{'*','0','#'},
};
byte pinesFilas[FILAS] = {8,9};
byte pinesColumnas [COLUMNAS]={10,11,12};
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;
#include <LiquidCrystal.h>
LiquidCrystal lcd (22,23,24,25,26,27);
uint8_t pacman[8] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11111,
0b01110,
0b00000,
0b00000
};
uint8_t pacmanOpen[] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11100,
0b01110,
0b00000,
0b00000
};
uint8_t dot[] = {
0b00000,
0b00000,
0b00000,
0b00110,
0b00110,
0b00000,
0b00000,
0b00000
};
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.begin(16,2);
lcd.createChar(1, pacman);
lcd.createChar(2, dot);
}
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.setCursor(5,0);
lcd.print("FANTA");
lcd.display();
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 3);
lcd.print("\1");
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, 3);
lcd.print("\2");
}
lcd.createChar(1, pacman);
delay(80);
lcd.createChar(1, pacmanOpen);
delay(80);
lcd.setCursor(i, 3);
lcd.print(" ");}
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.setCursor(4,0);
lcd.print("COCACOLA");
lcd.display();
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 3);
lcd.print("\1");
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, 3);
lcd.print("\2");
}
lcd.createChar(1, pacman);
delay(80);
lcd.createChar(1, pacmanOpen);
delay(80);
lcd.setCursor(i, 3);
lcd.print(" ");}
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.setCursor(5,0);
lcd.print("PEPSI");
lcd.display();
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 3);
lcd.print("\1");
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, 3);
lcd.print("\2");
}
lcd.createChar(1, pacman);
delay(80);
lcd.createChar(1, pacmanOpen);
delay(80);
lcd.setCursor(i, 3);
lcd.print(" ");}
lcd.noDisplay();
lcd.clear();
servo5.write(0);
delay(300);
servo6.write(90);
delay(10);
}
else {
delay(1000);
Serial.println("Incorrecta");
lcd.setCursor(5,0);
lcd.print("ERROR");
lcd.display();
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 3);
lcd.print("\1");
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, 3);
lcd.print("\2");
}
lcd.createChar(1, pacman);
delay(80);
lcd.createChar(1, pacmanOpen);
delay(80);
lcd.setCursor(i, 3);
lcd.print(" ");}
lcd.noDisplay();
lcd.clear();
}
INDICE=0;
}
}