#include //menggunakan librarry wire #include #include #define SCREEN_WIDTH 128 // OLED display width, satuan pixels #define SCREEN_HEIGHT 64 // OLED display height, satuan pixels #define ADC_VREF_mV 5000.0 // nilai tegangan reference ADC dalam satuan millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A1 // pin sensor temperature - LM35 byte potensio= A0; // pin analog A0 potensiometer int nilai; int target; Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // Koleksi display OLED SSD1306 menggunakan I2C String tempString; void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); // Set PIN untuk Relay // Inisialisasi Alamat I2C 0x3C Oled dispplay 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("Display Oleh Gagal Terhubung")); while (true); } delay(2000); // tunda 2 detik oled.clearDisplay(); // bersihkan tampilan display oled.setTextSize(2); // set ukuran text oled.setTextColor(WHITE); // set warna putih oled.setCursor(0, 10); // set posisi kursor tempString.reserve(10); // untuk menghindari fragmentasi memori saat menggunakan String } void loop() { // mendapakan nilai analog dari putran potensio meter nilai= analogRead(potensio); // memetakan nilai analog dari 0 s/d 1023 ke rentang nilai 0 s/d 100 target= map(nilai, 0, 1023, 0, 100); // mendapatkan nilai ADC dari sensor temperature LM35 int adcVal = analogRead(PIN_LM35); // convert ADC ke tegangan (millivolt) float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert nilai tegangan ke Celsius float tempC = milliVolt / 10; tempString += "Temp :"; tempString += String(tempC, 2); //tampilAdc ("Target: "); Serial.print(target); Serial.print("\t"); Serial.println(String(tempC, 2)); if ( tempC < target) { digitalWrite(LED_BUILTIN, HIGH); }else{ digitalWrite(LED_BUILTIN, LOW); } oled.clearDisplay(); // Bersihkan display oled.setCursor(10, 10); // Set posisi kursor ke baris kolom 10 dan baris 40 oled.println("Target:"); // Tampilkan Tulisan Target ke display oled.setCursor(90, 10); // Set posisi kursor ke baris kolom 90 dan baris 10 oled.println(target); // Tampilkan nilai target dari putaran potensio rentang 0-100 oled.setCursor(10, 40); // Set posisi kursor ke baris kolom 10 dan baris 40 oled.println("Aktual:"); // Tampilkan Tulisan Target ke display oled.setCursor(90, 40); // Set posisi kursor ke baris kolom 90 dan baris 40 oled.println(String(tempC, 0)); // Tamapilkan nilai temperature dari sensor LM35 oled.display(); // Refresh tampilan }