Codigo de LED RGB , Arduino UNO.
/*
Desvanecimiento Tricolor RGB con Arduino
Conexiones:
- LED ROJO al pin D12
- LED VERDE al pin D11
- LED AZUL al pin D10
/
/* Definicion de constantes */
#define RETARDO 90 // Retardo antes del cambio de color en ms.
#define LED_ROJO 12 // Simbolo para el pin LED rojo
#define LED_VERDE 11 // Simbolo para el pin LED verde
#define LED_AZUL 10 // Simbolo para el pin LED azul
/* Declaracion de variables */
// Variales para la intensidad actual de cada LED
int intensidadRojo;
int intensidadVerde;
int intensidadAzul;
// Variables para la magnitud del desvanecimiento en cada paso
int cantidadRojo = 4;
int cantidadVerde = 5;
int cantidadAzul = 6;
/* Rutina de inicializacion */
void setup()
{
// Configurar los tres pines como salida
pinMode(LED_ROJO, OUTPUT);
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
// Inicializar valores de intensidad a eleccion
intensidadRojo = 80;
intensidadVerde = 60;
intensidadAzul = 40;
}
/* Rutina principal */
void loop()
{
/* Fijar la intensidad de luz para los LEDs rojo, verde y azul */
analogWrite(LED_ROJO, intensidadRojo);
analogWrite(LED_VERDE, intensidadVerde);
analogWrite(LED_AZUL, intensidadAzul);
/* Cambiar la intensidad para la proxima ejecucion del lazo: */
intensidadRojo = intensidadRojo + cantidadRojo;
intensidadVerde = intensidadVerde + cantidadVerde;
intensidadAzul = intensidadAzul + cantidadAzul;
/* Controlar los valores extremos de intensidad */
// Valores extremos de intensidad para el rojo
if (intensidadRojo > 255) { // Si la intensidad llega o supera el limite superior
intensidadRojo = 255; // Forzar la intensidad al maximo permitido
cantidadRojo = -cantidadRojo ; // Cambiar de incremento a decremento
}
else if (intensidadRojo < 0) { // Si la intensidad llega o supera el limite inferior
intensidadRojo = 0; // Forzar la intensidad al minimo permitido
cantidadRojo = -cantidadRojo ; // Cambiar de decremento a incremento
}
// Valores extremos de intensidad para el verde
if (intensidadVerde > 255) {
intensidadVerde = 255;
cantidadVerde = -cantidadVerde ;
}
else if (intensidadVerde < 0) {
intensidadVerde = 0;
cantidadVerde = -cantidadVerde ;
}
// Valores extremos de intensidad para el azul
if (intensidadAzul > 255) {
intensidadAzul = 255;
cantidadAzul = -cantidadAzul ;
}
else if (intensidadAzul < 0) {
intensidadAzul = 0;
cantidadAzul = -cantidadAzul ;
}
// Generar un retardo antes del cambio de color
delay(RETARDO);
}
No hay comentarios.:
Publicar un comentario