arduino-salidas-digitales

En tutoriales anteriores hemos visto cómo usar las entradas digitales y las entradas analógicas para recibir señales del mundo. Así, podemos leer el estado de un pulsador, realizar la lectura de sensores, leer el valor de una resistencia o la posición de un potenciómetro.

Sin embargo, si solo pudiéramos realizar lecturas los automatismos tendrían mucha menos utilidad de la que realmente tienen. Ahora vamos a aprender a emplear las salidas de Arduino para poder realizar acciones en el mundo. De forma similar a como hicimos con las entradas, vamos a empezar por las salidas digitales dado que son más sencillas que las analógicas.

Salidas digitales en Arduino

Recordaremos que una señal digital puede variar únicamente entre dos valores, que denominamos -Vcc y +Vcc. Una salida digital es un dispositivo que permite variar su tensión a uno de estos dos valores mediante programación, y por tanto nos permite realizar acciones con el entorno.

En Arduino, en general, los voltajes -Vcc y +Vcc corresponden con 0V (GND) y 5V. Sin embargo, algunos modelos de Arduino operan a 3.3V, como por ejemplo algunos Mini, Nano, y las placas basadas en procesadores ARM como Arduino Due.

Todos los pines digitales de Arduino pueden actuar como salidas digitales (por ello se denominan I/O, input y output). Pero conviene destacar que los pines analógicos también pueden usarse como entradas y salidas digitales.

El número exacto de salidas digitales depende del modelo de placa que estemos usando, como vimos en la entrada ¿Qué es Arduino? ¿Qué modelo comprar?. En resumen, Arduino Uno y Nano tienen 22 pines que podemos usar como salidas digitales, Arduino Mini tiene 20, y tenemos hasta 70 salidas digitales en el modelo Mega. Esto son cifras más que respetables, superiores a la mayoría de automatismos de tipo industrial.

Intensidad máxima de una salida digital

En general las salidas digitales de autómatas no están pensandas para proporcionar potencia, si no para interactuar con electrónica u otros autómatas.

La intensidad máxima que puede dar un pin es de 40 mA, si bien el valor recomendado es de 20mA. Además hay restricciones adicionales en cuanto a la potencia, como que la suma total de todas las salidas debe ser inferior a 300 mA, y a su vez no pueden superar 150 mA por puerto.

Esta potencia es suficiente para encender un led, un pequeño servomotor de 9g, o encender algún sensor, pero no es suficiente para alimentar cargas mayores. Si queremos mover una carga superior, como un motor de corriente continua, un servo, o incluso un rele, tendremos que emplear una etapa de amplificación, como un transistor BJT.

No es conveniente forzar los límites de potencia de forma prolongada, la placa podría calentarse y dañarse. El límite de 20 mA por salida significa que, para un voltaje de 5V, la resistencia del dispositivo que queramos alimentar no debe ser inferior a 200 ohmnios.

Como norma general, salvo que sepamos lo que estamos haciendo, siempre que vayamos a conectar un dispositivo a cualquier salida lo haremos a través de una resistencia de al menos 300 ohmnios.

Montaje

Para este tutorial no es necesario ningún montaje. Sin embargo, podemos verificar el correcto funcionamiento de las salidas digitales simplemente midiendo con un polímetro la tensión entre la salida digital y GND.

arduino-salida-digital-esquema

Código

El código para encender es similar al que vimos en el tutorial Nuestro primer programa en Arduino. En realidad es exactamente igual, cambiando el 13 por el pin de la salida que queramos activar. Recordaremos que el pin 13 es un pin especial, que está conectado con el led integrado en la placa.

Así el siguiente código, que es una modificación del archivo de ejemplo Blink, enciende y apaga una salida digital.

El siguiente código, que vimos en la entrada del puerto serie de Arduino, recibe un caracter a través del puerto serie para encender o apagar una señal digital desde el ordenador.

A través del puerto serie enviamos un caracter. Si escribimos 0 la salida se apaga, y si escribimos 1 se enciende.

Hasta aquí los aspectos básicos de las salidas digitales en Arduino. En futuras entradas veremos las salidas analógicas, y profundizaremos en aspectos más avanzados de las salidas digitales.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino