ARDUINO: Secuencia de LEDS



En esta práctica se harán las famosas luces del auto fantástico, este nombre lo obtienen de la serie Knight Rider, ya que el “ayudante” del protagonista era un automóvil con inteligencia artificial que podía hablar y su boca era una serie de luces que se movían de izquierda a derecha, y es justo lo que haremos, por eso el nombre que se le da a la práctica.

Materiales:

  • 1x Arduino

  • 5x LEDs

  • 5x Resistores de 220Ω

  • 1x Protoboard

  • Jumpers

Esquema de Montaje

Como podemos observar en el esquema de conexión, requerimos conectar el anodo de cada uno de nuestro LED a una terminal digital de nuestra tarjeta Arduino y la otra terminal correspondiente al cátodo del LED se coloca una resistencia en serie y a GND.

Clic en la imagen para ampliar.

Código

Como habrán notado tenemos unas cuantas modificaciones muy interesantes, primero creamos una variable global del tipo entero llamada pausa con un valor de 50, esta variable nos servirá para cambiar el tiempo en que cambian de estado los leds, si disminuimos el valor aumenta la velocidad cuando prenden y se apagan, o sea es más rápido, si aumentan el valor es más lento.

Lo siguiente es configurar los pines como salida y aquí vemos lo interesante, no usamos la palabra reservada define para darle un alias a cada pin de Arduino, donde conectamos los leds, los usaremos como números y los configuraremos como salidas, esto lo hacemos con un for que ya se vio su funcionamiento en un capítulo anterior, este inicia en el pin 2 y en la condición 1 ponemos que nuestra variable sea menor que 7 ya que será de 2 a 6 los pines a utilizar, y en la condición 2 hacemos el incremento en 1, dentro del for usamos el pinMode() y le pasamos la variable del for, la ponemos como OUTPUT y es así como configuramos los pines como salida.

Ahora en el loop ponemos nuestro programa de ejecución, de nuevo usamos un for como el del setup(), y adentro del for ponemos la sentencia que hace que prenda el led con digitalWrite(), a esta función le pasamos como primer parámetro la variable del for y enviamos un alto, el led prenderá durante el tiempo de la variable pausa y después de ese tiempo se apagará ese mismo pin, así sucesivamente, después se le da un tiempo con un delay(), de nuevo le pasamos como parámetro la variable pausa y esto servirá para darle un tiempo para hacer el cambio al segundo for.

En este segundo for hacemos lo mismo pero ahora al revés, empezamos en el led conectado en el pin 6 y así seguimos hasta el led 2, para que esto funcione en la condición 1 usamos un > y en la condición 2 se hace un decremento, esto ya se vio en un ejemplo de un capítulo anterior.

/**
 * Programa que muestra la secuencia de leds
 */
int pausa = 50;

void setup() {
  // Inicializamos los pines del 2 al 6 como OUTPUT con un ciclo for
  for (int pinLed = 2; pinLed < 7; pinLed++)  {
    pinMode(pinLed, OUTPUT);
  }
}

void loop() {
  // Encendemos y apagamos en un loop desde el pin 2 hasta el pin 6
  for (int pinLed = 2; pinLed < 7; pinLed++) {
    // Pone el pinLed en HIGH encendiendo el led
    digitalWrite(pinLed, HIGH);
    delay(pausa);
    // Pone el pinLed en LOW apagando el led
    digitalWrite(pinLed, LOW);
  }

  delay(pausa);

  // Encendemos y apagamos en otro loop desde el pin 7 hasta el pin 2
  for (int pinLed = 6; pinLed > 1; pinLed--)   {
    // Pone el pinLed en HIGH encendiendo el led
    digitalWrite(pinLed, HIGH);
    delay(pausa);
    // Pone el pinLed en LOW apagando el led
    digitalWrite(pinLed, LOW);
  }

  delay(pausa);

}
 
 






ArduinoErick MéndezBlink, LED