bangnaga icon

Arduino Seterika Portable

bangnaga | PRO | 02/07/22 01:35:36 PM UTC | 0 ⭐ | 1229 👁️ | Never ⏰ | []
C |

2.76 KB

|

None

|

0 👍

/

0 👎

 
 
#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 
}

Comments