#include <LiquidCrystal_I2C.h>
#define I2C_ADD 0X27
#define ROWS 2
#define COLS 16
#define EN_CLK 5
#define EN_DT 6
#define EN_SW 7
#define TEMP A0
#define LED 4
unsigned int c = 0;
LiquidCrystal_I2C lcd(I2C_ADD, ROWS, COLS);
bool tempSet = false;
unsigned int temp = 0;
int lastClick = HIGH;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// lcd.init();
// lcd.backlight();
pinMode(EN_CLK, INPUT);
pinMode(EN_DT, INPUT);
pinMode(EN_SW, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int valTemp = readTemp();
// Serial.println(valTemp);
// lcd.setCursor(0,0);
// lcd.print("TEMP:" +String(valTemp));
int newClick = digitalRead(EN_CLK);
if(newClick != lastClick){
lastClick = newClick;
int dtVal = digitalRead(EN_DT);
if(newClick == LOW && dtVal == HIGH){
temp++;
c++;
// Serial.println(temp);
}
if(newClick == LOW && dtVal== LOW){
temp--;
c--;
// Serial.println(temp);
}
Serial.println(c);
}
// lcd.setCursor(0,1);
// lcd.print("SET:"+String(c));
// if(digitalRead(EN_SW) == LOW){
// tempSet = true;
// Serial.println("Temperature set at :" + String(temp));
// }
// if(tempSet){
// if(valTemp < temp){
// digitalWrite(LED,HIGH);
// Serial.println("activated");
// }
// if(valTemp >= 50){
// digitalWrite(LED,LOW);
// Serial.println("deactivated");
// }
// }
// delay(100);
}
int readTemp(){
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
int analogValue = analogRead(A0);
int celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
return celsius;
}