Advertisement
  1. Computer Skills
  2. Electronics

Arduino 101: haz que un LED parpadee con un botón

by
Read Time:12 minsLanguages:

Spanish (Español) translation by Juliana Carvajal (you can also view the original English article)

En mi último tutorial, expliqué por qué es fácil trabajar en proyectos electrónicos con Arduino. En este tutorial usaré una placa Arduino para hacer un circuito simple, uno que pueda encender una luz LED. Usando un código más básico haré que la misma luz LED parpadee. Finalmente, agregaré un botón y lo usaré para acelerar el parpadeo.

Algunos de los diagramas de este artículo se desarrollaron utilizando el programa Fritzing.


Suministros

Arduino componentsArduino componentsArduino components
Componentes de Arduino

En este tutorial utilizaré los siguientes componentes:

Puedes comprar estos artículos a través de una tienda de electrónica local, como Fry's (si vives en los EE. UU.), O a través de Internet desde el sitio web de Arduino, Amazon, Little Bird Electronics o incluso eBay.

Alternativamente, puedes elegir cualquiera de estas otras placas Arduino para seguir este tutorial:

También pueden funcionar otras placas Arduino o placas compatibles con terceros. Sin embargo, pueden requerir un conector USB diferente. Asegúrate de que tu placa Arduino pueda conectarse a tu computadora usando un cable USB adecuado.

Además, asegúrate de haber descargado e instalado la última versión del IDE de Arduino en tu computadora. La instalación del IDE de Arduino puede requerir algunos pasos más en computadoras con Windows porque necesitarás instalar algunos controladores. Para obtener más instrucciones, sigue las guías de instalación en el sitio web de Arduino.

Quizás te estés preguntando cómo vamos a encender una luz cuando no hemos incluido una en la lista de componentes. ¡Eso es fácil! Las placas Arduino generalmente están equipadas con un LED integrado, que podemos usar en nuestros proyectos. Para mantener nuestro circuito lo más sencillo posible vamos a utilizar este LED.

Arduino boardArduino boardArduino board
Nuestro código va a funcionar con la luz marcada con la letra L al lado.

1. Configura un nuevo proyecto

Para comenzar, conecta tu placa Arduino a tu computadora usando el cable USB apropiado. Notarás que una o varias luces pueden encenderse momentánea o permanentemente. Arduino Uno tiene cuatro luces LED integradas. Si tu placa tiene más de un LED, las luces parpadeantes indican que está conectada a una fuente de alimentación y se está iniciando. Arduino tarda unos cinco segundos en estar listo para interactuar con él.

Inicia el IDE de Arduino en tu computadora. Se te presentará un espacio de trabajo vacío donde escribirás el código necesario para programar tu placa Arduino.

A continuación, debes indicarle al IDE de Arduino a qué placa se va a conectar. En el menú, selecciona Herramientas > Placa y luego selecciona tu placa Arduino de la lista. Si haz optado por utilizar una placa Arduino oficial, su nombre debería aparecer en la lista para que lo selecciones. Las placas de terceros suelen ser equivalentes a otra placa Arduino oficial. Si sabes qué tablero es, continúa y selecciona ese de la lista. De lo contrario, consulta su manual para averiguar qué modelo de la lista debería funcionar con tu placa específica.

Finalmente, debes seleccionar el puerto correcto para la comunicación con tu placa Arduino. Una vez más desde el menú, ve a Herramientas > Puerto serie y selecciona el puerto serie correcto. En Mac, el puerto serie correcto suele aparecer como /dev/tty.usbmodem1421 o similar. En Windows, la conexión debe aparecer como un puerto COM.


2. Encendido de la luz

Arduino está equipado con muchos conectores de entrada y salida diferentes, a los que nos referiremos como pines IO. En este momento, queremos usar un pin IO digital para indicarle a la luz LED que se encienda. Debido a que también estamos usando la luz LED incorporada, los fabricantes de Arduino ya han decidido por nosotros el pin IO apropiado. Es el pin 13, que, por diseño, se ha adjuntado a la luz LED incorporada.

Copia el siguiente código y pégalo en tu IDE de Arduino:

En el código, he hecho uso de dos funciones de Arduino: pinMode(pin_number, mode) y digitalRead(pin_number, value).

Llamaré a la función pinMode() dentro de setup() para indicarle a Arduino que trate tu pin-13 como una salida. Luego, al llamar a la función digitalWrite() dentro de loop(), puedo activar la señal HIGH en el pin-13 que enciende la luz LED. 

Haz clic en el botón Cargar para insertar el código anterior en tu placa Arduino. Siempre que se seleccione la placa Arduino y el puerto serie correctos, deberías ver una barra de progreso seguida de un mensaje de Carga finalizada.

Mientras se carga el código, es posible que veas diferentes luces parpadeando, lo que indica una comunicación exitosa entre tu PC y la placa Arduino. En este punto, la luz LED incorporada debe estar encendida permanentemente.


3.Haz que parpadee

Haz completado el equivalente Arduino de "Hola mundo". Ahora vas a hacer que la luz parpadee introduciendo la función delay() en el código anterior. La función delay() acepta un valor entero, igual a un período de tiempo en milisegundos. 1000 milisegundos es igual a un segundo.

La función delay() mantiene la luz LED encendida y también la apaga durante un segundo durante cada iteración de la función loop(). Como la función loop() se repite constantemente, este código encenderá y apagará la luz LED repetidamente.

Digital Wave diagramDigital Wave diagramDigital Wave diagram
Diagrama de onda digital

Usando un diagrama de ondas digital, puedo explicar libremente cómo ha cambiado el comportamiento original. Antes de introducir la función de retardo en el paso tres, estaba produciendo una onda digital que se parecía al diagrama de arriba. Cada ciclo de cada iteración de la función loop() se dedicó a mantener encendida la luz LED.

Usando la función delay(), nuestro código divide cada ciclo en dos partes, haciendo que cada iteración dure dos segundos. Durante el primer segundo, el LED se enciende y, durante el segundo siguiente, se apaga.

Digital Wave diagram showing the delay() functionDigital Wave diagram showing the delay() functionDigital Wave diagram showing the delay() function
Esta figura muestra cómo se usa la función delay() para mantener el estado actual.

4. Cambia el tiempo de retardo con un botón

Hasta este punto, el comportamiento de este proyecto Arduino ha sido muy bien impulsado por el código que hemos escrito. Sin embargo, una vez que se carga y se ejecuta, no tenemos ninguna forma de interactuar con este circuito electrónico. Esto es muy estático y lo voy a cambiar agregando un botón que me permitirá cambiar la velocidad de parpadeo. En este paso, necesitaré usar un tablero de circuitos. Este es un buen momento para ver qué es una placa de pruebas y cómo se puede utilizar.

Tablero de circuitos

Un tablero de circuitos es una placa de creación de prototipos sin soldadura que se utiliza para hacer circuitos electrónicos temporales, principalmente para experimentar con diferentes diseños de placas de circuito.

Los tableros de circuitos modernos están formadas por una pieza sólida de plástico perforado, con muchos clips de cobre debajo de su superficie para realizar conexiones eléctricas. Los numerosos orificios en la superficie de estas placas permiten insertar diferentes componentes electrónicos sin necesidad de soldar ninguno en su lugar.

Los protoboards comunes tienen dos columnas, cada una con sus propias filas de cinco agujeros. Cualquier agujero está conectado a todos los demás agujeros de la misma fila, pero no a ninguno de los agujeros de la columna adyacente. En otras palabras, si dos cables no se colocan en la misma fila de la misma columna, entonces los dos no están conectados entre sí. Esta configuración nos permite compartir una sola conexión desde un componente a través de otros cuatro puntos de conexión en la misma fila.

