Вы находитесь на странице: 1из 4

Kurtso/Curso:

Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 04 LED RGB

Ficha 04 LED RGB


Introduccin
En esta ficha vamos a cambiar los LEDs normales por un LED "3 en 1". En un nico componente se incluyen tres luces
diferentes, que permite crear distintas tonalidades (este es el fundamento de los LEDs que cambian de color que vemos a
veces en las tiendas).
Utilizando luz de tres colores (rojo, verde y azul, o Red, Green, Blue, RGB) es posible generar los diferentes tonos visibles para
el ojo humano. As, una luz verde con intensidad del 100% y una luz roja con intensidad del 100%, mezcladas, generarn una
luz amarilla. El rojo con el azul, rosa, y las tres, luz blanca (y la ausencia de las tres, negro).

Evidentemente, si se juega con intensidades distintas de cada color, se conseguirn tonalidades diferentes: una mezcla de un
25% de verde, 25% de azul y 50% de rojo generar un color marrn, por ejemplo.
Nuestro LED RGB tiene un nodo que se conectar a tierra (el ms largo), y tres conectores para controlar la intensidad de luz
roja, verde y azul que emite, tal y como se indica en la fotografa:

El esquema de conexin es el siguiente (incluimos un pulsador que vamos a utilizar en nuestro primer ejercicio):

Orrialde/pgina: 1/4

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 04 LED RGB

Cambiando de color
El primer ejercicio va a realizar lo siguiente:

Inicialmente, el LED tendr un color verde. Para ello, el PIN 5 tendr un estado HIGH, y los otros dos, LOW.
Al pulsar el botn, el LED tendr un color rojo. Para ello, el PIN 3 tendr un estado HIGH, y los otros dos, LOW.
Al pulsar de nuevo, el LED ser azul (PIN 6 HIGH, y los otros dos LOW).
Al pulsar de nuevo, el color del LED ser rosa (mezcla de azul y rojo).
Al pulsar de nuevo, el color del LED ser cian (mezcla de verde y azul).
Al pulsar de nuevo, el color del LED ser amarillo (mezcla de verde y rojo).
Al pulsar de nuevo, el color del LED ser blanco (mezcla de los tres).
Y al pulsar de nuevo, volveremos al verde, con lo que comienza otra vez el ciclo.
Adems, cada vez que cambiemos de color, vamos a enviar al ordenador una lnea con el color al que se ha
cambiado

Qu necesitamos?

Lo primero que vamos a definir van a ser constantes para los 3 pines del LED y el pin de pulsador.
Necesitaremos tambin una constante para representar cada color posible en el enunciado, (con el valor que
queramos, mientras sean distintas, pueden ir desde el 0 para el verde, 1 para el rojo, 2 para el azul hasta el 7 para
el blanco)
Y una variable para controlar el color actual (que inicialmente, ser verde)
La funcin "setup" har dos cosas:
o Inicializar los pines de entrada y salida
o Inicializar la comunicacin con el ordenador
La funcin "pulsacion"
o Puedes volver a utilizar la funcin "pulsacion" propuesta en la ficha anterior. Recuerda que vas a necesitar
la variable del estado anterior del pulsador.
La funcin "escribeColor":
o Utilizando "if"s y "else"s, escribe en una lnea, en el ordenador, el color actual (si el color actual es verde,
escribe "verde", si no, si es rojo, escribe "rojo", etc.).
La funcin "cambiarEstado":
o Usando "if"s y "else"s, controla el cambio de un color a otro: si el color actual es verde, apaga el LED verde y
enciende el rojo (y cambia el valor de la variable del color actual), si no, si el color actual es rojo, apaga el

Orrialde/pgina: 2/4

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 04 LED RGB

rojo y enciende el azul, etc. Recuerda, en caso, actualizar tanto el color del LED como el valor de la variable
que guarda el color actual.
o Tras cambiar el color, usa la funcin "escribeColor" para escribir en el ordenador el color actual.
La funcin "loop":
o Si se detecta una pulsacin, cambia el estado.

