Avrei bisogno di un aiutino per gestire 3 timer con una particolarità:
finito tutti e tre i conteggi, si deve fermare , e riavviarsi se premo un pulsante dal timer B
e qui mi son fermato perchè non riesco a richiamare il punto B.
il codice è questo
#include <LiquidCrystal.h>
int a= 10; // Timer A 5 minuti sarebbero 300 secondi ma per comodità del test solo 10
int b = 10; // Timer B 10 secondi
int c = 20; // Timer C 20 secondi
int x = 0; // variabile usata dal for
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print("Timer A");
lcd.setCursor(7,1);
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
// print the number of seconds since reset:
for (x=a;a>0;a--) // Questo è il punto A, partenza del primo timer da eseguire solo una volta
{
lcd.setCursor(7,1);
lcd.print(a);
delay (1000);
}
lcd.clear();
for (x=b;b>0;b--) // Questo è il punto B, dove vorrei farci tornare il programma
{
lcd.setCursor(0,0);
lcd.print("Timer B");
lcd.setCursor(7,1);
lcd.print(b);
delay (1000);
}
for (x=c;c>0;c--)
{
lcd.setCursor(0,0);
lcd.print("Timer C"); // Questo è il punto C
lcd.setCursor(7,1);
lcd.print(c);
delay (1000);
}
}
Pepsi:
Avrei bisogno di un aiutino per gestire 3 timer con una particolarità:
finito tutti e tre i conteggi, si deve fermare , e riavviarsi se premo un pulsante dal timer B
Vediamo se ho capito:
hai 3 timer che vengono eseguiti in sequenza: prima il timer A, poi il timer B, poi il timer C
se non succede nulla, terminato il timer C, il programma riparte eseguendo il timer A
se l'utente preme un tasto SOLO all'interno del timer B, il programma deve ripartire dal timer A
e qui mi son fermato perchè non riesco a richiamare il punto B.
Dovrebbe funzionare cosi :
all'avvio Parte il primo timer, che conterebbe fino a 300 ma per comodità delle prove lo setto a 10 secondi.
Finito il conto alla rovecia del primo timer (A), parte il secondo timer (B), ed è dal secondo timer che vorro' ritornare dopo che ha eseguito anche il terzo conteggio, il timer (c).
Finito tutti e tre i timer, deve apparire un messaggio sul display che è in attesa di premere il pulsante, dopodichè riparte dal timer B e il timer C, e ritorna sempre con quel messaggio all'inizio del timer B
timer A ...........bla bla bla
timer B ............ bla bla bla
timer C.............. bla bla bla
ritorno al timer B. se premo il pulsante esegue Timer B e timer C, e cosi si ripete se non premo niente rimane in attesa .
Grazie leo, pero' a dire il vero una volta premuto non dice di nuovo Timer B e conteggio, rimane vuoto lcd.. comunque dovrei risolvere. Non pensavo funzionasse dichiarando nuovi loop . Il C è un po' nuovo per me che vengo dal basic..
Certo io pure, il commodore è stato il mio primo computer..
diomio che ricordi..
purtoppo non ho mai imparato il C, con il basic , ci arrivavo da solo.. if then gosub ..era gia fatto
Dicevo, riguardo al tuo intervento, le scritte a parte ci ho messo lcd.print("pulsante premuto") che non appare , ma nemmeno ritorna a dire timer B 10- 9- 8 - 7 - 6 - 5..
la parentesi graffa sotto dovrebbe chiudere il ciclo e farlo riportare alla sua "gemella", ma cosi non avviene.