Kendali LED RGB ESP32
Menghasilkan warna tanpa batas dengan satu LED RGB alih-alih 3 LED terpisah. Seperti di Arduino, kita membuat transisi pelangi dengan mengatur nilai R/G/B lewat analogWrite(). Teori warna (seperti merah+hijau=kuning) terlihat secara praktis.

Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Kendali LED RGB ESP32
4// ─────────────────────────────────────────
5// PWM dari analogWrite() menggerakkan kaki R, G dan B LED RGB common
6// cathode untuk menampilkan 7 warna bergantian, masing-masing 0.8 s.
7//
8// Pin:
9// GPIO 5 -> Kaki R
10// GPIO 18 -> Kaki G
11// GPIO 19 -> Kaki B
12// GND -> Common cathode (kaki terpanjang)
13// Masing-masing R, G, B dengan resistor 330 ohm
14
15const int RED = 5;
16const int GREEN = 18;
17const int BLUE = 19;
18
19void setup() {
20 pinMode(RED, OUTPUT);
21 pinMode(GREEN, OUTPUT);
22 pinMode(BLUE, OUTPUT);
23}
24
25// Atur warna, tiap kanal 0-255
26void setColor(int r, int g, int b) {
27 analogWrite(RED, r);
28 analogWrite(GREEN, g);
29 analogWrite(BLUE, b);
30}
31
32void loop() {
33 setColor(255, 0, 0); delay(800); // Merah
34 setColor(0, 255, 0); delay(800); // Hijau
35 setColor(0, 0, 255); delay(800); // Biru
36 setColor(255, 255, 0); delay(800); // Kuning
37 setColor(0, 255, 255); delay(800); // Cyan
38 setColor(255, 0, 255); delay(800); // Magenta
39 setColor(255, 255, 255); delay(800); // Putih
40}
41
FAQ
Kenapa mencampur merah dan hijau menghasilkan kuning?
Warna cahaya bercampur secara aditif: merah + hijau = kuning, hijau + biru = sian, merah + biru = magenta; ketiganya bersama menghasilkan putih. Warna di antaranya didapat dengan mengatur perbandingannya lewat PWM.
Aku memakai LED RGB anoda bersama; apa bedanya?
Pin bersama disambung ke 3,3 V, dan nilainya terbalik: 0 berarti terang penuh, dan 255 berarti mati. Di kode, cukup pakai `analogWrite(pin, 255 - value)`.
Warnanya terlihat meleset; kenapa?
Setiap warna punya tegangan maju dan kecerahan yang berbeda; pada 3,3 V, biru dan hijau bisa terlihat lebih redup daripada merah. Kamu bisa mengatur keseimbangannya dengan sedikit menaikkan resistor LED merah atau menerapkan koefisien di software.
Bisakah aku memilih warnanya di ponselku?
Bisa, di ESP32 kamu bisa menambahkan pemilih warna di halaman web, mengubah nilai yang dipilih menjadi R, G, dan B, lalu menerapkannya ke LED. Inilah dasar proyek lampu pintar.
