Basic RGB library for non-PWM LEDs

Dependents:   MenuExample exosite_http_example exosite_http_example FastPWM

Warning : Works with non-PWM LED (0 or 1).

A quick example on how to use it.

#include "mbed.h"
#include "RGBLed.h"

RGBLed led(LED_RED, LED_GREEN, LED_BLUE);

int main() {
    RGBLed::Color list[8] = {RGBLed::BLACK, RGBLed::RED, RGBLed::GREEN, RGBLed::BLUE, RGBLed::MAGENTA, RGBLed::CYAN, RGBLed::YELLOW, RGBLed::WHITE};
    int i = 0;

    while (true) {
        i = (i+1)%8;
        led.setColor(list[i]);
        wait_ms(100);
    }
}
Committer:
rominos2
Date:
Wed Sep 03 10:13:45 2014 +0000
Revision:
3:be0a3c2ec426
Child:
4:176363412797
Change the Library name for better understanding.; Change some data type for optimization.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rominos2 3:be0a3c2ec426 1 #include "RGBLed.h"
rominos2 3:be0a3c2ec426 2
rominos2 3:be0a3c2ec426 3 RGBLed::Color::Color(bool r, bool g, bool b) : _r(r), _g(g), _b(b) {
rominos2 3:be0a3c2ec426 4 }
rominos2 3:be0a3c2ec426 5
rominos2 3:be0a3c2ec426 6 RGBLed::RGBLed(PinName redPin, PinName greenPin, PinName bluePin) : _red(redPin), _green(greenPin), _blue(bluePin) {
rominos2 3:be0a3c2ec426 7 this->setColor(RGBLed::BLACK); // Clear the LED output
rominos2 3:be0a3c2ec426 8 }
rominos2 3:be0a3c2ec426 9
rominos2 3:be0a3c2ec426 10 void RGBLed::setColor(Color& color) {
rominos2 3:be0a3c2ec426 11 _red = color._r;
rominos2 3:be0a3c2ec426 12 _green = color._g;
rominos2 3:be0a3c2ec426 13 _blue = color._b;
rominos2 3:be0a3c2ec426 14 }
rominos2 3:be0a3c2ec426 15
rominos2 3:be0a3c2ec426 16 RGBLed::Color RGBLed::BLACK = RGBLed::Color(1,1,1);
rominos2 3:be0a3c2ec426 17 RGBLed::Color RGBLed::RED = RGBLed::Color(0,1,1);
rominos2 3:be0a3c2ec426 18 RGBLed::Color RGBLed::GREEN = RGBLed::Color(1,0,1);
rominos2 3:be0a3c2ec426 19 RGBLed::Color RGBLed::BLUE = RGBLed::Color(1,1,0);
rominos2 3:be0a3c2ec426 20 RGBLed::Color RGBLed::MAGENTA = RGBLed::Color(0,1,0);
rominos2 3:be0a3c2ec426 21 RGBLed::Color RGBLed::CYAN = RGBLed::Color(1,0,0);
rominos2 3:be0a3c2ec426 22 RGBLed::Color RGBLed::YELLOW = RGBLed::Color(0,0,1);
rominos2 3:be0a3c2ec426 23 RGBLed::Color RGBLed::WHITE = RGBLed::Color(0,0,0);