Dependencies: MCP23S17 PinDetect mbed
RGBLed.h
- Committer:
- jderemer3
- Date:
- 2017-03-01
- Revision:
- 0:9dc33481ce1b
File content as of revision 0:9dc33481ce1b:
#include "mbed.h" //Class to control an RGB LED using three PWM pins class RGBLed { public: RGBLed(PinName redpin, PinName greenpin, PinName bluepin); void write(float red,float green, float blue); void write(LEDColor c); RGBLed operator = (LEDColor c) { write(c); return *this; }; private: PwmOut _redpin; PwmOut _greenpin; PwmOut _bluepin; }; RGBLed::RGBLed (PinName redpin, PinName greenpin, PinName bluepin) : _redpin(redpin), _greenpin(greenpin), _bluepin(bluepin) { //50Hz PWM clock default a bit too low, go to 2000Hz (less flicker) _redpin.period(0.0005); } void RGBLed::write(float red,float green, float blue) { _redpin = red; _greenpin = green; _bluepin = blue; } void RGBLed::write(LEDColor c) { _redpin = c.red; _greenpin = c.green; _bluepin = c.blue; } ////classes could be moved to include file // // ////Setup RGB led using PWM pins and class //RGBLed myRGBled(p23,p22,p21); //RGB PWM pins // ////setup some color objects in flash using const's //const LEDColor red(1.0,0.0,0.0); //const LEDColor green(0.0,0.2,0.0); ////brighter green LED is scaled down to same as red and ////blue LED outputs on Sparkfun RGBLED //const LEDColor blue(0.0,0.0,1.0); //const LEDColor yellow(1.0,0.2,0.0); //const LEDColor white(1.0,0.2,1.0); // //int main() //{ // while(1) { // myRGBled = red; // //myRGBled.write(1.0,0.0,0,0); //red // wait(2.0); // myRGBled = green; // //myRGBled.write(0.0,1.0,0.0); //green // wait(2.0); // myRGBled = blue; // //myRGBled.write(0.0,0.0,1.0); //blue // wait(2.0); // myRGBled = red + green; //yellow = red + green // wait(2.0); // //white with a slow fade to black dimming effect // for (float brightness=1.0; brightness>=0.0001; brightness*=0.99) { // myRGBled = white * brightness; // wait(0.005); // } // wait(2.0); // } //}