Cambiar color de led RGB con un solo potenciómetro

#define pBLUE    3
#define pGREEN   5
#define pRED     6
#define pPOT    A0

int vPot;
int colors[6][3] = {
    {   0,    0,    0 }, // Negro/Off
    {   0,  255,    0 }, // Verde
    {   0,    0,  255 }, // Azul
    { 255,    0,    0 }, // Rojo
    { 160,  255,  255 }, // Amarillo
    { 255,  255,  255 }  // Blanco
};

void setup()
{
   pinMode( pBLUE , OUTPUT );
   pinMode( pGREEN, OUTPUT );
   pinMode( pRED  , OUTPUT );
}

void loop()
{
    vPot = analogRead(pPOT);

    if( vPot <= 170 )
        setColorLed(0);
    else if( vPot <= 370 )
        setColorLed(1);
    else if( vPot <= 510 )
        setColorLed(2);
    else if( vPot <= 680 )
        setColorLed(3);
    else if( vPot <= 850 )
        setColorLed(4);
    else if( vPot <= 1023 )
        setColorLed(5);
}


void setColorLed( byte index )
{
   analogWrite( pRED  , colors[index][0] );
   analogWrite( pGREEN, colors[index][1] );
   analogWrite( pBLUE , colors[index][2] );
}
Anuncios

Acerca de giltesa

Desarrollador de software, y hardware a pequeña escala. Aficionado al ciclismo, series y películas.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: