O módulo LED RGB combina três LEDs (Vermelho, Verde, Azul) num único encapsulamento com cátodo comum. Controlando independentemente a intensidade de cada canal com PWM, podes criar praticamente qualquer cor visível — incluindo branco (R+G+B a 100%).
Desliga o USB antes de fazer qualquer ligação.
Fio Dupont M-F do pino VCC do módulo ao pino 5V do Arduino.
Fio Dupont do pino GND do módulo ao GND do Arduino.
Fio do pino R do módulo ao pino D9 do Arduino.
Fio do pino G do módulo ao pino D10 do Arduino.
Fio do pino B do módulo ao pino D11 do Arduino.
#define PIN_R 9
#define PIN_G 10
#define PIN_B 11
void setCor(int r, int g, int b) {
analogWrite(PIN_R, r);
analogWrite(PIN_G, g);
analogWrite(PIN_B, b);
}
void setup() {
pinMode(PIN_R, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_B, OUTPUT);
Serial.begin(9600);
}
void loop() {
setCor(255, 0, 0); delay(600); // Vermelho
setCor(0, 255, 0); delay(600); // Verde
setCor(0, 0, 255); delay(600); // Azul
setCor(255, 255, 0); delay(600); // Amarelo (R+G)
setCor(0, 255, 255); delay(600); // Ciano (G+B)
setCor(255, 0, 255); delay(600); // Magenta (R+B)
setCor(255, 255, 255); delay(600); // Branco
setCor(0, 0, 0); delay(600); // Apagado
}#define PIN_R 9
#define PIN_G 10
#define PIN_B 11
void setCor(int r, int g, int b) {
analogWrite(PIN_R, r);
analogWrite(PIN_G, g);
analogWrite(PIN_B, b);
}
void fade(int r1,int g1,int b1, int r2,int g2,int b2, int ms) {
for (int i = 0; i <= 100; i++) {
setCor(
r1 + (r2-r1)*i/100,
g1 + (g2-g1)*i/100,
b1 + (b2-b1)*i/100
);
delay(ms/100);
}
}
void setup() {
pinMode(PIN_R, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_B, OUTPUT);
}
void loop() {
fade(255,0,0, 0,255,0, 2000); // Vermelho → Verde
fade(0,255,0, 0,0,255, 2000); // Verde → Azul
fade(0,0,255, 255,0,0, 2000); // Azul → Vermelho
}import RPi.GPIO as GPIO
import time
PIN_R, PIN_G, PIN_B = 17, 27, 22
GPIO.setmode(GPIO.BCM)
for p in [PIN_R, PIN_G, PIN_B]:
GPIO.setup(p, GPIO.OUT)
pwm_r = GPIO.PWM(PIN_R, 1000); pwm_r.start(0)
pwm_g = GPIO.PWM(PIN_G, 1000); pwm_g.start(0)
pwm_b = GPIO.PWM(PIN_B, 1000); pwm_b.start(0)
def cor(r, g, b):
pwm_r.ChangeDutyCycle(r/255*100)
pwm_g.ChangeDutyCycle(g/255*100)
pwm_b.ChangeDutyCycle(b/255*100)
try:
while True:
cor(255,0,0); time.sleep(0.6)
cor(0,255,0); time.sleep(0.6)
cor(0,0,255); time.sleep(0.6)
except KeyboardInterrupt:
pwm_r.stop(); pwm_g.stop(); pwm_b.stop()
GPIO.cleanup()corHSV(h,s,v) que converte HSV para RGB — percorre o espectro fazendo variar apenas o matiz