Práctica 8: Luces de colores variados

Se realizarán dos prácticas con el mismo circuito:

  1. Luz roja, verde y azul
  2. Arcoiris de luz


Materiales necesarios:
  • 1 tarjeta ARDUINO
  • 1 cable USB
  • 1 placa Protoboard
  • 1 led RGB
  • 3 resistencias de 470 ohmios
  • 5 cables de conexión

Esquema del circuito:



1) LUZ ROJA, VERDE Y AZUL:

Proyecto consistente en mostrar los colores rojo, verde y azul con un led RGB.

Código del programa:

int led1 = 11;
int led2 = 9;
int led3 = 10;
int i=0;

void setup(){
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop(){
  analogWrite(led1,255);
  analogWrite(led2,255);
  analogWrite(led3,0);
  i=0;
  for(i=0; i<=255;i++){
    analogWrite(led3,i);
    analogWrite(led2,255-i);
    delay(10);
  }
  i=0;
  for(i=0; i<=255;i++){
    analogWrite(led2,i);
    analogWrite(led1,255-i);
    delay(10);
  }
  i=0;
  for(i=0; i<=255;i++){
    analogWrite(led2,255-i);
    analogWrite(led3,255-i);
    delay(10);
  }
  i=0;
  for(i=0; i<=255;i++){
    analogWrite(led3,i);
    delay(10);
  }
 }


2) ARCOIRIS DE LUZ:

Proyecto consistente en que el led RGB muestre toda la gama de colores que sus características le permitan.

Código del programa:

int led1 = 11;
int led2 = 9;
int led3 = 10;
int i=0;
void setup(){
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}
void loop(){
  analogWrite(led1,255);
  analogWrite(led2,255);
  analogWrite(led3,0);
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led3, i);
    analogWrite(led2,255-i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led2, i);
    analogWrite(led1,255-i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led2,255-i);
    analogWrite(led3,255-i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led3,i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led2,i);
    analogWrite(led3,255-i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led1,i);
    analogWrite(led2,255-i);
    delay(10);
  }
  i=0;
  for(i=0;i<=255;i++){
    analogWrite(led2,i);
    delay(10);
  }
}

Fuente: