Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h> //Biblioteca para o display LCD
- #include <DS1307.h>
- DS1307 rtc(A4, A5); //Modulo RTC DS1307 ligado as portas
- void keyboardRead();
- void mostraHora();
- void relogio();
- void ajuste();
- byte HoraR = 0;
- byte MinutoR = 0;
- byte SegundoR = 0;
- Time Horario;
- int adc_value = 0x00; //armazena o valor digital do conversor AD
- int segundos = 0, minutos = 0, horas = 0; //variáveis do relógio
- boolean right = 0x00, butt01 = 0x00,
- up = 0x00, butt02 = 0x00,
- down = 0x00, butt03 = 0x00,
- left = 0x00, butt04 = 0x00,
- select = 0x00, butt05 = 0x00;
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // definindo a pinagem do display lcd
- //-------------------------------------
- void setup()
- {
- pinMode(13, OUTPUT);
- lcd.begin(16, 2); //Inicializa LCD 16 x 2
- lcd.setCursor(1, 0); //Posiciona cursor na coluna 2, linha 1
- lcd.print("Relogio Arduino"); //Imprime mensagem
- //As linhas abaixo setam a data e hora do modulo
- //e podem ser comentada apos a primeira utilizacao
- // rtc.setDOW(SUNDAY); //Define o dia da semana
- // rtc.setTime(21, 51, 00); //Define o horario
- // rtc.setDate(25, 9, 2016); //Define o dia, mes e ano
- }
- //-------------------------------------
- void loop()
- {
- relogio();
- mostraHora();
- ajuste();
- keyboardRead();
- Compara();
- }
- //------------------------------------
- void Compara()
- {
- If (MinutoR == minutos)
- {
- If(HoraR == horas)
- {
- //faça alguma coisa
- }
- }
- }
- //-------------------------------------
- void relogio()
- {
- Horario = rtc.getTime();
- HoraR = Horario.hour,DEC;
- MinutoR = Horario.min,DEC;
- }
- //-------------------------------------
- void ajuste()
- {
- if (right == 0x01) //tecla right pressionada?
- { //sim...
- right = 0x00; //limpa flag da tecla
- minutos++; //incrementa unidade de minuto
- if (minutos > 59) minutos = 0x00; //volta a ser zero se maior que 59
- }
- if (up == 0x01) //tecla up pressionada?
- { //sim...
- up = 0x00; //limpa flag da tecla
- horas++; //incrementa unidade de hora
- if (horas > 23) horas = 0x00; //volta a ser zero se maior que 23
- }
- if (down == 0x01) //tecla down pressionada?
- { //sim...
- down = 0x00; //limpa flag da tecla
- minutos = minutos + 10; //incrementa dezena de minuto
- if (minutos > 59) minutos = 0x00; //volta a ser zero se maior que 59
- }
- if (left == 0x01) //tecla left pressionada?
- { //sim...
- left = 0x00; //limpa flag da tecla
- horas = horas + 10; //incrementa dezena de hora
- if (horas > 23) horas = 0x00; //volta a ser zero se maior que 23
- }
- }
- //-------------------------------------
- void mostraHora()
- {
- lcd.setCursor(4, 1); //Posiciona cursor na coluna 3, linha 2
- lcd.print(horas); //Imprime valor das horas
- lcd.print(":"); //Imprime :
- lcd.print(minutos); //Imprime valor dos minutos
- lcd.print(":"); //Imprime :
- lcd.print(segundos); //Imprime valor dos segundos
- }
- //----------------------------------
- void keyboardRead()
- {
- adc_value = analogRead(A0);
- if (adc_value < 50) butt01 = 0x01;
- else if (adc_value > 103 && adc_value < 200) butt02 = 0x01;
- else if (adc_value > 250 && adc_value < 380) butt03 = 0x01;
- else if (adc_value > 450 && adc_value < 550) butt04 = 0x01;
- if (adc_value > 50 && butt01) //Botão right solto e flag butt01 setada?
- { //Sim...
- butt01 = 0x00; //Limpa flag butt01
- right = 0x01; //Seta flag right
- }
- if (adc_value > 200 && butt02) //Botão up solto e flag butt02 setada?
- { //Sim...
- butt02 = 0x00; //Limpa flag butt02
- up = 0x01; //Seta flag up
- }
- if (adc_value > 380 && butt03) //Botão down solto e flag butt03 setada?
- { //Sim...
- butt03 = 0x00; //Limpa flag butt03
- down = 0x01; //Seta flag down
- }
- if (adc_value > 550 && butt04) //Botão left solto e flag butt04 setada?
- { //Sim...
- butt04 = 0x00; //Limpa flag butt04
- left = 0x01; //Seta flag left
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement