Está en la página 1de 6

SECUENCIA DE 6 LEDS CON ARDUINO

Este proyecto es resultado de mi primera práctica con Arduino.

La secuencia de luces permite el encendido y apagado de 6 LEDs, desde el exterior hacia el


centro y del centro hacia el exterior. La ubicación de los LEDs es como se muestra en el
siguiente cuadro:

Primera secuencia: rojo, amarillo, verde (desde el exterior hacia el centro)


Segunda secuencia: verde, amarillo, rojo (del centro hacia el exterior)

Las dos secuencia se repiten indefinidamente, con un tiempo de encendido entre 200 a
1000 ms (los valores se obtienen aleatoriamente).

Componentes

 Arduino UNO
 Protoboard
 6 LEDs
 6 resistencias de 220 ohms (rojo, rojo, amarillo)

Circuito

Los 6 LEDs, con sus respectivas resistencias, se conectan a las salidas digitales del Arduino,
se acuerdo a la siguiente tabla:

PIN DIGITAL D4 D5 D6 D7 D8 D9
LED 4 5 6 7 8 9

En el gráfico de la placa (protoboard) podemos observar con mayor detalle la ubicación de


los diversos componentes del circuito.
El esquema electrónico es como sigue:

Código
El flujo del código dentro del sketch podemos representarlo del siguiente modo:
A continuación detallaremos las principales partes del código, implementadas en las
siguientes funciones:

 void setup()
 void loop()
 void ledsAlCentro(int pausa)
 void ledsAlExterior(int pausa)

void setup()
Inicializa los pines digitales de Arduino, configurando dichos pines como salida (OUTPUT).

void loop()
Ejecuta las dos funciones ledsAlCentro() y ledsAlExterior(), encargadas de encender/apagar
los LEDs de la primera y segunda secuencia, respectivamente.

void ledsAlCentro(int pausa)

Esta función tiene la responsabilidad de encender y apagar los LEDs de la primera


secuencia, desde el exterior hacia el centro (los LEDS del mismo color se
encienden/apagan simultáneamente):

rojo(4 y 9), amarillo(5 y 8), verde (6 y 7)


Para optimizar el código, podemos identificar en los steps (5,3,1) una serie de números
impares en forma descendente; cuya formulación matemática

Sin = 2n + 1, donde n= . . . , 3, 2, 1, 0

La misma que se “traduce” en el código como

Sin = 2 * step + 1; donde step= 2, 1, 0

La función ledsAlCentro recibe como parámetro la variable pausa, cuyo valor fue obtenido
previamente dentro de función loop(). Los valores de la pausa pueden ser: 200, 400, 600,
800 y 1000 milisegundos, generados aleatoriamente.

void ledsAlExterior(int pausa)

Esta función tiene la responsabilidad de encender y apagar los LEDs de la segunda


secuencia, del centro hacia el exterior (los LEDS del mismo color se encienden/apagan
simultáneamente):

Verde(6 y 7), amarillo(5 y 8), rojo (4 y 9)


Para optimizar el código, podemos identificar en los steps (1,3,5) una serie de números
impares en forma ascendente; cuya formulación matemática

Sin = 2n + 1, donde n= 0, 1, 2, 3, . . .

La misma que se “traduce” en el código como

Sin = 2 * step + 1; donde step= 0, 1, 2

La función ledsAlExterior recibe como parámetro la variable pausa, cuyo valor fue
obtenido previamente dentro de función loop(). Los valores de la pausa pueden ser: 200,
400, 600, 800 y 1000 milisegundos, generados aleatoriamente.

Variantes
 Secuencia de Izquierda-Derecha: se pueden encender y apagar los LEDs
secuencialmente, desde la izquierda (LED4) hacia la derecha (LED9).

 Secuencia de Derecha-Izquierda: se pueden encender y apagar los LEDs


secuencialmente, desde la derecha (LED9) hacia la izquierda (LED4).
 Modificar el rango de la pausa: se puede cambiar el rango de valores de la pausa,
modificando el inicio y/o fin de la función random().

También podría gustarte