// Dont Forget to Support My Channel
// Electro Pemula on Youtube and TikTok
// https://www.youtube.com/channel/UCa8eHXL2aL6lc1UN_bcge7A/
// https://www.tiktok.com/@elektropemula/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const int potPin1 = A0;
const int potPin2 = A1;
const int ledPin1 = 9;
const int ledPin2 = 10;
void setup() {
Serial.begin(9600);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.display();
}
void loop() {
// Membaca nilai potensiometer
int potValue1 = analogRead(potPin1);
int potValue2 = analogRead(potPin2);
// Debug: Menampilkan nilai potensiometer ke Serial Monitor
Serial.print("Potensiometer 1: ");
Serial.println(potValue1);
Serial.print("Potensiometer 2: ");
Serial.println(potValue2);
// Mengubah nilai potensiometer menjadi nilai PWM (0-255)
int brightness1 = map(potValue1, 0, 1023, 0, 255);
int brightness2 = map(potValue2, 0, 1023, 0, 255);
// Mengubah nilai potensiometer menjadi persentase (0-100%)
int percentage1 = map(potValue1, 0, 1023, 0, 100);
int percentage2 = map(potValue2, 0, 1023, 0, 100);
// Mengatur kecerahan LED menggunakan PWM
analogWrite(ledPin1, brightness1);
analogWrite(ledPin2, brightness2);
// Menampilkan data di OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Kecerahan LED 1: ");
display.print(percentage1);
display.println("%");
display.setCursor(0, 40);
display.print("Kecerahan LED 2: ");
display.print(percentage2);
display.println("%");
// Menampilkan bar visual untuk potensiometer
display.fillRect(0, 20, (percentage1 * 128) / 100, 10, SSD1306_WHITE); // Menyesuaikan ukuran bar dengan persentase
display.fillRect(0, 55, (percentage2 * 128) / 100, 10, SSD1306_WHITE); // Menyesuaikan ukuran bar dengan persentase
display.display();
delay(100); // Delay untuk pembaruan tampilan
}