Icono del sitio MECABOT

Práctica 13 Encender una secuencia de varios LEDs (Estrella fugaz)


13.1  Objetivo General:

Encender una secuencia de varios LEDs simulando una estrella fugaz.


Un conjunto de 12 LEDs serán encendidos de forma secuencial. Se simula con este práctica el comportamiento de una estrella fugaz.

13.2 Materiales y Métodos:

  1. 12 LEDs (Colores: Amarillo, Verde y Rojo).
  2. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  3. Un cable USB impresora.
  4. Un computador.
  5. Cables para el montaje del circuito.
  6. Tarjeta Protoboard.
  7. 12 Resistencias Eléctrica de 220 ohm.

13.3 Montaje de la práctica:

Antes de comenzar la realización del montaje del circuito electrónico, se debe realizar el circuito en el programa TinkerCad. Cada LED será conectado tal como lo hicimos en la Práctica 1 donde encendimos y apagamos un LED, o como en la Práctica 11 donde encendimos una secuencia de LEDs simulando un semáforo. Se van a usar los  pines del 2 al 13 para conectar cada uno de los 12 LEDs, ver Figura 2:

Figura 2. Montaje del circuito en el programa TinkerCAD

Se observa en la Figura 2 que se está utilizando el Arduino Uno, si se utiliza la tarjeta Arduino Uno-R3 el mismo procedimiento. Como se observa en la Figura 2, el Protoboard nos ayuda a instalar los  LEDs e instalar el circuito a través de cables, al igual que las resistencias.

Luego que se tiene armado el circuito en el programa TinkerCad, se comienza con el desarrollo del programa en el IDE de Arduino.

13.4 IDE de Arduino para la práctica:

– Se selecciona la tarjeta Arduino que se esta utilizando sea Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial. Bajo que puerto USB se va a conectar el Arduino con el computador.

– Se empieza a realizar el código:

NOTA: Para quel IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

En la siguiente imagen se mostrara como quedo plasmado en el IDE de Arduino, los procedimientos anteriormente señalados: <\p>

//Estrella fugaz
int pinArray [] = {2,3,4,5,6,7,8,9,10,11,12,13 };    // Vector donde se van a declarar los LEDs
int waitStart= 200;  // Tiempo entre encender un LED y otro
int tailLength = 4;     // Numero de LEDs activos
int lineSize = 12;       // Numero total de LEDs

void setup()
  {
    int i;
    for (i=0; i< lineSize; i++)
    {
      pinMode(pinArray[i], OUTPUT);
    } 
  }

void loop()
   {
     int i;
     int tailCounter = tailLength; // Se establece un contador con los LEDS 
                                   //que deben encenderse al mismo tiempoI set up the tail length in a counter
     for (i=0; i<lineSize; i++)
     {
      digitalWrite(pinArray[i],HIGH); // Se enciende tailLength LEDs de forma consecutiva
      delay(waitStart); // Controla la rapidez de encendido de cada LED
      if (tailCounter == 0)
      {
        digitalWrite(pinArray[i-tailLength],LOW); // Apaga los LEDs de la cola hacia atrás
      }
      else
         if (tailCounter > 0)
            tailCounter--;
      }
      for (i=(lineSize-tailLength); i<lineSize; i++)
      {
       digitalWrite(pinArray[i],LOW); // Apague los LEDs restantes
       delay(waitStart); // Controla la rapidez con que se apagan los LEDs
      }
 }

Algoritmo  1 Código para encender y apagar un LED utilizando un botón pulsador. 

Implementación del algoritmo 1 en el simulador TinkerCad:

https://www.tinkercad.com/things/076jCBQwb8B-practica-13-encender-una-secuencia-de-varios-leds

13.5 Conclusión:

En esta práctica se ha mostrado como encender una secuencia de LEDs utilizando la tarjeta Arduino. Hemos avanzado en programación al introducir el manejo de variables del tipo Array o  vectores. El código permite aumentar o disminuir el tiempo en el que encienden los LEDs y a su vez definir cuantos LEDs van a estar encendidos (tiempo y cola de la estrella fugaz)

Si te gustó la práctica no dejes de comentar abajo

13.6 Referencias:

[1] https://www.arduino.cc/en/Tutorial/ShootingStar

Salir de la versión móvil