Example PWM control of RGB LEDs

Dependencies:   mbed

Fork of frdm_rgbled by Freescale

Using three PWM channels to mix the onboard RGB (Red, Green, Blue) LED to make a variety of colors.

NOTE: This example code does not work with FRDM-K64F.

Committer:
chris
Date:
Fri Oct 12 13:49:40 2012 +0000
Revision:
1:eabc6f5b51d6
Parent:
0:cf8a48b1fb23
Child:
2:03e5c29343d1
Made thisi an HSV example

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 0:cf8a48b1fb23 1 #include "mbed.h"
chris 0:cf8a48b1fb23 2
chris 1:eabc6f5b51d6 3 PwmOut r (LED_RED);
chris 1:eabc6f5b51d6 4 PwmOut g (LED_GREEN);
chris 1:eabc6f5b51d6 5 PwmOut b (LED_BLUE);
chris 0:cf8a48b1fb23 6
chris 1:eabc6f5b51d6 7 int main()
chris 1:eabc6f5b51d6 8 {
chris 1:eabc6f5b51d6 9 r.period(0.001);
chris 1:eabc6f5b51d6 10 g.period(0.001);
chris 1:eabc6f5b51d6 11 b.period(0.001);
chris 1:eabc6f5b51d6 12
chris 0:cf8a48b1fb23 13 while(1) {
chris 1:eabc6f5b51d6 14 for(float i = 0.0; i < 1.0 ; i += 0.001) {
chris 1:eabc6f5b51d6 15 float p = 3 * i;
chris 1:eabc6f5b51d6 16 r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0);
chris 1:eabc6f5b51d6 17 g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p);
chris 1:eabc6f5b51d6 18 b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0); ;
chris 1:eabc6f5b51d6 19 wait (0.0025);
chris 1:eabc6f5b51d6 20 }
chris 1:eabc6f5b51d6 21 }
chris 0:cf8a48b1fb23 22 }