olá, preciso de ajuda para modificar este codigo, adicionar tempo nas linhas 2 e 3 do lcd 20x4. o cronômetro roda na linha zero, quando eu aperto o botão de pausa e imprime o valor na linha 1, preciso mudar para quando eu pressionar novamente, imprimir o novo valor na linha 1, e enviar o valor da linha 1 para 2 , e quando pressiono o botão novamente, imprime novo valor na linha 1 enviando valor da linha 1 para 2, e 2 para linha 3. sempre salvando novo valor na linha 1 envia os valores salvos para baixo. Eu ainda não entendo bem de programação, se alguém puder ajudar eu agradeço
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);//endereço I2c do LCD
//declaração das variáveis
int horas = 0;
int minutos = 0;
int segundos = 0;
int decimas = 0;
long milisegundos = 0;
int inicio = 10;
int pausa = 9;
void setup(){
Serial.begin(9600);
pinMode(inicio, INPUT);
digitalWrite(inicio, LOW);
pinMode(pausa, INPUT);
digitalWrite(pausa, LOW);
lcd.begin(20,4);//16x2
while(digitalRead(pausa) == LOW){
lcd.setCursor(0,0);
lcd.print("00:00:00:0");
}
}
void loop(){
//botao de início
if(digitalRead(inicio) == HIGH){ //se o pino ler nível alto, zera as variáveis
horas = 0;
minutos = 0;
segundos = 0;
decimas = 0;
lcd.clear();
}
//botão Pause/Play
if(digitalRead(pausa) == HIGH){//rotina de pausa e exibição da pausa
delay(200);
//while(digitalRead(pausa) == LOW);
lcd.setCursor(0,1);
if(horas < 10){ lcd.print("0");}//se as horas forem menor que 10, acrescenta um 0 na frente
lcd.print(horas);
lcd.print(":");
if(minutos < 10){ lcd.print("0");}//se os minutos forem menor que 10, acrescenta um 0 na frente
lcd.print(minutos);
lcd.print(":");
if(segundos < 10){ lcd.print("0");}//se os segundos forem menor que 10, acrescenta um 0 na frente
lcd.print(segundos);
lcd.print(":");
lcd.print(decimas);
delay(200);
horas = 0;
minutos = 0;
segundos = 0;
decimas = 0;
}
milisegundos = millis();
if(milisegundos % 100 == 0){ //Entrar apenas se tiver passado o décimo de segundo
decimas++;
if(decimas == 10){ //Quando passou 10 décimos de segundo, conta um segundo
decimas = 0;
segundos++;
}
if(segundos == 60){
// Após 60 segundos, conta um minuto
segundos = 0;
minutos++;
}
if(minutos == 60){// Depois de 60 minutos, conta uma hora
minutos = 0;
horas++;
}
//exibição no LCD
lcd.setCursor(0,0);
if(horas < 10){ //se as horas forem menor que 10, acrescenta um 0 na frente
lcd.print("0");
}
lcd.print(horas);
lcd.print(":");
lcd.setCursor(3,0);
if(minutos < 10){//se os minutos forem menor que 10, acrescenta um 0 na frente
lcd.print("0");
}
lcd.print(minutos);
lcd.print(":");
lcd.setCursor(6,0);
if(segundos < 10){//se os segundos forem menor que 10, acrescenta um 0 na frente
lcd.print("0");
}
lcd.print(segundos);
lcd.print(":");
lcd.setCursor(9,0);
lcd.print(decimas);
}
}