CTRL library / LEDs

RGB LED

This sketch demonstrates how to control a 4-pin RGB LED: it cycles through a few colours, then fades the brightness of a custom colour up and down.

All three signal pins need to be PWM-capable (on an Arduino Uno: 3, 5, 6, 9, 10 or 11). See the LED hookup guide for the wiring.

The code

rgb_led.ino
#include <CtrlRGBLed.h> // A common cathode RGB LED on pins 9 (red), 10 (green) & 11 (blue), at full brightness.CtrlRGBLed led(9, 10, 11, 255); // A colour of your own, as red, green & blue values.const CtrlRGB pink = {255, 51, 153}; void setup(){  Serial.begin(9600);  led.turnOn();} void loop() {  // Cycle through some of the ready-made colours.  const CtrlRGB colors[] = { CtrlColor::Red, CtrlColor::Green, CtrlColor::Blue, CtrlColor::White };  for (const CtrlRGB color : colors) {    led.setColor(color);    delay(500);  }   // Fade a custom colour in and out.  led.setColor(pink);  for (int brightness = 0; brightness <= 100; brightness++) {    led.setBrightness(brightness);    delay(10);  }  for (int brightness = 100; brightness >= 0; brightness--) {    led.setBrightness(brightness);    delay(10);  }   // The colour the LED actually outputs is the colour scaled by its brightness.  const CtrlRGB output = led.getOutputColor();  Serial.print("Output: ");  Serial.print(output.r);  Serial.print(", ");  Serial.print(output.g);  Serial.print(", ");  Serial.println(output.b);   led.setBrightness(100);}