RGB Spectrum Fader. A nice RGB color spectrum cycling Demo

Dependencies:   mbed

Fork of frdm_rgbled by Freescale

main.cpp

Committer:
lasmahei
Date:
2014-11-19
Revision:
9:b0a76345f37c
Parent:
8:a6c27db26c21

File content as of revision 9:b0a76345f37c:

#include "mbed.h"

PwmOut r(LED_RED);
PwmOut g(LED_GREEN);
PwmOut b(LED_BLUE);

    float color,red,green,blue;
    unsigned int colorRes = 10; // Bit
    float colorRange = 1;
    unsigned int colorInt;
    unsigned int i;

int main() 
{
    for(i=1; i<=colorRes; i++) colorRange = colorRange*2;
    
    r.period_ms(10);
    g.period_ms(10);
    b.period_ms(10);

    while (true) 
    {
        for (colorInt=0; colorInt <= colorRange; colorInt++)
        {                 
            color = (1/colorRange)*colorInt;
            if(colorInt >= 0 && colorInt <= colorRange/3 ) { red = 1-(color*3); green = color*3; blue = 0; }
            if(colorInt > colorRange/3 && colorInt <= 2*colorRange/3) { red = 0; green = 2-(color*3); blue = (color*3)-1; }
            if(colorInt > 2*colorRange/3 && colorInt <= colorRange) { red = (color*3)-2; green = 0; blue = (1-color)*3; }
            r=1-red;
            g=1-green;
            b=1-blue;
            wait_ms(100);
        }
    }
}