#include<LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(0x27, 20, 4);
int tombol = 2;
int led_hijau = 4;
int led_biru = 3;
int led_merah = 5;
int sensor_suhu = A0;
int suhu = 0;
void setup() {
pinMode(tombol, INPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_biru, OUTPUT);
pinMode(led_merah, OUTPUT);
pinMode(sensor_suhu, INPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
suhu = analogRead(sensor_suhu);
Serial.println(suhu);
delay(100);
lcd.setCursor(0,0);
if(suhu == 115){
digitalWrite(led_merah, LOW);
digitalWrite(led_biru, HIGH);
digitalWrite(led_hijau, HIGH);
lcd.clear();
lcd.print("Suhu sangat tinggi!");
}
else if(suhu <= 270){
digitalWrite(led_merah, LOW);
digitalWrite(led_hijau, LOW);
digitalWrite(led_biru, HIGH);
lcd.clear();
lcd.print("Suhu tinggi!");
}
else if(suhu <= 550){
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, LOW);
digitalWrite(led_biru, HIGH);
lcd.clear();
lcd.print("Suhu normal");
}
else if(suhu <= 670){
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, LOW);
digitalWrite(led_biru, LOW);
lcd.clear();
lcd.print("Suhu rendah!");
}
else if(suhu <= 953){
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, HIGH);
digitalWrite(led_biru, LOW);
lcd.clear();
lcd.print("Suhu sangat rendah!");
}
}
/*Penjelasan
Rangkaian ini merupakan alat sensor suhu dengan output berupa LED RGB dan LCD 20 x 4. Cara kerjanya adalah
sensor suhu mendapat sinyal analog dari suhu sekitar yang terdeteksi. Kemudian, sinyal dikirimkan ke Arduino
melalui pin analog in A0. Sinyal analog yang masuk berupa resistansi yang sudah diolah oleh ADC pada Arduino
dengan resolusi 10 bit. Jika angka biner pada 10 bit dalam keadaan 1 semua (1111111111), maka akan meghasilkan
nilai desimal 1023, sehingga nilai yang masuk memiliki range 0-1023. Setelah mendapatkan range tertentu dari
serial monitor, kita masukkan program if dengan kondisi nilai dari sensor tertentu. Contohnya ketika suhu hingga
80 derajat celsius, terdapat nilai 115 pada serial monitor yang dapat kita gunakan untuk memberikan kondisi pada
perintah if.
Berikut adalah output dari kondisi-kondisi yang kami gunakan:
1. Suhu 80 derajat celcius (115) output : led menjadi merah, lcd mengatakan "Suhu sangat tinggi!"
2. Suhu 50,5 - 79 derajat celcius (270 - 116) output : led menjadi kuning, lcd mengatakan "Suhu tinggi!"
3. Suhu 20,6 - 50,4 derajat celcius (564 - 269) output : led menjadi hijau, lcd mengatakan "Suhu normal"
4. Suhu 10,5 - 20,5 derajat celicus (680 - 563) output : led menjadi biru muda, lcd mengatakan "Suhu rendah"
5. Suhu di bawah 10,5 derajat celcius (di atas 680) : led menjadi biru tua, lcd mengatakan "Suhu sangat rendah!"
Oleh:
Rasyid Muhammad Nurhakim (5311421062)
Muhammad Zidane Azhar (5311421064)
Ahmad Hasan Aji (5311421066)
Mata Kuliah : Sistem Instrumentasi dan Sensor
*/