// include the library code:
#include <LiquidCrystal_I2C.h>
// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
LiquidCrystal_I2C lcd(0x27, 16, 2);
int keadaanVariasi = 0;
void setup() {
attachInterrupt(digitalPinToInterrupt(2), variasi, RISING);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Temperature:");
Serial.begin(9600);
}
void loop() {
switch (keadaanVariasi) {
case 0:
BacaCelcius();
break;
case 1:
BacaFahrenheit();
break;
case 2:
BacaKelvin();
break;
}
}
void variasi() {
delay(100);
keadaanVariasi++;
Serial.print("keadaanVariasi=");
Serial.println(keadaanVariasi);
if (keadaanVariasi > 2) keadaanVariasi = 0;
}
void BacaCelcius() {
float c = analogRead(A0);
c = (c * 5) / 1023;
c = c * 100;
lcd.setCursor(0, 1);
lcd.print(c);
lcd.print((char)223);
lcd.print(" C");
}
void BacaFahrenheit() {
float c = analogRead(A0);
c = (c * 5) / 1023;
c = c * 100;
float f = (c * 9) / 5 + 32;
lcd.setCursor(0, 1);
lcd.print(f);
lcd.print((char)223);
lcd.print(" F");
}
void BacaKelvin() {
float c = analogRead(A0);
c = (c * 5) / 1023;
c = c * 100;
float k = (c + 273.15);
lcd.setCursor(0, 1);
lcd.print(k);
lcd.print((char)223);
lcd.print(" K");
}