Go Down

Topic: CONTATORE CHIUSURA CONTATTO E VISUALIZZAZIONE SU DISPLAY (Read 883 times) previous topic - next topic

anatol

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...


grazie.

uwefed

Qunati pin vuoi controllare e quanto é la frequenza e durata della chiusura?
Ciao Uwe

Brunello

studiati questo.
Invece del       Serial.print, farai un Lcd.print



Code: [Select]

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
 }

anatol

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

paolometeo2

Perche' non usi l'interrupt esterno?
void setup(){
attachInterrupt(0, count, FALLING);
....
}
void loop(){

....
}
la function count potrebbe essere questa:

void count(){
int n++;
}

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.
paolo
http://paolometeo.blogspot.it
www.meteoenergia.it

anatol

...grazie Paolo, proverò anche i tuoi suggerimenti...

Go Up