EJERCICIOS PROPUESTOS EN RELACIÓN A LA PRÁCTICA 2
Con este ejercicio, hemos aprendido a cambiar el tiempo en el que se enciende un color con el LED RGB.
- Nombre del ejercicio:
2.1 Cambia la velocidad de la secuencia de colores
Mediante la función delay podemos ajustar el tiempo que se muestra cada color.
Te propongo que cambies este tiempo para ver el efecto que se consigue.
Una interesante aplicación de las definiciones (#define) sería definir un tiempo que se usase en los tres delay. Por ejemplo
#define ESPERA 500
y luego
delay(ESPERA);
De esta manera para cambiar el tiempo durante el que se muestra cada color, solo tenemos que cambiar un parámetro, en vez de tres.
- Cómo lo has hecho:
Para realizar este ejercicio, hemos añadido otra definición, pero en vez de ESPERA, hemos puesto TIEMPO, y 500, de tiempo.
Copia del programa:
// Empezando con Arudino UNO
// Actividad 2: Generando colores con un LED RGB
//
// Enciende de forma secuencial los tres colores
// primarios de un LED RGB
//
// wwww.complubot.com
// Asociamos cada uno de los terminales del LED RGB
// con una salida digital
#define RGB_ROJO 3
#define RGB_VERDE 5
#define RGB_AZUL 6
void setup()
{
//Configuramos el pin digital de cada color del
//LED RGB como salida
pinMode(RGB_ROJO, OUTPUT);
pinMode(RGB_VERDE, OUTPUT);
pinMode(RGB_AZUL, OUTPUT);
}
void loop()
{
//Encendemos el color rojo y apagamos los otros
digitalWrite(RGB_ROJO, HIGH);
digitalWrite(RGB_VERDE, LOW);
digitalWrite(RGB_AZUL, LOW);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color verde y apagamos los otros
digitalWrite(RGB_ROJO, LOW);
digitalWrite(RGB_VERDE, HIGH);
digitalWrite(RGB_AZUL, LOW);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color azul y apagamos los otros
digitalWrite(RGB_ROJO, LOW);
digitalWrite(RGB_VERDE, LOW);
digitalWrite(RGB_AZUL, HIGH);
//Esperamos 1 segundo
delay(1000);
}
Hemos necesitado:
Cable de conexión USB tipo A-B:
Placa Arduino UNO:
Placa de prototipado de 400 contactos:
LED RGB de 5mm:
Resistencia de 330 Ohm (naranja, naranja, marrón y dorado):
Cables de prototipado M-M:
- Vídeo en el cual quede de manifiesto cómo se ha modificado el funcionamiento de nuestro circuito:
- Nombre del ejercicio:
Ejercicio 2.2 Muestra todos los colores.
Este ejercicio nos propone mezclar los colores primarios para conseguir morado, verde claro, azul claro y blanco, además de los otros (verde, azul y rojo).
Aquí tenemos unas capturas del programa:
- Cómo lo has hecho:
Hemos puesto HIGH en los colores que queríamos mrezclar. Y para el blanco HIGH en todas.
- Vídeo en el cual quede de manifiesto cómo se ha modificado el funcionamiento de nuestro circuito:
Copia del programa:
// Empezando con Arudino UNO
// Actividad 2: Generando colores con un LED RGB
//
// Enciende de forma secuencial los tres colores
// primarios de un LED RGB
//
// wwww.complubot.com
// Asociamos cada uno de los terminales del LED RGB
// con una salida digital
#define RGB_ROJO 3
#define RGB_VERDE 5
#define RGB_AZUL 6
void setup()
{
//Configuramos el pin digital de cada color del
//LED RGB como salida
pinMode(RGB_ROJO, OUTPUT);
pinMode(RGB_VERDE, OUTPUT);
pinMode(RGB_AZUL, OUTPUT);
}
void loop()
{
//Encendemos el color rojo y apagamos los otros
digitalWrite(RGB_ROJO, HIGH);
digitalWrite(RGB_VERDE, LOW);
digitalWrite(RGB_AZUL, LOW);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color verde y apagamos los otros
digitalWrite(RGB_ROJO, LOW);
digitalWrite(RGB_VERDE, HIGH);
digitalWrite(RGB_AZUL, LOW);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color azul y apagamos los otros
digitalWrite(RGB_ROJO, LOW);
digitalWrite(RGB_VERDE, LOW);
digitalWrite(RGB_AZUL, HIGH);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color azul y el rojo y apagamos el otro
digitalWrite(RGB_ROJO, HIGH);
digitalWrite(RGB_VERDE, LOW);
digitalWrite(RGB_AZUL, HIGH);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color verde y el azul y apagamos el otro
digitalWrite(RGB_ROJO, LOW);
digitalWrite(RGB_VERDE, HIGH);
digitalWrite(RGB_AZUL, HIGH);
//Esperamos 1 segundo
delay(1000);
//Encendemos el color verde y el rojo y apagamos el otro
digitalWrite(RGB_ROJO, HIGH);
digitalWrite(RGB_VERDE, HIGH);
digitalWrite(RGB_AZUL, LOW);
//Esperamos 1 segundo
delay(1000);
//Apagamos todos
digitalWrite(RGB_ROJO, HIGH);
digitalWrite(RGB_VERDE, HIGH);
digitalWrite(RGB_AZUL, HIGH);
//Esperamos 1 segundo
delay(1000);
}