Hola amigos, espero que se encuentren bien.
Estoy haciendo la programación de un reloj con 2 botones que puedan configurar la hora (un botón para las horas y otro para los minutos). ya tengo el código pero al momento de ejecutar el botón este me incrementa y me vuelve a tomar el valor inicial de la hora, que puedo hacer para arreglar ese problema?
#include <LiquidCrystal.h>
LiquidCrystal lcd(3, 2, 4, 5, 6, 7);
int segundos=0;
int minutos=0;
int horas=0;
boolean boton_horas, boton_minutos;
void setup() {
lcd.begin(16, 2);
pinMode(8, INPUT);
pinMode(9, INPUT);
}
void loop() {
segundos = (millis()/1000);
minutos=(segundos/60);
horas=(minutos/60);
boton_horas= digitalRead(8);
boton_minutos= digitalRead(9);
if(segundos>59){
segundos= ((millis()/1000)-(60*minutos)) ;
if(10>(millis()/1000)-(60*minutos)){
lcd.setCursor(11, 1);
lcd.print(" ");
}
}
if(minutos>59){
minutos=(minutos-(60*horas));
if(10>(minutos-(60*horas))){
lcd.setCursor(8, 1);
lcd.print(" ");
}
}
if(horas>=24)
{
horas=(horas-(24*(horas/24)));
if(10>(horas-(24*(horas/24)))){
lcd.setCursor(5, 1);
lcd.print(" ");
}
}
if(boton_horas==HIGH){
horas++;
}
if(boton_minutos==HIGH){
minutos++ ;
}
lcd.setCursor(2, 0);
lcd.print("RELOJ DIGITAL");
lcd.setCursor(4, 1);
lcd.print(horas);
lcd.setCursor(6, 1);
lcd.print(":");
lcd.setCursor(7, 1);
lcd.print(minutos);
lcd.setCursor(9, 1);
lcd.print(":");
lcd.setCursor(10, 1);
lcd.print(segundos);
}