Correo: [email protected] - Teléfono: +56979962128

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 microcontroladores 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 voltaje 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 pueden usarse como entradas y salidas digitales.

El número exacto de salidas digitales depende del modelo de placa que estemos usando. 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 microcontroladores de tipo industrial.

Voltaje máximo de una señal de salida

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

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.

Código

El código para encender un led 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 (En este caso, el pin 2). Recordaremos que el pin 13 es un pin especial, que está conectado con el led integrado en la placa. Debido a este cambio, debemos armar un circuito como el siguiente:

Salidas digitales

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

const int pin = 2;
 
void setup() {
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop(){
  digitalWrite(pin, HIGH);   // poner el Pin en HIGH
  delay(1000);               // esperar un segundo
  digitalWrite(pin, LOW);    // poner el Pin en LOW
  delay(1000);               // esperar un segundo
}

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.

const int pin = 2;
int option;

void setup(){
  Serial.begin(9600);
  pinMode(pin, OUTPUT); 
}
 
void loop(){
  //si existe información pendiente
  if (Serial.available()>0){
    //leemos la opcion
    char option = Serial.read();
    if (option == '0' )  //si el valor es 0
    {
         digitalWrite(pin, LOW);  //apagamos el pin
    }
    else if (option == '1')
    {
         digitalWrite(pin, HIGH);  //encendemos el pin
    }
    delay(200);
  }
}

Con el Kit de Prototipado

El Kit de Prototipado, gracias a sus conexiones internas, nos simplifica el circuito que tenemos que armar. Debido a que sus leds ya vienen conectados a tierra e incluyen su resistencia necesaria, solo necesitamos conectar un cable hembra-hembra directamente desde el pin que programamos (o sea, el pin 2), como vemos en la siguiente imagen.

Salidas Digitales KitHasta aquí los aspectos básicos de las salidas digitales en Arduino.

Preguntas frecuentes

¿Qué es una salida digital en Arduino?

Es un pin configurado para entregar tensión en dos estados posibles, alto o bajo. Es lo que permite al microcontrolador actuar sobre el mundo: encender un LED, activar un relé o disparar un actuador.

¿Cuál es el voltaje máximo de una salida digital de Arduino?

La salida entrega la tensión de trabajo de la placa, 5V en un Arduino UNO. También hay un límite de corriente por pin que conviene respetar: para cargas mayores hay que usar un transistor o un relé.

¿Qué diferencia hay entre entradas y salidas digitales?

Las entradas leen el estado del mundo —un pulsador, un sensor— y las salidas actúan sobre él. Si el microcontrolador solo pudiera leer, tendría mucha menos utilidad de la que realmente tiene.

¿Cómo configuro un pin como salida?

Declarándolo como OUTPUT en la función setup, y luego usando digitalWrite en el bucle para ponerlo en HIGH o LOW según convenga.

Aprende esto en un curso

Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial: