Led parpadeante con Arduino UNO

Led parpadeante con Arduino UNO

El proyecto del led parpadeante es el primer proyecto que cualquier persona iniciandose en Arduino debería intentar. Voy a dar la version completa y una version simplificada para aquellos que no tienen los componentes aun y quiere intentarlo de todas maneras. Siendo que éste es supuestamente el primer proyecto para ustedes, voy a tomarme el tiempo de explicar algunas cosas básicas para ir formando las bases para futuras implementaciones más complejas. En las categorías de “Modulos” y “Shields”, no me tomo el tiempo de explicar lo básico de Arduino, por lo que toda persona iniciándose con las placas Arduino debería tratar de ir poco a poco hasta que se sienta cómoda con los conceptos más basico.

Los componentes necesarios

Esta es la lista de componentes necesarios para replicar el proyecto exactamente como lo describo y como se ve en la foto:

  • Arduino UNO (o Arduino MEGA que para este proyecto es lo mismo)
  • Cable USB para Arduino
  • Led (cualquiera, no nos pondremos demasiado molestos por ahora y se convertirá en el led parpadeante)
  • Resistencia de 330Ω (o similar, 220Ω a 1KΩ funciona)
  • Breadboard o protoboard
  • 2 cables interconexion macho-macho

 

¿Que es un led?

Un led es un diodo (componente electrónico) que emite luz, de sus siglas en Ingles “Light-Emitting Diode”. Muchos los ven como simples luces, y está bien que así sea, pero además tienen características eléctricas especiales que quienes los usan en proyectos deberian considerar. Lo más importante es que los led no deberian conectarse directamente a positivo y negativo para encenderlos, sino que deberían siempre ir acompañados de una resistencia. La resistencia variará dependiendo del led y del voltaje con el que lo alimentemos, pero en 5v, una resistencia entre 220Ω y 1kΩ debería dar suficiente brillo (a mayor resistencia, menor brillo).

Otra característica es que los led son polarizados, es decir que cada pata del mismo tiene un nombre y se conecta de una manera. La pata más larga corresponde al ánodo y usualmente va al positivo o + del circuito, y la pata más corta es el cátodo y usualmente va conectado al negativo o – del circuito.

led parpadeante

Conectando el led parpadeante

Conecte primero todos los componentes y luego el Arduino a su computadora. Repase las conexiones una vez terminado para evitar cortocircuitos que podrían dañar su Arduino.

Versión con todos los componentes:

  1. Conecte primero el led en el breadboard de manera de que use 2 lineas diferentes. Para su referencia las lineas están numeradas por lo que cada pata del led deberá quedar en una linea con un numero diferente. Para nuestro ejemplo yo lo haré conectando la pata más larga (anodo o +) en la fila 5, y la pata más corta (cátodo o -) en la fila 7.
    led en breadboard
  2. Luego conectaré la resistencia de manera de que una pata quede en la misma fila 7 del cátodo del led y la otra pata en la fila 15.
    led y resistencia en breadboard
  3. Por ultimo voy a conectar mi Arduino UNO de la siguiente manera: con mi cable negro (el color no importan pero si las conexiones), voy a conectar cualquier pin GND de mi Arduino (tiene varios), con el extremo de la resistencia que está en la fila 15; y mi cable amarillo lo usaré para conectar el pin 8 de mi Arduino con el ánodo del led que está en la fila 5.
    led y resistencia conectados al Arduino
  4. Por ultimo conecto mi Arduino con el cable USB a la computadora.

 

Versión sin componentes (solo con un Arduino UNO o MEGA):

  1. Para la version sin componentes solo necesitamos conectar nuestro Arduino a la computadora mediante el cable USB. Para reemplazar el led y la resistencia que menciono en el otro ejemplo, tanto el Arduino UNO como el MEGA poseen un led conectado al pin 13.

El programa o Sketch

Los programas en Arduino se llaman Sketch. Un Sketch es guardado en un archivo con extensión .ino. Deberá descargar e instalar el Arduino IDE de la página de Arduino, o haciendo click aqui. Vienen versiones para Mac OS y para Linux si fuera necesario. Luego de instalarlo ejecute el IDE y al comenzar encontrará una pantalla como la siguiente:

Arduino IDE

Copie el siguiente código y péguelo reemplazando lo que se encuentra en el editor:

// Colocamos el pin del led en una constante para facilitar el trabajo
#define LED_PIN 8

void setup() {
  // Iniciamos el pin del led como salida
  pinMode(LED_PIN, OUTPUT);
  // Apagar led (queremos comenzar con el led apagado)
  digitalWrite(LED_PIN, LOW);
}

void loop() {
  // Prender led
  digitalWrite(LED_PIN, HIGH);
  // Esperar 1s (1000 milisegundos = 1 segundo)
  delay(1000);

  // Apagar led
  digitalWrite(LED_PIN, LOW);
  // Esperar 1s (1000 milisegundos = 1 segundo)
  delay(1000);
}

Para poder subirlo a su Arduino, deberá primero configurar su Arduino IDE (programa) para que se comunique con su placa Arduino conectada por USB. Para eso haga click en Tools y luego en Port. Deberá ver al menos 1 puerto como COM2 o COM5 (el numero puede variar y está bien). Seleccione el COMx que le aparece. Luego haga click nuevamente en Tools y luego en Board. Elija el tipo de Arduino que posee. En mi caso Arduino Uno. Finalmente, y ya con el código que les compartí pegado en el editor, haga click en el boton con la flecha -> que se encuentra en el area superior izquierda del programa, junto a otro boton con el símbolo .

Si todo salió bien, al cabo de unos segundos el led comenzará a parpadear, manteniéndose 1 segundo prendido y 1 segundo apagado. Felicitaciones! Acaba de finalizar su primer proyecto!!

Versión sin componentes:

Para la version sin componentes solo debe reemplazar la linea que dice:

#define LED_PIN 8

Por una que diga:

#define LED_PIN 13

13 es el pin interno que los Arduinos tienen y funcionará igualmente aunque sin tanta sofisticación. En este caso el led parpadeante será uno que se encuentra en las mismas placas Arduino.

Entendiendo el Sketch o programa

El programa es simple y podemos extendernos un poco comenzando por ejemplo a explicar la estructura básica de todo Sketch (programa) Arduino. La estructura básica es la siguiente:

void setup() {
  ...
}

void loop() {
  ...
}

Todo programa deberá tener una sección “setup” y otra “loop”. La estructura mostrada responde a la declaración típica de programas escritos en Lenguaje C. El Arduino IDE nos permite programar nuestros Arduino(s) en Lenguaje C/C++. C++ es un lenguaje orientado a objetos basado en el Lenguaje C. Ya que C++ contiene a C (casi en su totalidad), usted podrá programar tanto en C como en C++.

Para referencias futuras, Arduino invocará una sola vez y al comienzo de su ejecución, la función de nombre setup, y lo que se encuentre dentro de ella. Por otro lado, luego de ejecutar lo que está en setup(){…}, Arduino ejecutará la función loop en forma continua, es decir la repetirá indefinidamente.

Esto significa que setup es donde usualmente pondremos los preparativos para nuestro proyecto, y en loop pondremos el codigo que queremos ejecutar constantemente.

Las primeras lineas son las siguientes:

// Colocamos el pin del led en una constante para facilitar el trabajo
#define LED_PIN 8

En ellas encontramos primero una linea que comienza con // y un texto que parece un comentario. En efecto comenzar con // nos permite luego poner cualquier comentario de referencia que será ignorado por Arduino, pero puede ser util para recordar cuestiones relativas a ese especifico lugar donde el comentario fue agregado. Esta manera de comentar en el código solo permite comentarios de 1 linea (si queremos mas de una linea con este estilo de comentario deberemos repetir el simbolo // en cada linea que agreguemos).

La segunda linea corresponde a la definicion de una constante. Las constantes son utiles para referirnos a un dato que no cambiará, y que repetiremos a lo largo de nuestro programa. En este caso el nombre de la constante es LED_PIN y su valor 8. Si quisieramos cambiar el led parpadeante y conectarlo a otro pin en nuestro Arduino, gracias a la constante solo deberiamos cambiar esta linea por el numero de pin correspondiente al led parpadeante.

En la funcion setup() {…} tenemos:

  // Iniciamos el pin del led como salida
  pinMode(LED_PIN, OUTPUT);
  // Apagar led (queremos comenzar con el led apagado)
  digitalWrite(LED_PIN, LOW);

He agregado comentarios para explicar un poco lo que hacemos linea por linea. En este caso cada vez que vamos a usar un pin en un proyecto Arduino, deberemos avisarle si el mismo será usado como salida o entrada. En este caso salida (OUTPUT en Inglés). El pin 8 que usamos es un pin de entrada y salida digital. Estos pines pueden tomar 2 valores que son HIGH y LOW (alto y bajo) que corresponden a los voltajes eléctricos 0v y 5v aprox. La segunda linea le dice a Arduino que ponga el pin 8 en LOW que para nosotros significa apagado.

Luego en la función loop() {…} tenemos:

  // Prender led
  digitalWrite(LED_PIN, HIGH);
  // Esperar 1s (1000 milisegundos = 1 segundo)
  delay(1000);

  // Apagar led
  digitalWrite(LED_PIN, LOW);
  // Esperar 1s (1000 milisegundos = 1 segundo)
  delay(1000);

Siguiendo el mismo esquema y explicaciones, lo que haremos es prender el led, esperar, apagarlo y esperar. La funcion delay() se usa para pedirle a Arduino que espere un tiempo. El tiempo a esperar se le pasa a la función a modo de numero que representa la cantidad de milisegundos (milésimas de segundo) a esperar. Un valor de 1000 equivale a 1 segundo.

Y eso es todo! Para mayor referencia les sugiero investigar más sobre los Lenguajes C y C++. Para una referencia de las funciones propias de Arduino les dejo el siguiente link que por el momento solo se encuentra en Inglés: Arduino Reference

 

Deja un comentario