Dependencies:   MCP23S17 PinDetect mbed

Committer:
jderemer3
Date:
Wed Mar 01 16:36:55 2017 +0000
Revision:
0:9dc33481ce1b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jderemer3 0:9dc33481ce1b 1 #include "mbed.h"
jderemer3 0:9dc33481ce1b 2
jderemer3 0:9dc33481ce1b 3 //Class to control an RGB LED using three PWM pins
jderemer3 0:9dc33481ce1b 4 class RGBLed
jderemer3 0:9dc33481ce1b 5 {
jderemer3 0:9dc33481ce1b 6 public:
jderemer3 0:9dc33481ce1b 7 RGBLed(PinName redpin, PinName greenpin, PinName bluepin);
jderemer3 0:9dc33481ce1b 8 void write(float red,float green, float blue);
jderemer3 0:9dc33481ce1b 9 void write(LEDColor c);
jderemer3 0:9dc33481ce1b 10 RGBLed operator = (LEDColor c) {
jderemer3 0:9dc33481ce1b 11 write(c);
jderemer3 0:9dc33481ce1b 12 return *this;
jderemer3 0:9dc33481ce1b 13 };
jderemer3 0:9dc33481ce1b 14 private:
jderemer3 0:9dc33481ce1b 15 PwmOut _redpin;
jderemer3 0:9dc33481ce1b 16 PwmOut _greenpin;
jderemer3 0:9dc33481ce1b 17 PwmOut _bluepin;
jderemer3 0:9dc33481ce1b 18 };
jderemer3 0:9dc33481ce1b 19
jderemer3 0:9dc33481ce1b 20 RGBLed::RGBLed (PinName redpin, PinName greenpin, PinName bluepin)
jderemer3 0:9dc33481ce1b 21 : _redpin(redpin), _greenpin(greenpin), _bluepin(bluepin)
jderemer3 0:9dc33481ce1b 22 {
jderemer3 0:9dc33481ce1b 23 //50Hz PWM clock default a bit too low, go to 2000Hz (less flicker)
jderemer3 0:9dc33481ce1b 24 _redpin.period(0.0005);
jderemer3 0:9dc33481ce1b 25 }
jderemer3 0:9dc33481ce1b 26
jderemer3 0:9dc33481ce1b 27 void RGBLed::write(float red,float green, float blue)
jderemer3 0:9dc33481ce1b 28 {
jderemer3 0:9dc33481ce1b 29 _redpin = red;
jderemer3 0:9dc33481ce1b 30 _greenpin = green;
jderemer3 0:9dc33481ce1b 31 _bluepin = blue;
jderemer3 0:9dc33481ce1b 32 }
jderemer3 0:9dc33481ce1b 33 void RGBLed::write(LEDColor c)
jderemer3 0:9dc33481ce1b 34 {
jderemer3 0:9dc33481ce1b 35 _redpin = c.red;
jderemer3 0:9dc33481ce1b 36 _greenpin = c.green;
jderemer3 0:9dc33481ce1b 37 _bluepin = c.blue;
jderemer3 0:9dc33481ce1b 38 }
jderemer3 0:9dc33481ce1b 39
jderemer3 0:9dc33481ce1b 40 ////classes could be moved to include file
jderemer3 0:9dc33481ce1b 41 //
jderemer3 0:9dc33481ce1b 42 //
jderemer3 0:9dc33481ce1b 43 ////Setup RGB led using PWM pins and class
jderemer3 0:9dc33481ce1b 44 //RGBLed myRGBled(p23,p22,p21); //RGB PWM pins
jderemer3 0:9dc33481ce1b 45 //
jderemer3 0:9dc33481ce1b 46 ////setup some color objects in flash using const's
jderemer3 0:9dc33481ce1b 47 //const LEDColor red(1.0,0.0,0.0);
jderemer3 0:9dc33481ce1b 48 //const LEDColor green(0.0,0.2,0.0);
jderemer3 0:9dc33481ce1b 49 ////brighter green LED is scaled down to same as red and
jderemer3 0:9dc33481ce1b 50 ////blue LED outputs on Sparkfun RGBLED
jderemer3 0:9dc33481ce1b 51 //const LEDColor blue(0.0,0.0,1.0);
jderemer3 0:9dc33481ce1b 52 //const LEDColor yellow(1.0,0.2,0.0);
jderemer3 0:9dc33481ce1b 53 //const LEDColor white(1.0,0.2,1.0);
jderemer3 0:9dc33481ce1b 54 //
jderemer3 0:9dc33481ce1b 55 //int main()
jderemer3 0:9dc33481ce1b 56 //{
jderemer3 0:9dc33481ce1b 57 // while(1) {
jderemer3 0:9dc33481ce1b 58 // myRGBled = red;
jderemer3 0:9dc33481ce1b 59 // //myRGBled.write(1.0,0.0,0,0); //red
jderemer3 0:9dc33481ce1b 60 // wait(2.0);
jderemer3 0:9dc33481ce1b 61 // myRGBled = green;
jderemer3 0:9dc33481ce1b 62 // //myRGBled.write(0.0,1.0,0.0); //green
jderemer3 0:9dc33481ce1b 63 // wait(2.0);
jderemer3 0:9dc33481ce1b 64 // myRGBled = blue;
jderemer3 0:9dc33481ce1b 65 // //myRGBled.write(0.0,0.0,1.0); //blue
jderemer3 0:9dc33481ce1b 66 // wait(2.0);
jderemer3 0:9dc33481ce1b 67 // myRGBled = red + green; //yellow = red + green
jderemer3 0:9dc33481ce1b 68 // wait(2.0);
jderemer3 0:9dc33481ce1b 69 // //white with a slow fade to black dimming effect
jderemer3 0:9dc33481ce1b 70 // for (float brightness=1.0; brightness>=0.0001; brightness*=0.99) {
jderemer3 0:9dc33481ce1b 71 // myRGBled = white * brightness;
jderemer3 0:9dc33481ce1b 72 // wait(0.005);
jderemer3 0:9dc33481ce1b 73 // }
jderemer3 0:9dc33481ce1b 74 // wait(2.0);
jderemer3 0:9dc33481ce1b 75 // }
jderemer3 0:9dc33481ce1b 76 //}