#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int lcd_key = 0;
int adc_key_in = 0;
int hour=0;
int mim=0;
int sec=0;
int hour2 =5;
int mim2=0;
int sec2= 0;
int x=0;
int a =0;
int b=0;
int piezo=0;
int piezo0;
int lcd_piezo = 0;
int piezo2=0;
int piezo02;
int lcd_piezo2 = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
#define PIEZO1 1
#define PIEZO2 2
#define PIEZO3 3
#define PIEZO4 4
#define PIEZO12 5
#define PIEZO22 6
#define PIEZO32 7
#define PIEZO42 8
#define NONE 0
int read_LCD_buttons()
{
adc_key_in = analogRead(0);
if (adc_key_in > 1000) return btnNONE;
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
return btnNONE;
}
int read_piezo()
{
piezo0= analogRead(1);
piezo = map(piezo0, 0, 1023, 0, 255);
piezo02=analogRead(3);
piezo2=map(piezo02, 0, 1023, 0, 255);
if (piezo > 255) return NONE;
if (piezo < 100) return NONE;
if (piezo < 150) return PIEZO2;
if (piezo < 175) return PIEZO3;
if (piezo < 200) return PIEZO4;
if (piezo2 > 255) return NONE;
if (piezo2 <100) return NONE;
if (piezo2 < 150) return PIEZO22;
if (piezo2 < 175) return PIEZO32;
if (piezo2 >200) return PIEZO42;
return NONE;
}
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Ajuste tempo 1");
x=63;
for (hour=0;lcd_key!=4;b++)
{
lcd_key=read_LCD_buttons();
if (x==63)
{
if (lcd_key==1)
{
hour=hour++;
}
if (lcd_key==2)
{
hour=hour--;
}
if (lcd_key==0)
{
x=64;
lcd_key=70;
}
if (hour > 9)
{
hour=0;
}
if (hour < 0)
{
hour=9;
}
lcd.setCursor(0,1);
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print(":");
lcd.setCursor(2,1);
if (mim < 10){
lcd.print("0");
lcd.setCursor(3,1);
lcd.print(mim, DEC);
} else{
lcd.print(mim, DEC);
}
lcd.setCursor(4,1);
lcd.print(":");
lcd.setCursor(5,1);
if (sec < 10){
lcd.print("0");
lcd.setCursor(6,1);
lcd.print(sec, DEC);
} else{
lcd.print(sec, DEC);
}
}
if(x==64)
{
if (lcd_key==1)
{
mim=mim++;
}
if (lcd_key==2)
{
mim=mim--;
}
if (lcd_key==0)
{
x=62;
}
if (lcd_key==3)
{
x=63;
}
if (mim > 59)
{
mim=0;
}
if (mim < 0)
{
mim = 59;
}
lcd.setCursor(0,1);
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print(":");
lcd.setCursor(2,1);
if (mim < 10){
lcd.print("0");
lcd.setCursor(3,1);
lcd.print(mim, DEC);
} else{
lcd.print(mim, DEC);
}
lcd.setCursor(4,1);
lcd.print(":");
lcd.setCursor(5,1);
if (sec < 10){
lcd.print("0");
lcd.setCursor(6,1);
lcd.print(sec, DEC);
} else{
lcd.print(sec, DEC);
}
}
if (x==62)
{
if (lcd_key==1)
{
sec=sec++;
}
if (lcd_key==2)
{
sec=sec--;
}
if (lcd_key==3)
{
x=64;
}
if (sec > 59)
{
sec=0;
}
if (sec < 0)
{
sec=59;
}
lcd.setCursor(0,1);
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print(":");
lcd.setCursor(2,1);
if (mim < 10){
lcd.print("0");
lcd.setCursor(3,1);
lcd.print(mim, DEC);
} else{
lcd.print(mim, DEC);
}
lcd.setCursor(4,1);
lcd.print(":");
lcd.setCursor(5,1);
if (sec < 10){
lcd.print("0");
lcd.setCursor(6,1);
lcd.print(sec, DEC);
} else{
lcd.print(sec, DEC);
}
}
delay (100);
}
lcd_key=45;
lcd.setCursor(13,0);
lcd.print("2");
hour2=0;
for (hour2=0;lcd_key!=4;b++)
{
lcd_key=read_LCD_buttons();
if (x==63)
{
if (lcd_key==1)
{
hour2=hour2++;
}
if (lcd_key==2)
{
hour2=hour2--;
}
if (lcd_key==0)
{
x=64;
lcd_key=70;
}
if (hour2 > 9)
{
hour2=0;
}
if (hour2 < 0)
{
hour2=9;
}
lcd.setCursor(9,1);
lcd.print(hour2, DEC);
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(11,1);
if (mim2 < 10){
lcd.print("0");
lcd.setCursor(12,1);
lcd.print(mim2, DEC);
} else{
lcd.print(mim2, DEC);
}
lcd.setCursor(13,1);
lcd.print(":");
lcd.setCursor(14,1);
if (sec2 < 10){
lcd.print("0");
lcd.setCursor(15,1);
lcd.print(sec2, DEC);
} else{
lcd.print(sec2, DEC);
}
}
if(x==64)
{
if (lcd_key==1)
{
mim2=mim2++;
}
if (lcd_key==2)
{
mim2=mim2--;
}
if (lcd_key==0)
{
x=62;
}
if (lcd_key==3)
{
x=63;
}
if (mim2 > 59)
{
mim2=0;
}
if (mim2 < 0)
{
mim2 = 59;
}
lcd.setCursor(9,1);
lcd.print(hour2, DEC);
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(11,1);
if (mim2 < 10){
lcd.print("0");
lcd.setCursor(12,1);
lcd.print(mim2, DEC);
} else{
lcd.print(mim2, DEC);
}
lcd.setCursor(13,1);
lcd.print(":");
lcd.setCursor(14,1);
if (sec2 < 10){
lcd.print("0");
lcd.setCursor(15,1);
lcd.print(sec2, DEC);
} else{
lcd.print(sec2, DEC);
}
}
if (x==62)
{
if (lcd_key==1)
{
sec2=sec2++;
}
if (lcd_key==2)
{
sec2=sec2--;
}
if (lcd_key==3)
{
x=64;
}
if (sec2 > 59)
{
sec2=0;
}
if (sec2 < 0)
{
sec2=59;
}
lcd.setCursor(9,1);
lcd.print(hour2, DEC);
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(11,1);
if (mim2 < 10){
lcd.print("0");
lcd.setCursor(12,1);
lcd.print(mim2, DEC);
} else{
lcd.print(mim2, DEC);
}
lcd.setCursor(13,1);
lcd.print(":");
lcd.setCursor(14,1);
if (sec2 < 10){
lcd.print("0");
lcd.setCursor(15,1);
lcd.print(sec2, DEC);
} else{
lcd.print(sec2, DEC);
}
}
delay (100);
}
}
void loop()
{
lcd_piezo = read_piezo();
switch (lcd_piezo)
{
case PIEZO1:
{
break;
}
case PIEZO2:
{
break;
}
case PIEZO3:
{
lcd_piezo = read_piezo();
if (lcd_piezo==3)
{
sec=sec--;
if (sec<0)
{
sec=59;
mim=mim--;
}
if (mim < 0)
{
mim=59;
hour= hour--;
}
lcd.setCursor(0,1);
if (hour < 0)
{
lcd.print("TIME OUT");
}
else {
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print(":");
lcd.setCursor(2,2);
if (mim < 10)
{
lcd.print("0");
lcd.setCursor(3,1);
lcd.print (mim, DEC);
}else{
lcd.print(mim, DEC);
}
lcd.setCursor (4,1);
lcd.print (":");
lcd.setCursor(5,1);
if (sec<10)
{
lcd.print ("0");
lcd.setCursor(6,1);
lcd.print(sec, DEC);
}else {
lcd.print (sec, DEC);
}
}
lcd.setCursor(9,1);
if (hour2 < 0)
{
lcd.print ("TIME OUT");
} else {
lcd.print (hour2, DEC);
lcd.setCursor(10,1);
lcd.print (":");
lcd.setCursor (11,1);
lcd.print (mim2, DEC);
lcd.setCursor(13,1);
lcd.print(":");
lcd.setCursor(14,1);
lcd.print (sec2, DEC);
delay(1000);
}
break;
}
}
case PIEZO4:
{
lcd_piezo = read_piezo();
if (lcd_piezo==4)
{
sec=sec--;
if (sec<0)
{
sec=59;
mim=mim--;
}
if (mim < 0)
{
mim=59;
hour= hour--;
}
lcd.setCursor(0,1);
if (hour < 0)
{
lcd.print("TIME OUT");
}
else {
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print(":");
lcd.setCursor(2,2);
if (mim < 10)
{
lcd.print("0");
lcd.setCursor(3,1);
lcd.print (mim, DEC);
}else{
lcd.print(mim, DEC);
}
lcd.setCursor (4,1);
lcd.print (":");
lcd.setCursor(5,1);
if (sec<10)
{
lcd.print ("0");
lcd.setCursor(6,1);
lcd.print(sec, DEC);
}else {
lcd.print (sec, DEC);
}
}
lcd.setCursor(9,1);
if (hour2 < 0)
{
lcd.print ("TIME OUT");
} else {
lcd.print (hour2, DEC);
lcd.setCursor(10,1);
lcd.print (":");
lcd.setCursor (11,1);
lcd.print (mim2, DEC);
lcd.setCursor(13,1);
lcd.print(":");
lcd.setCursor(14,1);
lcd.print (sec2, DEC);
delay(1000);
}
}
}
case PIEZO32:
{
lcd_piezo = read_piezo();
if (lcd_piezo==3)
{
sec2=sec2--;
if (sec2<0)
{
sec2=59;
mim2=mim2--;
}
if (mim2 < 0)
{
mim2=59;
hour2= hour2--;
}
lcd.setCursor(9,1);
if (hour2 < 0)
{
lcd.print ("TIME OUT");
} else {
lcd.print (hour2, DEC);
lcd.setCursor(10,1);
lcd.print(":");
lcd.setCursor(11,2);
if (mim2 < 10)
{
lcd.print("0");
lcd.setCursor(12,1);
lcd.print (mim2, DEC);
}else{
lcd.print(mim2, DEC);
}
lcd.setCursor (13,1);
lcd.print (":");
lcd.setCursor(14,1);
if (sec2<10)
{
lcd.print ("0");
lcd.setCursor(15,1);
lcd.print(sec2, DEC);
}else {
lcd.print (sec2, DEC);
}
}
lcd.setCursor(0,1);
if (hour < 0)
{
lcd.print("TIME OUT");
}
else {
lcd.print(hour, DEC);
lcd.setCursor(1,1);
lcd.print (":");
lcd.setCursor (2,1);
lcd.print (mim, DEC);
lcd.setCursor(4,1);
lcd.print(":");
lcd.setCursor(5,1);
lcd.print (sec, DEC);
}
delay(1000);
break;
}
}
}
}