La razón de tener dos o más columnas en la misma placa es permitir que se conecten múltiples circuitos integrados (IC). Los circuitos integrados generalmente están conectados en ambas columnas de una tabla de circuitos porque tienen más de dos pines en ambos lados, como se ilustra en el siguiente diagrama.

40-pin IC attached to a breadboard.40-pin IC attached to a breadboard.40-pin IC attached to a breadboard.
IC de 40 pines conectado a una placa de pruebas.

A ambos lados de la mayoría de las tablas, hay tiras largas que se utilizan para compartir el poder. Estas bandas a menudo se denominan bandas de bus o rieles de alimentación, ya que se extienden a lo largo de toda la placa. Los rieles de alimentación en algunas placas te permitirán conectar conexiones tanto positivas como a tierra. A diferencia de las filas normales, todos los orificios a lo largo de la placa están conectados entre sí.

Power rails on breadboardPower rails on breadboardPower rails on breadboard
Los rieles eléctricos suelen estar marcados con líneas rojas y azules a lo largo de toda la tabla.

Al comprar una tabla de circuitos, es una buena idea elegir el tipo con ranuras a ambos lados de la placa. Estas ranuras se pueden usar para unir varias placas de prueba para crear un espacio de trabajo más grande. Una tabla de circuitos de buena calidad está marcada con números y letras, lo que facilita la identificación de cada fila y columna.

Paso 1

Comienza colocando el botón pulsador y conectándolo con los puentes de alimentación de la placa Arduino. Arduino Uno puede generar dos niveles de potencia, 3 voltios y 5 voltios. Para este circuito, necesitaremos usar el riel de 5V. La razón por la que usaría uno sobre el otro depende de los componentes que vaya a conectar. Algunos componentes pueden necesitar un voltaje de alimentación más bajo para funcionar, de ahí la salida de 3V.

Circuit with Arduino and breadboardCircuit with Arduino and breadboardCircuit with Arduino and breadboard
Circuito con Arduino y protoboard

En el diagrama de arriba, tenemos un circuito completo. Hemos conectado los pines superiores del botón pulsador tanto al pin de 5V, en el Arduino, como a la resistencia de 10K. Esto luego se conecta al pin de tierra (GND) en nuestro Arduino. Nuestro tercer cable (en amarillo) se conecta al pin digital-2 y llevará la señal ON a la placa Arduino.

Resistencia

El propósito de una resistencia es ralentizar la corriente eléctrica, a medida que la corriente pasa a través de ella, lo que limita la cantidad de corriente que fluye a través del circuito. Esto se logra fabricando resistencias a partir de materiales con una propiedad de baja conductividad. La resistencia se mide en ohmios y se puede determinar a partir de la siguiente ecuación:

resistance (in ohms) = power or voltage (in volts) / current (in amps)resistance (in ohms) = power or voltage (in volts) / current (in amps)resistance (in ohms) = power or voltage (in volts) / current (in amps)
resistencia (en ohmios) = potencia o voltaje (en voltios) / corriente (en amperios)

Supongamos que quiero conectar una luz LED a una fuente de alimentación de 9V, pero el LED solo puede tolerar 30 miliamperios de corriente. Según la ecuación anterior, necesitaremos usar una resistencia de 300 ohmios para limitar la corriente que fluye a través de la luz LED.

9 volts / 0.03 milli-amps = 300 Ohms9 volts / 0.03 milli-amps = 300 Ohms9 volts / 0.03 milli-amps = 300 Ohms
9 voltios / 0.03 miliamperios = 300 ohmios

Hay tres categorías principales de resistencias:

  1. Resistencias fijas, como la que estamos usando aquí,
  2. Resistencias variables, comúnmente conocidas como potenciómetros, y
  3. Resistencias variables que dependen de cualidades físicas, como temperatura (termistores) o luz (células fotovoltaicas)

Aunque las resistencias sirven para limitar el flujo de corriente, existen diferentes tipos de resistencias en cada una de esas tres categorías para diferentes aplicaciones.

