// Definisikan pin untuk sensor suhu LM35
const int lm35Pin = A0;
// Definisikan pin untuk LED
const int LedHijauPin = 13;
const int LedKuningPin = 12;
const int LedMerahPin = 11;
// Variabel untuk menyimpan nilai suhu dan ambang batas suhu
float temperature;
int threshold = 27; // Ambang batas suhu awal
void setup() {
// Inisialisasi pin sebagai input atau output
pinMode(lm35Pin, INPUT);
pinMode(LedHijauPin, OUTPUT);
pinMode(LedKuningPin, OUTPUT);
pinMode(LedMerahPin, OUTPUT);
// Mulai komunikasi serial
Serial.begin(9600);
}
void loop() {
// Baca nilai analog dari sensor LM35
int sensorValue = analogRead(lm35Pin);
// Ubah nilai analog menjadi suhu dalam derajat Celsius
temperature = (sensorValue * 1.5) / 10.0;
// Tampilkan nilai suhu di Serial Monitor
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print(" derajat Celsius | Ambang batas suhu: ");
Serial.println(threshold);
// Atur kondisi LED sesuai dengan nilai suhu
if (temperature < threshold) {
digitalWrite(LedHijauPin, HIGH);
digitalWrite(LedKuningPin, LOW);
digitalWrite(LedMerahPin, LOW);
} else if (temperature >= threshold && temperature < threshold + 3) {
digitalWrite(LedHijauPin, LOW);
digitalWrite(LedKuningPin, HIGH);
digitalWrite(LedMerahPin, LOW);
} else if (temperature >= threshold + 3 && temperature < threshold + 8) {
digitalWrite(LedHijauPin, LOW);
digitalWrite(LedKuningPin, LOW);
digitalWrite(LedMerahPin, HIGH);
} else {
// Suhu > ambang batas + 8, LED merah berkedip
digitalWrite(LedMerahPin, HIGH);
delay(500);
digitalWrite(LedMerahPin, LOW);
delay(500);
}
// Tunggu sebentar sebelum membaca sensor lagi
delay(1000);
}