#define NTC_PIN 34 // Pin untuk membaca nilai sensor NTC
#define BUTTON_PIN_1 12 // Tombol untuk menambah pembacaan suhu
#define BUTTON_PIN_2 13 // Tombol untuk mengurangi pembacaan suhu
// Variabel untuk menyimpan pembacaan suhu
float temperature = 0.0;
// Variabel untuk menyimpan status tombol
bool buttonState1 = false;
bool buttonState2 = false;
// Variabel untuk penanganan waktu
unsigned long previousMillis = 0;
const long interval = 200; // Interval debounce untuk tombol
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN_1, INPUT_PULLUP);
pinMode(BUTTON_PIN_2, INPUT_PULLUP);
}
void loop() {
unsigned long currentMillis = millis();
// Baca nilai suhu dari sensor NTC
int sensorValue = analogRead(NTC_PIN);
temperature = map(sensorValue, 0, 4095, -40, 125); // Konversi nilai analog ke suhu dalam derajat Celsius
// Tampilkan nilai suhu di Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// Baca status tombol
bool currentButtonState1 = digitalRead(BUTTON_PIN_1);
bool currentButtonState2 = digitalRead(BUTTON_PIN_2);
// Tombol 1 untuk menambah pembacaan suhu
if (currentButtonState1 == LOW && buttonState1 == HIGH && currentMillis - previousMillis >= interval) {
temperature += 1.0;
previousMillis = currentMillis;
}
// Tombol 2 untuk mengurangi pembacaan suhu
if (currentButtonState2 == LOW && buttonState2 == HIGH && currentMillis - previousMillis >= interval) {
temperature -= 1.0;
previousMillis = currentMillis;
}
// Simpan status tombol untuk debounce
buttonState1 = currentButtonState1;
buttonState2 = currentButtonState2;
// Tunggu sebentar sebelum membaca sensor lagi
delay(500);
}