#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define pinoCLK 7
#define pinoDT 6
LiquidCrystal_I2C lcd(0x27, 16, 2);
float contador = 0;
int estadoAtualCLK;
int estadoAnteriorCLK;
String encdir = "";
void setup ()
{
pinMode (pinoCLK, INPUT);
pinMode (pinoDT, INPUT);
estadoAnteriorCLK = digitalRead(pinoCLK);
lcd.init();
lcd.setBacklight(HIGH);
}
void loop()
{
estadoAtualCLK = digitalRead(pinoCLK);
if (estadoAtualCLK != estadoAnteriorCLK)
{
if (digitalRead(pinoDT) != estadoAtualCLK)
{
contador -=0.5;
encdir = "HOR";
}
else
{
contador +=0.5;
encdir = "ANTH";
}
lcd.setCursor(0, 0);
lcd.print("Valor: ");
lcd.print(contador);
if (contador < 100 && contador >=0)
{
if (contador < 10 && contador>=0)
{
lcd.setCursor(8, 0);
lcd.print(" ");
}
else
{
lcd.setCursor(9, 0);
lcd.print(" ");
}
}
if (contador > -100 && contador <=0)
{
if (contador > -10 && contador <=0)
{
lcd.setCursor(9, 0);
lcd.print(" ");
}
else
{
lcd.setCursor(10, 0);
lcd.print(" ");
}
}
lcd.setCursor(0,1);
lcd.print("Dir: ");
lcd.print(encdir);
}
estadoAnteriorCLK = estadoAtualCLK;
}