La mayoría de las resistencias fijas están marcadas con bandas de colores para ayudarnos a determinar su resistencia. Desde la izquierda, las dos primeras bandas dan el primer y segundo dígitos del valor de resistencia. La tercera banda da el factor de multiplicación. Finalmente, la cuarta banda da la tolerancia de la resistencia.

Resistor color codesResistor color codesResistor color codes
Códigos de color de resistencia

A partir de los colores de la resistencia anterior, podemos resolver lo siguiente:

  • Marrón (primer dígito) = 1
  • Negro (segundo dígito) = 0
  • Naranja (multiplicador) = 10^3
  • Oro (tolerancia) = +/- 5%
  • 10 * 10^3 = 10,000 ohmios o 10 killo ohmios o resistencia de 10K

Aquí está la tabla de colores completa. Para obtener más información, consulta Wikipedia sobre códigos de colores de resistencias.

Color Dígito Multiplicador Tolerancia
Negro 0 x10^0 ±1%
Marrón 1 x10^1 ±2%
Rojo 2 x10^2 -
Naranja 3 x10^3 (±5%)
Amarillo 4 x10^4 ±5%
Verde 5 x10^5 ±0.25%
Azul 6 x10^6 ±10%
Violeta 7 x10^7 ±1%
Gris 8 x10^8 ±0.05% (±10%)
Blanco 9 x10^9 -
Oro - x10^–1 ±5%
Plata - x10^–2 ±10%
Ninguno - - ±20%

El propósito de la resistencia

Conecté el cable de señal amarillo del pin digital 2 a una pata del botón. Esa misma pata del botón, en su otro lado, se conecta a través de la resistencia de 10K al suelo para formar un circuito completo. Cuando no se presiona el botón, Arduino lee la corriente de viaje como BAJA.

Una vez que se presiona el botón, se establecerá una conexión entre el pin 2 y el 5V positivo a través de las patas del botón. Dado que la electricidad siempre viajará por el camino de menor resistencia, evitará pasar por la resistencia y fluirá a través del pin 2, lo que da como resultado una lectura ALTA por parte de la placa Arduino.

Paso 2

Ahora, terminemos el Paso 4 y hagamos que la luz LED parpadee más rápido cuando presionemos el botón.

Esta vez, el código le indica a Arduino que trate tu pin-2 como una fuente de entrada llamando al pinMode(button_pin, INPUT) dentro de la función setup(). Esto nos permite leer el estado del botón pulsador más adelante dentro de la función loop() llamando a digitalRead(button_pin). Obtener el estado del botón nos permite determinar si la función de retardo debe llamarse con un valor menor.

Ahora continúa y carga el código anterior en tu Arduino, y luego presiona el botón para ver que la luz LED parpadea más rápido.


Solución de problemas

Si has llegado hasta aquí y el código anterior no te funciona, puede haber varias razones para esto:

  • Esto puede parecer obvio, pero asegúrate de que tu Arduino esté conectado a una fuente de alimentación y que el LED de ENCENDIDO esté encendido.
  • Asegúrate de que todos los pines y cables, la resistencia y el botón pulsador estén firmemente conectados a tu placa Arduino y a la tabla de circuitos. Si no estás seguro de la continuidad de tus conexiones, usa un multímetro para medir la continuidad.
  • Asegúrate de que todas las conexiones a la placa Arduino estén conectadas a las entradas digitales correctas.
  • Si tu problema persiste, consulta la guía de solución de problemas de Arduino.

Conclusión

The finished projectThe finished projectThe finished project
El proyecto terminado

En este tutorial, aprendiste algunas técnicas básicas en el uso de una placa Arduino, una placa de circuitos, resistencias y botones junto con el IDE de Arduino. También aprendiste cómo se puede usar la función delay() para mantener un estado durante un período de tiempo determinado.

Si tienes alguna pregunta sobre este tutorial, déjala en la sección de comentarios, a continuación.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.