ARDUINO PRACTICA 2 LED RGB
PRACTICA
ARDUINO 2
És un LED RGB, veurem com controlar-lo amb Arduino. Per això utilitzarem 3 sortides PWM que ens permeten establir diferents intensitats del LED. Farem servir un LED RGB de càtode comú ja que així els valors en intensitat podran anar de 0 a 255 amb la funció analogWrite ().
Per això, necessitem:
1- Arduino UN Rev3
1 -LED RGB càtode comú
3 -Resistències 220 [ohm]
4 -Cables de connexió
El següent diagrama mostra com s'han de connectar les coses. Farem servir els pins 9, 10 i 11 els quals suporten PWM.
/*
Programa
para controlar un LED RGB con arduino.
Usando
las salidas PWM se puede controlar la intensidad de cada color para
hacer las mezclas.
Se
hacen dos funciones:
rgbon():
Muestra los 3 colores principales uno despues de otro (rojo, verde y
azul)
colors():
Permite elegir entre tres colores (amarillo (y), narajno (o) o rosado
(p))
usando
sus siglas en ingles
Materiales:
1
Arduino UNO Rev3
1
LED RGB de 4 patas catodo comun
3
resistencias de 220[ohm]
cables
de conexion
Autor:
Arduino UTFSM
Fecha:
22 Mayo 2014
*/
/*-----Declaracion
de variables para cada color R G B-----*/
int
rled = 11; // Pin PWN 11 para led rojo
int
bled = 10; // Pin PWM 10 para led azul
int
gled = 9; // Pin PWM 9 para led verde
/*----Declaracion
de variables auxiliares-----*/
int
i; // Variable para ciclos repetitivos
int
repeat = 5; // Variables para cantidad limite de repeticiones
void
setup() {
/*-----
Se inicializan pines PWM como salida*/
pinMode(rled,
OUTPUT);
pinMode(bled,
OUTPUT);
pinMode(gled,
OUTPUT);
}
void
loop() {
for(i=0;
i<repeat; i++) //Se repite la ejecucion de la funcion rgbon()
"repeat" veces
rgbon();
delay(1000);
//Se espera 1 segundo
colors('y');
//Se enciende el LED en color amarillo (y de yellow)
delay(1000);
colors('o');
//Se enciende el LED en color naranko (o de orange)
delay(1000);
colors('p');
//Se enciende el LED en color rosado (p de pink)
delay(1000);
}
/*-----Funcion
para mostrar colores principales cada 500 ms-----*/
void
rgbon(){
analogWrite(rled,255);
// Se enciende color rojo
delay(500);
// Se esperan 500 ms
analogWrite(rled,0);
// Se apaga color rojo
analogWrite(bled,255);
// Se enciende color azul
delay(500);
// Se esperan 500 ms
analogWrite(bled,0);
// Se apaga color azul
analogWrite(gled,255);
// Se enciende color verde
delay(500);
// Se esperan 500 ms
analogWrite(gled,0);
// Se apaga colo verde
}
/*-----Funcion
que permite escoger entre color amarillo, naranjo o rosado-----*/
void
colors(char color){ //La funcion recibe un parametro que se guarda en
variable color
switch(color){
//Se compara variable color con dato guardado
case
'y': analogWrite(rled,255); // Si color == 'y' se enciende color
amarillo
analogWrite(gled,255); // Mezclando r = 255 / g = 255 / b = 0
analogWrite(bled,0);
break;
case
'o': analogWrite(rled,255); // Si color == 'o' se enciende color
naranjo
analogWrite(gled,180); // Mezclando r = 255 / g = 180 / b = 0
analogWrite(bled,0);
break;
case
'p': analogWrite(rled,255); // Si color == 'p' se enciende color
rosado
analogWrite(gled,0); // Mezclando r = 255 / g = 0 / b = 255
analogWrite(bled,255);
break;
}
}
En aquest codi es van inventar dues funcions, les quals s'expliquen detalladament en el mateix.
Poden crear una infinitat de jocs d'intensitats per modificar el comportament del LED RGB al seu gust, també es poden modificar les freqüències de canvi entre els colors per produir efectes de rapidesa, càmera lenta, etc.
Per saber quina intensitat escriure per a cada color poden ajudar-se d'un programa editor de gràfics com Paint, Photoshop, GIMP, etc. obrir la paleta de colors i triar els números es que indiquen a les pestanyes RGB. A continuació donem un exemple fent servir el programa GIMP
Comentaris
Publica un comentari a l'entrada