Proyecto 5.1 

Modulo Led RGB de Ánodo Común

Proyecto 5.1.a

El ejercicio a consiste en un bucle que va a ir poniendo diferentes colores al led, para poder observar algunas combinaciones.

Esquema

Sketch

int pinRojo = 9;

int pinVerde = 10;

int pinAzul = 11;

 

void setup()

{

 pinMode(pinRojo, OUTPUT);

 pinMode(pinVerde, OUTPUT);

 pinMode(pinAzul, OUTPUT);

}

 

void loop()

{

 setColor(0, 255, 255); // rojo

 delay(500);

 setColor(255, 0, 255); // verde

 delay(500);

 setColor(255, 255, 0); // azul

 delay(500);

 setColor(0, 0 , 255); // amarillo

 delay(500);

 setColor(0, 255, 0); // morado

 delay(500);

 setColor(255, 0, 150); // aqua

 delay(500);

 setColor(0, 0, 0); //blanco

 delay(500);

}

 

void setColor(int red, int green, int blue)

{

 analogWrite(pinRojo, red);

 analogWrite(pinVerde, green);

 analogWrite(pinAzul, blue);

}

Proyecto 5.1.b

El ejercicio b consiste en un bucle que irá iluminando gradualmente cada color en orden: rojo, verde y azul.

El delay lo controlará un potenciómetro. Es importante notar la estructura for que se ha usado para poder barrer por todas las posibilidades de cada led. Así mismo, la estructura de contador con if’s condicionales se ha hecho para que antes de cada delay se lea el potenciómetro de nuevo y la “respuesta sea más rápida”, sin repetir el mismo bloque de código demasiado.

Esquema

Sketch

int pinRojo = 9;

int pinVerde = 10;

int pinAzul = 11;

int contador =0;

void setup(){

 pinMode(pinRojo, OUTPUT);

 pinMode(pinVerde, OUTPUT);

 pinMode(pinAzul, OUTPUT);

}

void loop(){

 int valor=analogRead(A0);

 valor=map(valor,0,1023,1,10);

 if(contador==0){

  for(int r=255; r>0 ; r--){

  setColor(r, 255,255);

  delay(valor);

 }

 contador++;

 }

 else if(contador==1){

  for(int g=255; g>0 ; g--){

  setColor(255, g,255);

  delay(valor);

 }

 contador++;

 }

 else{

  for(int b=255; b>0 ; b--){

  setColor(255, 255,b);

  delay(valor);

 }

contador=0;

}

}

void setColor( int red, int green, int blue){

 analogWrite(pinRojo, red);

 analogWrite(pinVerde, green);

 analogWrite(pinAzul, blue);

}


Proyecto 5.1.c

Controlar un LED RGB con dos potenciómetros y un LDR. 

Un potenciómetro controlará el led rojo, el otro el verde, y el LDR el azul.

Esquema

Sketch

int pinRed = 9;

int pinGreen = 10;

int pinBlue = 11;

int potRed = A0;

int potGreen = A1;

int potBlue = A2;

void setup(){

 pinMode(pinRed, OUTPUT);

 pinMode(pinGreen, OUTPUT);

 pinMode(pinBlue, OUTPUT);

}

void loop(){

 

 int vRed=analogRead(A0);

 vRed=map(vRed,0,1023,0,255);

 

  int vGreen=analogRead(A1);

  vGreen=map(vGreen,0,1023,0,255);

 

  int vBlue=analogRead(A2);

  vBlue=map(vBlue,0,1023,0,255);

 

  setColor(vRed, vGreen, vBlue);

 

}

void setColor( int red, int green, int blue){

 analogWrite(pinRed, red);

 analogWrite(pinGreen, green);

 analogWrite(pinBlue, blue);

}