const byte CLK =34 ;
#define DT 35
#define SW 32
void setup() {
Serial.begin (115200);
//declara pines como entrada
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT);
//Interrupcion DT=A CLK=B
attachInterrupt(digitalPinToInterrupt(DT), contador, FALLING);
}
//variable desde -32900 hasta 32900
int cont= 0;
bool boton;
void loop() {
boton = digitalRead(SW);
if (boton=false){
Serial.println("Boton presionado");
}
//imprimir el valor
Serial.println(cont);
delay (100);
}
void contador(){
//variable donde se almacena el tiempo en millis
static unsigned long tiempo_anterior= 0;
//tiempo desde que se enciende el dispositivo
unsigned long tiempo= millis();
if(tiempo - tiempo_anterior> 5){
if (digitalRead(CLK)==LOW){//si es 0 sentido horario
cont++;
}
else{//si es 0 sentido antihorario
cont--;
}
tiempo_anterior=tiempo;
}
}