Vistas a la página totales

jueves, 29 de octubre de 2015

Cómo hacer , controlador de RGB. Con Arduino UNO.

Controlar DIODO LED RGB con Arduino UNO.










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