RGBLED
5mm water clear LED's with 4 pins.
The 2nd pin (from the left, with the flat spot oriented to the left) is a common cathode ground.
Pin 1 is Red, Pin 3 is Blue, Pin 4 is Green, on newer versions the Blue and Green maybe switched.
Recommended current limiting of 20ma max is advized, 30ma is the noted max at 1/10th duty cycle at 10khz.
When driving at 5v, a 150 ohm resistor for Red, and a 100 ohm resistor for each Green and Blue limits current to around 20ma.
1 2 3 4
| | | |
Color: R - B G
Volts: 2.0 0.0 3.2 3.2
Code[edit]
Modified version of "Fade" sample code, to cycle thru fading one at a time, Reg, Green and Blue.
/*
RGB Fade
This example shows how to fade an LED on pin 3, 5 & 6
using the analogWrite() function.
This is an extension of "Fade" example code in the public domain.
This version is provided as-is for whatever purposes -thex
*/
int redPin = 3; // PWM out pin for Red
int greenPin = 6; // PWM out pin for Green
int bluePin = 5; // PWM out pin for Blue
float redMax = 0.5;
float greenMax = 0.8;
float blueMax = 1.0;
int activePin; // currently active color
float activeMax;
int brightness; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup() {
brightness = int(fadeAmount);
activePin = redPin;
// declare output pins to be an output:
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// set the brightness of active color
analogWrite(activePin, brightness * activeMax);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
if (brightness == 255) {
// Reverse fade
fadeAmount = -fadeAmount ;
}
if (brightness == 0)
{
// Turn off current color, and switch to next
analogWrite(activePin, 0);
if (activePin == redPin)
{
activePin = greenPin;
activeMax = greenMax;
}
else if (activePin == greenPin)
{
activePin = bluePin;
activeMax = blueMax;
}
else
{
activePin = redPin;
activeMax = redMax;
}
// Reset for next color
fadeAmount = -fadeAmount;
brightness = int(fadeAmount);
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}