// PIN BUZZER
const int buzzer = 11;
// PIN LED
byte lampumalam = 3;
byte airradiator = 2;
byte kipasmobil = 6;
// PINLED RADIATOR
byte led = 13;
byte led1 = 4;
byte led2 = 5;
byte led3 = 7;
int nilai;
int nilai1;
int nilai2;
int Astate = 0;
float temp;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.init();
lcd.backlight();
//pin
pinMode(buzzer, OUTPUT);
pinMode (led, OUTPUT);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (A1, INPUT);
pinMode (A0,INPUT);
pinMode (kipasmobil, INPUT);
pinMode (airradiator, INPUT);
pinMode (lampumalam, INPUT);
Serial.begin(9600);
// AWAL START
lcd.setCursor(3, 0);
lcd.print("__ALTIS__");
lcd.setCursor(3, 1);
lcd.print("T 1148 BN");
delay(2000);
lcd.clear();
lcd.setCursor(6,0);
lcd.print("OLEH");
lcd.setCursor(2,1);
lcd.print("DWI HARTANTO");
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
}
void loop() {
// menampiklan tegangan aki
//-------------------------------------------------------------------------
lcd.setCursor(2, 0);
lcd.print("TEGANGAN AKI ");
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
Serial.println(sensorValue);
Serial.println(voltage);
lcd.setCursor(4, 1);
lcd.print(voltage);
lcd.setCursor(9, 1);
lcd.print("Volt");
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
// air radiator * JIKA KELUARAN SENSOR POSITIF
//-------------------------------------------
nilai = digitalRead(airradiator);
if (nilai == 0) {
digitalWrite(led, HIGH);
Serial.println("di tekan");
lcd.setCursor(2, 0);
lcd.print("AIR RADIATOR");
lcd.setCursor(5, 1);
lcd.print("KOSONG");
lcd.backlight();
digitalWrite(buzzer,HIGH);
delay(1000);
lcd.clear();
lcd.noBacklight();
delay(500);
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("***SEGERA*** ");
lcd.setCursor(2,1);
lcd.print("**DI - ISI**");
delay(500);
//lcd.noBacklight();
digitalWrite(buzzer, LOW);
delay(2000);
lcd.clear();
digitalWrite(led3,HIGH);
delay(50);
digitalWrite(led3, LOW);
}
else {
digitalWrite(led, LOW);
lcd.setCursor(2, 0);
lcd.print("AIR RADIATOR");
Serial.println("di lepas");
lcd.setCursor(4, 1);
lcd.print(" PENUH");
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
}
// mematikan led saat malam hari
nilai1 = digitalRead(lampumalam);
if(nilai1==0){
digitalWrite(led1, HIGH);
Serial.println("siang");
lcd.backlight();
lcd.display();
}
else if(nilai == 0){
//lcd.clear();
//delay(500);
lcd.backlight();
lcd.display();
//lcd.setCursor(6,0);
//delay(500);
}
else {
digitalWrite(led1,LOW);
Serial.println("malam");
lcd.noBacklight();
lcd.noDisplay();
delay(1000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
}
// -----------------temp mesin----------------------------------------------------
Astate = analogRead(A1);
temp=(Astate-799)/(-11.5);
Serial.print("temperature mesin:");
//Serial.println(Astate);
Serial.println(temp);
//lcd.setCursor(7, 1);
//lcd.print(Astate);
lcd.setCursor(3,0);
lcd.print("SUHU MESIN");
lcd.setCursor(5, 1);
lcd.print(temp);
//delay(1000);
//557=21k+b
//684=10k+b
//k=(684-557)/(-11)=-11.5 b=799
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
//-------CHECK KONDISI KIPAS PENDINGIN ----
nilai2 = digitalRead(kipasmobil);
if(nilai2==0){
digitalWrite(led2, HIGH);
Serial.println("kipas nyala");
lcd.setCursor(0,0);
lcd.print("KIPAS PENDINGIN");
lcd.setCursor(6,1);
lcd.print("NYALA");
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
}
else {
digitalWrite(led2,LOW);
Serial.println("kipas mati");
delay(50);
lcd.setCursor(0,0);
lcd.print("KIPAS PENDINGIN");
lcd.setCursor(6,1);
lcd.print("MATI");
delay(2000);
lcd.clear();
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
}
}