int contatore = 0;
void setup() {
pinMode(2, INPUT_PULLUP); //segnale A
pinMode(3, INPUT_PULLUP); //segnale B
pinMode(4, INPUT_PULLUP); //no pushbutton switch
Serial.begin(9600);
}
int posizionePrecedente = HIGH;
void loop() {
int posizioneCorrente = digitalRead(2); // lettura segnale A
if((posizionePrecedente == HIGH) && (posizioneCorrente == LOW)){ // controlla se è avvenuto uno spostamento
if(digitalRead(2) == digitalRead(3)){ // controlla il verso della rotazione
contatore--;
}else{
contatore++;
}
Serial.println(contatore); // stampa il livello
}
posizionePrecedente = posizioneCorrente; // aggiornamento dell'ultimo livello
if(!digitalRead(4)){ // controlla se il pulsante viene premuto
Serial.println("bottone premuto");
}
}