const int pinR = 3;
const int pinG = 5;
const int pinB = 6;
const int potPin = A0; // Pin untuk potensiometer bulat
void setup() {
pinMode(pinR, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(potPin, INPUT);
Serial.begin(9600); // Inisialisasi komunikasi serial untuk debugging
}
void setColor(int red, int green, int blue) {
analogWrite(pinR, red);
analogWrite(pinG, green);
analogWrite(pinB, blue);
}
void loop() {
int potValue = analogRead(potPin); // Baca nilai potensiometer (0-1023)
// Konversi nilai potensiometer ke nilai warna (0-255)
int colorValue = map(potValue, 0, 1023, 0, 765); // 765 = 255 * 3
int red, green, blue;
if (colorValue <= 255) {
red = 255 - colorValue;
green = colorValue;
blue = 0;
} else if (colorValue <= 510) {
red = 0;
green = 510 - colorValue;
blue = colorValue - 255;
} else {
red = colorValue - 510;
green = 0;
blue = 765 - colorValue;
}
setColor(red, green, blue);
// Cetak nilai untuk debugging
Serial.print("Pot: ");
Serial.print(potValue);
Serial.print(" | R: ");
Serial.print(red);
Serial.print(" G: ");
Serial.print(green);
Serial.print(" B: ");
Serial.println(blue);
delay(1000); // Sedikit delay untuk stabilitas pembacaan
}