Pages: [1]   Go Down
Author Topic: CONTATORE CHIUSURA CONTATTO E VISUALIZZAZIONE SU DISPLAY  (Read 799 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 47
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Tuscany
Offline Offline
Edison Member
*
Karma: 77
Posts: 2110
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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



Code:
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
  }
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 47
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Full Member
***
Karma: 4
Posts: 148
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
Newbie
*
Karma: 0
Posts: 47
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: