#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define ENCODER_CLK 2
#define ENCODER_DT 3
int count = 0;
String IC2_ShowText = "count=";
void setup() {
Serial.begin(115200);
pinMode(ENCODER_CLK, INPUT);
pinMode(ENCODER_DT, INPUT);
pinMode(ENCODER_DT, INPUT_PULLUP);
lcd.init();
lcd.setCursor(0, 0); //設定第1行
lcd.print("[B10917008]"); //顯示文字
}
int lastClk = HIGH;
int lastSwitch = HIGH;
int newSwitch = digitalRead(4);
void loop()
{
int newClk = digitalRead(ENCODER_CLK);
if (newClk != lastClk) {
// There was a change on the CLK pin
lastClk = newClk;
int dtValue = digitalRead(ENCODER_DT);
if (newClk == LOW && dtValue == HIGH) {
count++;
Serial.print("count=");
Serial.println(count);
lcd.setCursor(0, 1); //設定第2行
lcd.print(IC2_ShowText + count); //顯示文字
}
if (newClk == LOW && dtValue == LOW) {
count--;
Serial.print("count=");
Serial.println(count);
lcd.setCursor(0, 1); //設定第2行
lcd.print(IC2_ShowText + count); //顯示文字
}
}
if(newSwitch != lastSwitch){
lastSwitch = newSwitch;
count = 0;
if(newSwitch == 1){
Serial.print("reset=");
Serial.println(count);
lcd.setCursor(0, 1); //設定第2行
lcd.print("reset=" + count); //顯示文字
}
}
}