ciao a tutti... dovrei realizzare un contatore di chiusure di un contatto e visualizzare il conteggio su un dislay lcd... qualcuno ha un codice da cui prendere qualche spunto.
in pratica quando un pin di arduino cambia stato deve incrementare la numerazione sul display...
studiati questo.
Invece del Serial.print, farai un Lcd.print
const int contatto = 2 ;
int statocontatto ;
int last_statocontatto ;
unsigned long contatoreimpulsi = 0;
void setup(){
Serial.begin(9600);
pinMode(contatto, INPUT_PULLUP); // Attiva il Pullup sul pin scelto
}
void loop() {
statocontatto = digitalRead(contatto); // Leggi lo stato del contatto sul pin
if (statocontatto!= last_statocontatto) { // confronta se diverso dall'ultima verifica
if (statocontatto== LOW) { // il contatto e' stato messo a massa
contatoreimpulsi++; // incrementa il conteggio
Serial.print("numero di impulsi: ");
Serial.println(contatoreimpulsi);
}
}
last_statocontatto = statocontatto ; //
delay(30); // Ritardo se non si fa' altro.
// qui si mette altro codice che deve eseguire
}
grazie brunetto, credo che le righe da te postate siano sufficienti per il mio scopo.....aggungerò solo la parte relativa al display ed il gioco è fatto, domani farò qualche prova.
per uwefed: devo controllare solo un contatto (sono un pin), la frequenza di chiusura è di circa una al secondo, la durata della chiusura non saprei... (è un contatto che viene chiuso e devo conteggiare il numero di chiusure) quanto può durare una pressione di un tasto, 10-50-100 mS?
grazie
In questo modo ogni volta che il piedino 2 si chiude verso massa, la variabile n si incrementa di uno.
Trascorso un tempo prestabilito, scrivi il suo valore sul display e la azzeri.