buon giorno...in questi giorni ho apportato delle piccole modifiche come suggerito da -zef- e da fabpolli per tenere il codice un pò più pulito da leggere
invece per quanto riguarda il timer ancora sn in alto mare, non riesco a trovare nessun esempio da seguire, su internet si trovano solo video di gente che usa il potenziometro e lo shield per impostare il countdown
qualcuno riesce a spiegarmi cosa devo modificare per aggiungere le ORE e visualizzare quando devo inserire i valori H00:M00:S00
questi sn i due codici che m gestiscono il timer
codice per inserire i valori del tempo( per ora è impostato a 4 cifre)
void inseriretempo() {
lcd.setCursor(0, 0);
lcd.print("Inserire Tempo:");
while (currentTimeValue < 4)
{
// lcd.print("H00:M00:S00");
lcd.setCursor(currentTimeValue + 6, 1);
lcd.cursor();
char key = keypad.getKey();
key == NO_KEY;
if (key != NO_KEY)
{
if ((key != '*') && (key != '#') && (key != 'A') && (key != 'B') && (key != 'C') && (key != 'D')) //caratteri non permessi
{
lcd.print(key);
tempo[currentTimeValue] = key;
currentTimeValue++;
}
}
}
if (currentTimeValue == 4)
{
delay(2000);
lcd.noCursor();
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Start in 5 Sec");
lcd.setCursor(6, 1);
for (int i = 0; i <= 4; i++) // ripete x 5 volte quello scritto tra {}
{
lcd.print((char)0); // richiama la clessidra
delay(1000);
}
lcd.clear();
currentTimeValue = 0;
}
}
e questo è il void che mi converte i valori in minuti e secondi se non mi sbaglio
void settaggiotempo() {
int l;
char tempVal[3];
char key = keypad.getKey();
if (currentState == 1) {
tempVal[0] = tempo[0];
tempVal[1] = tempo[1];
tempVal[2] = 0;
timerSeconds = atol(tempVal) * 60;
tempVal[0] = tempo[2];
tempVal[1] = tempo[3];
tempVal[2] = 0;
timerSeconds = timerSeconds + atol(tempVal);
currentState = 2;
}
if (lpcnt > 9) {
lpcnt = 0;
--timerSeconds;
tone(buzzer, 1500, 500);
countdown();
if (timerSeconds <= 0) {
currentState = 1;
temposcaduto();
}
}
++lpcnt;
delay(100);
}