
Todo lo que necesitas saber sobre Entradas Digitales en Arduino guía completa
Uno de los aspectos más fascinantes (o tal vez el más) de Arduino y otros autómatas es su habilidad de interactuar con el entorno físico. Podemos, por ejemplo, efectuar mediciones de voltaje, obtener datos de diversos sensores, encender dispositivos o manejar motores y actuadores. Este tipo de interacción se logra principalmente a través de las entradas y salidas digitales y analógicas.
Interfaz de entradas digitales en Arduino
En Arduino, las entradas y salidas digitales comparten un mismo pin, por lo que son conocidas como I/O digitales. Esto implica que cada pin puede funcionar tanto como entrada como salida, aunque no simultáneamente. Para ello, es necesario configurarlo en el código.
La cantidad de I/O digitales disponibles en Arduino varía según el modelo, como se explicó en la entrada "¿Qué es Arduino? ¿Qué modelo comprar?". Por ejemplo, el Arduino UNO cuenta con 16 I/O digitales, mientras que el Arduino MEGA tiene 54.
En Arduino, los valores de alimentación más comunes son 0V y 5V, lo que significa que el umbral de tensión se encuentra cerca de 2.5V. Por lo tanto, si se mide una tensión entre 0 y 2.5V, Arduino devolverá una lectura LOW, y si la tensión medida está entre 2.5V y 5V, se obtendrá una lectura HIGH.
Manipulando Salidas Digitales en Arduino UNO
Examinando la disposición de los pines digitales en Arduino UnoPara entender mejor cómo están organizados los pines digitales en tu placa de Arduino, veremos una imagen ilustrativa como ejemplo. No obstante, esta información también es aplicable para cualquier otra placa de Arduino que puedas tener en tu poder.
De la imagen mencionada, podemos observar que los pines digitales en la placa de Arduino Uno están designados con números del 0 al 13. Estos pines pueden ser utilizados para recibir señales digitales de distintos sensores o dispositivos externos.
Como se expuso en la introducción a Arduino, cabe destacar que el Arduino Uno dispone de un total de 14 pines digitales y 6 pines analógicos. Además, es crucial tener en cuenta que la placa cuenta con un voltaje de entrada de 5V. Antes de utilizar los pines en Arduino, es fundamental definirlos y especificar si serán utilizados como entradas o salidas.
Guía para Programar los Pines Digitales de Arduino
Configuración de entradas digitales en Arduino
Para manejar las entradas digitales en Arduino utilizaremos el comando pinMode, el cual ya fue explicado en la entrada anterior dentro de la función void setup.
Si deseamos configurar el PIN 3 como una entrada, podemos hacerlo a través de la instrucción pinMode dentro de la función void setup de la siguiente manera:
Una alternativa para programar una entrada digital en Arduino es asignarle un nombre al PIN deseado, como por ejemplo PIN 3. De esta forma, podemos personalizar el nombre de nuestro PIN utilizando la instrucción pinMode dentro de la función void setup de la siguiente forma:
Interpretando SEÑALES Digitales en Arduino
Una vez que hayamos seleccionado los pines que queremos utilizar como entradas, es hora de empezar a utilizarlas. Para leer las entradas digitales en Arduino, debemos llamar a una segunda función dentro de "void loop".
La función digitalRead() de Arduino es fundamental para leer los valores de una entrada digital. Al llamar a esta función, se devolverá el valor de un pin específico, que puede ser 0 o 1. Esta función puede ser utilizada en una variedad de proyectos para determinar el estado de un dispositivo o sensor. Es importante configurar los pines en Arduino y declarar si serán entradas o salidas antes de utilizarlos.
A continuación, asignaremos una variable Terminal_3 al PIN 3 y otra variable llamada valor que almacenará el uno lógico (5V) o el cero lógico (0V) leído por Arduino desde la entrada digital.
Salida de señal digital
Los pines digitales en modo de salida pueden generar una señal digital de 0 o 1, también conocida como nivel bajo o alto. En el primer caso, el pin está conectado al GND del microcontrolador, mientras que en el segundo, está conectado a la fuente de alimentación VCC. Sin embargo, es importante recordar que un microcontrolador es un dispositivo lógico y no puede suministrar alimentación a otros dispositivos, a excepción de algunos casos raros. Este detalle es crucial al utilizar los pines digitales de un arduino.
En la imagen de arriba, se puede ver que cada pin tiene un máximo absoluto de 40mA y un máximo recomendado de 20mA. Si se superan estos límites, el microcontrolador puede dañarse seriamente. Por lo tanto, es importante tener en cuenta esta restricción al conectar dispositivos a los pines digitales. Solo se pueden conectar elementos de baja potencia, como LEDs y pequeños tweeters.
¿Qué ocurre si se conecta un dispositivo que requiere más potencia de la que puede proporcionar el pin? Es sencillo, se romperá. Incluso si se conectan varios dispositivos a diferentes pines, la potencia total no debe exceder la capacidad del microcontrolador. Es por esto que el uso de pines digitales se limita a enviar comandos a otros dispositivos, como relés o transistores, para conmutar cargas.
Finalmente, es importante destacar que los pines digitales no se utilizan para alimentar motores, bombillas, calentadores o módulos de radio potentes. Su función principal es enviar señales lógicas a otros dispositivos. En las próximas lecciones, discutiremos cómo utilizar los pines digitales para lograr diferentes funcionalidades en un proyecto de arduino.
Entendiendo el concepto de entrada digital
En el mundo de la tecnología, la señal digital es una variación de voltaje que se encuentra en un rango específico, que va desde -Vcc hasta +Vcc. A diferencia de la señal analógica, no toma valores intermedios, sino que se dispone únicamente en dos estados.
El valor de -Vcc, es asociado con el número 0 o con el estado LOW en términos lógicos. Mientras que el valor +Vcc, se relaciona con el número 1 o con el estado HIGH.
Aunque en el mundo físico las referencias de tensión son continuas, en la digitalización de una señal, esta se discretiza, es decir, se divide en valores determinados. De esta manera, se obtiene un valor digital que se expresa en los dos estados mencionados anteriormente, LOW y HIGH.
En la práctica, una entrada digital se encarga de comparar la medición con un valor de tensión denominado umbral. Si el valor medido es superior al umbral, se devuelve HIGH, mientras que si es menor, se obtiene LOW. Cabe destacar que el valor del umbral puede variar de un dispositivo a otro, e incluso puede cambiar con el tiempo.
Código en Arduino
Realizar la lectura en Arduino es muy sencillo. Simplemente configura un I/O digital como entrada utilizando pinMode() y haz la lectura con digitalRead().
Cuando se configuran los pines como entradas, funcionan como resistencias de alto valor (alrededor de 100 megaohmnios) y tienen un estado de alta impedancia. Esto quiere decir que la corriente que circula por ellos es muy pequeña.
Aunque los pines de Arduino están configurados por defecto como entradas, es recomendable configurarlos explícitamente como tal, ya que es una buena práctica a seguir.
Explorando lecturas de voltaje superiores a V
Es importante tener en cuenta que jamás se debe aplicar un voltaje mayor a 5V a un pin de Arduino, ya que esto puede dañarlo de manera permanente. Si se desea medir una tensión por encima de los límites de alimentación, lo más recomendable es utilizar un divisor de tensión de forma sencilla.
Sin embargo, es importante destacar que este método no es adecuado para leer voltajes superiores a 35V o para dispositivos de corriente alterna sin tener un conocimiento profundo sobre el tema. El uso de este sistema puede provocar que las resistencias no soporten la carga y se dañen.
Por ello, es fundamental seguir las precauciones necesarias y utilizar correctamente el divisor de tensión. Con esta configuración, el pin digital de Arduino recibirá un voltaje que oscila entre 0 y 3,84V, lo cual es suficiente para activar el umbral de tensión, y siempre por debajo del límite de alimentación.