#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>
#define rs 7
#define enable 6
#define D4 5
#define D5 4
#define D6 3
#define D7 2
#define servoPIN 8
#define boton 1
#define boton2 14
#define boton3 15
char derecha[]="1";
char derecha2[2];
char izquierda[]="2";
char izquierda2[4];
char original[]="0";
char original2[0];
int contador=0;
int contador2=0;
int contador3=0;
Servo brazo;
int pos=90;
LiquidCrystal lcd(rs,enable,D4,D5,D6,D7);
const uint8_t rows = 4;
const uint8_t cols = 3;
const char keyboard[rows][cols] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
uint8_t colPins[cols] = { 9, A4, A5 };
uint8_t rowPins[rows] = { 13, 12, 11, 10 };
Keypad keypad = Keypad(makeKeymap(keyboard), rowPins, colPins, rows, cols);
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
lcd.print("Reloj!");
pinMode(boton, INPUT);
pinMode(boton2, INPUT);
brazo.attach(servoPIN);
brazo.write(pos);
}
void loop() {
char key = keypad.getKey();
int readPin_PB = digitalRead(boton);
int readPin_PB2 = digitalRead(boton2);
int readPin_PB3 = digitalRead(boton3);
if (key != NO_KEY) {
if(contador<1)
{
derecha2[contador]=key;
contador++;
lcd.setCursor(0,1);
lcd.print(derecha2);
}
}
if(readPin_PB == HIGH){
if(pos <= 180){
if(strcmp(derecha2,derecha)==0)
{
lcd.clear();
lcd.print("reloj a la derecha");
for(int i=0;i<45;i++)
{
pos +=2;
brazo.write(pos);
delay(10);
}
contador = 0;
}
}
}
if (key != NO_KEY) {
if (contador2 < 2) {
izquierda2[contador2] = key;
contador2++;
lcd.setCursor(0, 1);
lcd.print(izquierda2);
}
}
if (readPin_PB2 == HIGH) {
if (pos >= 0) {
if (strcmp(izquierda2, izquierda) == 0) {
lcd.clear();
lcd.print("reloj a la izquierda");
for (int i = 0; i < 45; i++) {
pos -= 2;
brazo.write(pos);
delay(10);
}
contador2 = 0;
}
}
}
if (key != NO_KEY) {
if(contador3==0)
{
derecha2[contador]=key;
contador++;
lcd.setCursor(0,1);
lcd.print(original2);
}
}
if(readPin_PB == HIGH){
if(pos == 90){
if(strcmp(original2,original)==0)
{
lcd.clear();
lcd.print("reloj original");
for(int i=0;i<45;i++)
{
pos +=0;
brazo.write(pos);
delay(10);
}
contador = 0;
}
}
}
}