#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define EnsalidaA 5
#define EnsalidaB 6
#define Enboton 9
int Encontador = 0;
int EnestadoA;
int EnestadoPrevioA;
void setup() {
pinMode (EnsalidaA,INPUT);
pinMode (EnsalidaB,INPUT);
pinMode (Enboton, INPUT_PULLUP);
Serial.begin (9600);
EnestadoPrevioA = digitalRead(EnsalidaA);
}
void loop()
{
// Lee el estado de la salida A
EnestadoA = digitalRead(EnsalidaA);
// Si el estado previo de la salida A era otro
// significa que se ha producido un pulso
if (EnestadoA != EnestadoPrevioA){
// Si el estado de salida B es diferente del estado
// de salida A el codificador esta girando a la derecha
if (digitalRead(EnsalidaB) != EnestadoA) {
Encontador ++;
} else {
Encontador --;
}
Serial.print("Posición: ");
Serial.println(Encontador);
}
// actualiza el estado guardado
EnestadoPrevioA = EnestadoA;
bool Enbtn = digitalRead(Enboton);
//Serial.print(B);
if (!Enbtn) // si se pulsa el boton su valor va a BAJO
{ Serial.println("Boton pulsado: Contador a 0");
Encontador = 0 ;
delay(300);
}
}