Trabajando con múltiples leds

Objetivos

  • Conocer el bucle para, la instrucción for (para).
  • Declaración de las primeras variables.
  • Circuito con múltiples LEDs.

Conocimiento previo

Material requerido

arduino
  • Arduino Uno o similar.
  • Un PC con el entorno de Arduino correctamente instalado y configurado.
Img_3_4
  •  Una Protoboard.
RedLed_
  • 8 diodos LED.
Img_3_5
  • Una resistencia de 330 Ohmios.
Img_3_6-300x185
  • Algunos cables de Protoboard.

El circuito.

El esquema del circuito es muy similar al del led intermitente, salvo por el hecho de que colocamos en la Protoboard 8 LEDs.

La única novedad es que dado que la función de la resistencia es limitar la intensidad de la corriente que circula por el circuito, y puesto que todos los diodos tienen masa común, basta una única resistencia entre este punto y tierra (GND). Pero si encendiéramos más de un led a la vez, tendríamos que poner una resistencia por cada led. Si no lo hacemos lo que pasará es que los led lucirán con menos intensidad.

Cuando nuestro programa ponga el pin correspondiente a valor a HIGH, se cerrar el circuito iluminándose el LED asociado.

circuito_fritzing

 

El programa

void setup()
{

int i = 0 ; // Declaramos la variable i como un entero
for ( i = 6 ; i < 14 ; i++)
pinMode( i , OUTPUT) ;

}

void loop()
{

int i = 0 ; // Declaramos la variable i como un entero
for ( i = 6 ; i < 14 ; i++)
{

   digitalWrite( i , HIGH) ;
   delay (100) ;
   digitalWrite( i , LOW);
   delay (100) ;

}

}

Este montaje nos permite jugar con las luces y se presta a varios programas diferentes para conseguir distintos efectos.

Así pues, podríamos hacer que la luz de los led volviera en sentido contrario,  bastaría con usar dos ciclos for:

void loop()
{

for ( int i = 6 ; i < 14 ; i++) // Declaramos la variable i
{

digitalWrite( i , HIGH) ;
delay (100) ;
digitalWrite( i , LOW);
delay (100) ;

}
for ( int i = 12 ; i >6 ; i–) // Declaramos la variable i
{

digitalWrite( i , HIGH) ;
delay (100) ;
digitalWrite( i , LOW);
delay (100) ;

}

}

El primer ciclo for hace que las luces se encienda en secuencia desde la 6 hasta la 13. El segundo bucle entra a continuación empezando con la luz 12 (para no repetir la 13) y finalizando con la 7(para no repetir la 6), y vuelta a empezar.

En el segundo bucle hemos hecho una cuenta atrás diciéndole a la variable i que se decrementara en uno en cada iteración mediante la instrucción i– .

También nos hemos aprovechado de que C++ nos permite definir variables sobre la marcha dentro de la propia instrucción for, sin necesidad de dedicarle una línea completa a la declaración e inicialización.