Allora, facendo delle prove è venuto fuori che: il contatto si chiude due volte in più al numero selezionato.. quindi, se faccio l'uno il contatto si chiude tre volte, se faccio il due si chiude cinque volte e così via... ho provato questo codice
// Contatore
int pulsante =2;
int pulsante2 =4;
int val = 0;
int val0 =0;
int contatore = 0;
int old_contatore = 0;
void setup() {
pinMode(pulsante, INPUT);
pinMode(pulsante2, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(pulsante)){
contatore +=1;
}
if(digitalRead(pulsante2)){
contatore -=1;
}
if ( contatore == 0 ) {
Serial.println("pippo");
}
if(contatore > old_contatore){
if ( contatore == 1) {
Serial.println("2");
}
if ( contatore == 2) {
Serial.println ("3");
}
if ( contatore == 3) {
Serial.println ("4");
}
if ( contatore == 4) {
Serial.println ("5");
}
if ( contatore >=5) {
val0= contatore + 1;
Serial.println(val0);
}
}
if(contatore < old_contatore) {
val = abs(contatore);
Serial.println(val);
}
old_contatore = contatore; // <<==== !
delay (200); // debounce
}
Anche se credo che abbia qualcosa che a me non serve... preso da qui... Aprendo il monitor e facendo girare la rotella non conta... Solo se rallento la rotella col dito riesce a contare... Quindi credo che non riesca a contare per problemi di velocità... Cosa consigliate?!