// IRFAN RAMADHAN
/* 1V ~ 100 celcius
analog range 0 to 1023
*/
//LIBRARY
#include <LiquidCrystal.h>
// Define
#define indicator 2
//Setup Kaki LCD
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Mendefinisikan pin tempat sensor LM35 terhubung
const int sensorPin = A0; // Sensor terhubung ke pin analog A0
//Global variable
float nilailama = 0; // Buat nilai perbandingan doang
int sensorValue;
float voltage;
float temperatureC;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(indicator, OUTPUT);
Intro("LM35 Sensor Suhu");
}
void loop() {
sensorValue = analogRead(sensorPin); // Pembacaan Nilai Analog Pin A0
voltage = sensorValue * (5.0 / 1023.0); // Membagi Nilai Analog dengan 1023
temperatureC = voltage * 100.0; // Membagi Float voltage dengan 100
//cekSerial();
PrintLCD();
ledIndicator(250);
}
void cekSerial(){
Serial.println(sensorValue);
Serial.println(temperatureC);
nilailama = temperatureC;
delay(10);
}
void PrintLCD(){
if(nilailama != temperatureC){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("TEMPERATUR C");
lcd.setCursor(0, 1);
lcd.print(temperatureC);
nilailama = temperatureC;
delay(250);
}
}
void Intro(char* y){
lcd.setCursor(0, 0);
lcd.print("IRFAN R");
lcd.setCursor(0, 1);
lcd.print(y);
delay(500);
lcd.clear();
}
void ledIndicator(uint16_t waktu){
digitalWrite(indicator, 1);
delay(waktu);
digitalWrite(indicator, 0);
delay(waktu);
}