Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h> //menggunakan librarry wire
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #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
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement