Un LED RGB es en realidad tres LED (rojo, verde y azul) en un módulo. Cuando los ejecutas con diferentes brillos, el rojo, el verde y el azul se mezclan para formar nuevos colores.
Comenzando en el borde aplanado de la montura del LED, los pines se ordenan de la siguiente manera: ROJO, COMÚN, VERDE, AZUL.
Este programa tiene por finalidad iluminar un diodo RGB con los colores mas comunes. Luego obtener un matiz de colores utilizando el bucle for.
-----------------------------------------------------
const int ROJO_PIN = 9;
const int VERDE_PIN = 10;
const int AZUL_PIN = 11;
void setup()
{
pinMode(ROJO_PIN, OUTPUT);
pinMode(VERDE_PIN, OUTPUT);
pinMode(AZUL_PIN, OUTPUT);
}
void loop()
{
unicosColores();
maticesColores();
}
void unicosColores()
{
// Todos los pines apagados
digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);
delay(1000);
// Rojo
digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);
delay(1000);
// Verde
digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, LOW);
delay(1000);
// Azul
digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, HIGH);
delay(1000);
// Amarillo
digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, LOW);
delay(1000);
// Cyan
digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, HIGH);
delay(1000);
// Violeta
digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, HIGH);
delay(1000);
// Blanco
digitalWrite(ROJO_PIN, HIGH);
digitalWrite(VERDE_PIN, HIGH);
digitalWrite(AZUL_PIN, HIGH);
delay(1000);
// Todos los pines apagados
digitalWrite(ROJO_PIN, LOW);
digitalWrite(VERDE_PIN, LOW);
digitalWrite(AZUL_PIN, LOW);
delay(1000);
}
void maticesColores()
{
int x;
for (x = 0; x < 768; x++)
{
verRGB(x);
delay(10);
}
}
void verRGB(int color)
{
int intensidadRojo;
int intensidadVerde;
int intensidadAzul;
if (color <= 255)
{
intensidadRojo = 255 - color;
intensidadVerde = color;
intensidadAzul = 0;
}
else if (color <= 511)
{
intensidadRojo = 0;
intensidadVerde = 255 - (color - 256);
intensidadAzul = (color - 256);
}
else // color >= 512
{
intensidadRojo = (color - 512);
intensidadVerde = 0;
intensidadAzul = 255 - (color - 512);
}
analogWrite(ROJO_PIN, intensidadRojo);
analogWrite(AZUL_PIN, intensidadAzul);
analogWrite(VERDE_PIN, intensidadVerde);
}
------------------------------------------------------
if… else viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no se cumple haz esto otro”. Por ejemplo:
if (inputPin == HIGH) // si el valor de la entrada inputPin es alto
{
instruccionesA; //ejecuta si se cumple la condición
}
else
{
instruccionesB; //ejecuta si no se cumple la condición
}
Else puede ir precedido de otra condición de manera que se pueden establecer varias estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que sean mutuamente excluyentes pudiéndose ejecutar a la vez.
La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número determinado de veces.
for (inicialización; condición; expresión)
{
ejecutaInstrucciones;
}
La inicialización de una variable local se produce una sola vez y la condición se testea cada vez que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple, el bucle termina. La expresión indica en que valores se incrementa o decrementa el valor inicializado.
Recomendados:
Un día como hoy 27/04/2025
El Día Internacional del Diseño Gráfico conmemora las funciones esenciales del diseñador gráfico en la sociedad y el comercio, dando a conocer la importancia de esta profesión, así como su contribución para generar cambios significativos en todo el mundo y convertirla en una herramienta de valor social.