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);
    }
}

Files at this revision

API Documentation at this revision

Comitter:
rominos2
Date:
Wed Sep 03 10:13:45 2014 +0000
Parent:
2:3c0889914cb2
Child:
4:176363412797
Commit message:
Change the Library name for better understanding.; Change some data type for optimization.

Changed in this revision

RGBLed.cpp Show annotated file Show diff for this revision Revisions of this file
RGBLed.h Show annotated file Show diff for this revision Revisions of this file
rgb.cpp Show diff for this revision Revisions of this file
rgb.h Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RGBLed.cpp	Wed Sep 03 10:13:45 2014 +0000
@@ -0,0 +1,23 @@
+#include "RGBLed.h"
+
+RGBLed::Color::Color(bool r, bool g, bool b) : _r(r), _g(g), _b(b) {
+}
+
+RGBLed::RGBLed(PinName redPin, PinName greenPin, PinName bluePin) : _red(redPin), _green(greenPin), _blue(bluePin) {
+    this->setColor(RGBLed::BLACK); // Clear the LED output
+}
+
+void RGBLed::setColor(Color& color) {
+    _red = color._r;
+    _green = color._g;
+    _blue = color._b;
+}
+
+RGBLed::Color RGBLed::BLACK = RGBLed::Color(1,1,1);
+RGBLed::Color RGBLed::RED = RGBLed::Color(0,1,1);
+RGBLed::Color RGBLed::GREEN = RGBLed::Color(1,0,1);
+RGBLed::Color RGBLed::BLUE = RGBLed::Color(1,1,0);
+RGBLed::Color RGBLed::MAGENTA = RGBLed::Color(0,1,0);
+RGBLed::Color RGBLed::CYAN = RGBLed::Color(1,0,0);
+RGBLed::Color RGBLed::YELLOW = RGBLed::Color(0,0,1);
+RGBLed::Color RGBLed::WHITE = RGBLed::Color(0,0,0);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RGBLed.h	Wed Sep 03 10:13:45 2014 +0000
@@ -0,0 +1,64 @@
+#include "mbed.h"
+
+/** A  light RGB LED Class \n
+    Warning : This library is for non-PWN LED \n
+    Here is an quick hello-world class that makes the LED blink with all colors. \n
+    @code
+    #include "mbed.h"
+    #include "rgb.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);
+        }
+    }
+    @endcode
+*/
+class RGBLed {
+private:
+    DigitalOut _red;
+    DigitalOut _green;
+    DigitalOut _blue;
+        
+public:
+    /** RGB Color class \n
+    Colors have been defined and are ready to use in RGBLed class
+    */
+    class Color {
+    private:
+        bool _r; /**< Red component of the Color */
+        bool _g; /**< Green component of the Color */
+        bool _b; /**< Blue component of the Color */
+        Color(bool r, bool g, bool b); /**< Constructor */
+        friend class RGBLed;    
+    };
+    
+    /** Create a RGBLed, containing the informations about the LED pinout.
+        @param redPin the pin linked to the Red LED
+        @param greenPin the pin linked to the green LED
+        @param blue the pin linked to the blue LED
+    */
+    RGBLed(PinName redPin, PinName greenPin, PinName bluePin);    
+    
+    /** Change the color of the LED.
+        @param color the color to display
+        @see RGBLed::Color
+    */
+    void setColor(RGBLed::Color& color);
+
+    static Color BLACK; /**< Black Color (no color) */
+    static Color RED; /**< Red Color */
+    static Color GREEN; /**< Green Color */
+    static Color BLUE; /**< Blue Color */
+    static Color MAGENTA; /**< Magenta Color (Red + Blue) */
+    static Color CYAN; /**< Cyan Color (Green + Blue) */
+    static Color YELLOW; /**< Yellow Color (Red + Green) */
+    static Color WHITE; /**< White Color (Red + Green + Blue) */
+};
\ No newline at end of file
--- a/rgb.cpp	Tue Sep 02 21:55:22 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-#include "rgb.h"
-
-RGB::Color::Color(uint8_t r, uint8_t g, uint8_t b) : _r(r), _g(g), _b(b) {
-}
-
-RGB::RGB(PinName redPin, PinName greenPin, PinName bluePin) : _red(redPin), _green(greenPin), _blue(bluePin) {
-    this->setColor(RGB::BLACK); // Clear the LED output
-}
-
-void RGB::setColor(Color& color) {
-    _red = color._r;
-    _green = color._g;
-    _blue = color._b;
-}
-
-RGB::Color RGB::BLACK = RGB::Color(1,1,1);
-RGB::Color RGB::RED = RGB::Color(0,1,1);
-RGB::Color RGB::GREEN = RGB::Color(1,0,1);
-RGB::Color RGB::BLUE = RGB::Color(1,1,0);
-RGB::Color RGB::MAGENTA = RGB::Color(0,1,0);
-RGB::Color RGB::CYAN = RGB::Color(1,0,0);
-RGB::Color RGB::YELLOW = RGB::Color(0,0,1);
-RGB::Color RGB::WHITE = RGB::Color(0,0,0);
\ No newline at end of file
--- a/rgb.h	Tue Sep 02 21:55:22 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-#include "mbed.h"
-
-/** A  light RGB LED Class \n
-    Warning : This library is for non-PWN LED \n
-    Here is an quick hello-world class that makes the LED blink with all colors. \n
-    @code
-    #include "mbed.h"
-    #include "rgb.h"
-
-    RGB led(LED_RED, LED_GREEN, LED_BLUE);
-
-    int main() {
-        RGB::Color list[8] = {RGB::BLACK, RGB::RED, RGB::GREEN, RGB::BLUE, RGB::MAGENTA, RGB::CYAN, RGB::YELLOW, RGB::WHITE};
-        int i = 0;
-
-        while (true) {
-            i = (i+1)%8;
-            led.setColor(list[i]);
-            wait_ms(100);
-        }
-    }
-    @endcode
-*/
-class RGB {
-private:
-    DigitalOut _red;
-    DigitalOut _green;
-    DigitalOut _blue;
-        
-public:
-    /** RGB Color class \n
-    Colors have been defined and are ready to use in RGB class
-    */
-    class Color {
-    private:
-        uint8_t _r; /**< Red component of the Color */
-        uint8_t _g; /**< Green component of the Color */
-        uint8_t _b; /**< Blue component of the Color */
-        Color(uint8_t r, uint8_t g, uint8_t b); /**< Constructor */
-        friend class RGB;    
-    };
-    
-    /** Create a RBG Object, containing the informations about the RGB pinout.
-        @param redPin the pin linked to the Red LED
-        @param greenPin the pin linked to the green LED
-        @param blue the pin linked to the blue LED
-    */
-    RGB(PinName redPin, PinName greenPin, PinName bluePin);    
-    
-    /** Change the color of the LED.
-        @param color the color to display
-        @see RGB::Color
-    */
-    void setColor(RGB::Color& color);
-
-    static Color BLACK; /**< Black Color (no color) */
-    static Color RED; /**< Red Color */
-    static Color GREEN; /**< Green Color */
-    static Color BLUE; /**< Blue Color */
-    static Color MAGENTA; /**< Magenta Color (Red + Blue) */
-    static Color CYAN; /**< Cyan Color (Green + Blue) */
-    static Color YELLOW; /**< Yellow Color (Red + Green) */
-    static Color WHITE; /**< White Color (Red + Green + Blue) */
-};
\ No newline at end of file