#define LED_HIJAU_PIN 4
#define LED_KUNING_PIN 2
#define LED_MERAH_PIN 16
#define NTC_PIN 34 // Pin ADC untuk membaca output tegangan dari NTC Thermistor
#define BETA 3950 // Nilai beta dari NTC Thermistor
#define R_SERIES 10000 // Resistor seri yang digunakan bersama NTC Thermistor
void setup() {
Serial.begin(115200);
pinMode(LED_HIJAU_PIN, OUTPUT);
pinMode(LED_KUNING_PIN, OUTPUT);
pinMode(LED_MERAH_PIN, OUTPUT);
}
void loop() {
float temperature = getTemperature(); // Membaca suhu dari NTC Thermistor
Serial.print("SUHU SAAT INI : ");
Serial.print(temperature);
Serial.println(" derajat Celsius");
// Mengatur LED sesuai dengan suhu yang terbaca
if (temperature >= 0 && temperature <= 30) {
digitalWrite(LED_HIJAU_PIN, HIGH);
digitalWrite(LED_KUNING_PIN, LOW);
digitalWrite(LED_MERAH_PIN, LOW);
} else if (temperature > 30 && temperature <= 70) {
digitalWrite(LED_HIJAU_PIN, HIGH);
digitalWrite(LED_KUNING_PIN, HIGH);
digitalWrite(LED_MERAH_PIN, LOW);
} else if (temperature > 70 && temperature <= 100) {
digitalWrite(LED_HIJAU_PIN, HIGH);
digitalWrite(LED_KUNING_PIN, HIGH);
digitalWrite(LED_MERAH_PIN, HIGH);
}
delay(1000); // Menunggu 1 detik sebelum membaca suhu lagi
}
float getTemperature() {
int raw_adc = analogRead(NTC_PIN);
float voltage = raw_adc * (3.3 / 4095); // Menghitung tegangan input dari ADC
float resistance = R_SERIES / ((3.3 / voltage) - 1); // Menghitung resistansi NTC Thermistor
float temperature = (1 / ((log(resistance / 10000) / BETA) + (1 / (273.15 + 25)))) - 273.15; // Menghitung suhu dalam derajat Celsius
return temperature;
}