Un esquema del cdigo podra ser el siguiente:


// Declara aqu todas las constantes necesarias para el programa
// Declara aqu todas las variables necesarias para el programa. No olvides la variable que
necesita la funcin "pulsado"
void setup()
{
// Inicializa entradas y salidas, y comunicacin con el ordenador
}
boolean pulsacion()
{
// Detecta si se ha producido una pulsacin
}
void escribeColor()
{
// Enva al ordenador un texto con el color actual
}
void cambiarEstado()
{
// Pasa al siguiente color en la secuencia y al terminar llama a "escribeColor" para
enviar el color actual al ordenador
}
void loop()
{
// Si se detecta pulsacin, cambia el estado
}

Mezclando colores
Conecta otros dos pulsadores al ejercicio anterior. Cada pulsador va a controlar un color del LED, proporcionando la siguiente
funcionalidad:

Cada color va a tener 11 posibles intensidades (de 0 a 10)


Al presionar un pulsador, el color asociado a dicho LED se incrementar en 1. Si llega a 10, en lugar de
incrementarse, con las siguientes pulsaciones se decrementar, hasta llegar a 0, y en ese momento, las pulsaciones
volvern a incrementar la intensidad.

Para ello, ser necesario:

Las correspondientes constantes para el LED RGB y los pulsadores.


Tres variables (enteras) que controlen la intensidad de cada color. Inicialmente estarn apagados, por lo que su
valor inicial ser 0.
Tres variables (booleanas) que controlen si la intensidad de cada color est creciendo o decreciendo. Inicialmente
estar creciendo, por lo que su valor ser true.
La funcin "setup", que inicializar los pines de entrada y salida.
Tres funciones que detectarn si se ha presionado cada uno de los pulsadores (con sus correspondientes variables
de control para el estado anterior de cada uno de ellos).
La funcin "loop" har lo siguiente:
o Si se ha presionado el pulsador del color rojo:
Si est incrementando, sumar uno a la intensidad del color rojo.

Orrialde/pgina: 3/4

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Kurtso/Curso:
Ikasgaia/Tema:

Bachillerato 2
Microcontroladores

Ikasgaia/Asignatura:
Dokumentua/Documento:

DAO
Ficha 04 LED RGB

o
o

Si no, restar uno a la intensidad del color rojo.


Establecer como valor analgico del LED rojo su intensidad multiplicada por 25'5. De ese modo, la
intensidad 0 ser apagado, y la intensidad 10 el mximo valor analgico posible (255).
Si se estaba incrementando el color rojo, y su intensidad es 10, ahora se decrementa (su variable
de control se pone a FALSE).
Si no, si se estaba decrementando el color rojo, y su intensidad es 0, ahora se incrementa (su
variable de control se pone a TRUE).
Si se ha presionado el pulsador del color verde, hacer lo mismo, pero para el color verde.
Si se ha presionado el pulsador del color azul, hacer lo mismo, pero para el color azul.

Un esquema del cdigo necesario podra ser:


// Coloca aqu todas las constantes necesarias para el programa
// Coloca aqu todas las variables necesarias para el programa (incluidas las del anterior
estado de los pulsadores
void setup()
{
// Inicializa entradas y salidas
}
boolean pulsadoRojo()
{
// Detectar si se ha soltado el pulsador del rojo
}
boolean pulsadoVerde()
{
// Detectar si se ha soltado el pulsador del verde
}
boolean pulsadoAzul()
{
// Detectar si se ha soltado el pulsador del azul
}
void loop()
{
// Si se ha soltado alguno de los pulsadores, modificar la intensidad como corresponda
}

Orrialde/pgina: 4/4

C/Iturribide, 78 C.P. 48006 - Bilbao - Tlfn. 94.432.91.00


www.maristasbilbao.com | elsalvador@maristasbilbao.com

Вам также может понравиться