0 Items

Arduino se ha vuelto famoso por permitirnos controlar cualquier variable, proceso o fenómeno del mundo que nos rodea. Sin embargo, encontraremos que para poder realizar cualquier proyecto es indispensable conocer el funcionamiento de las salidas digitales.

En este tutorial estudiaremos la forma en que se maneja la programación de las salidas digitales de Arduino y cómo se puede interactuar con ciertos dispositivos de potencia mediante los pines de nuestro Arduino.

Comenzaremos por estudiar las funciones que forman parte del API para manejar las salidas digitales y luego nos enfocaremos un poco en información práctica.

pinMode – Configuración de un pin como salida digital

Antes de poder utilizar un pin como salida digital, debemos configurarlo para que se comporte de esta forma. Arduino dispone de una función específicamente diseñada para configurar pines como entradas o salidas: pinMode().

La función pinMode() configura el pin especificado para comportarse como entrada o salida. Cuando configuramos una entrada, podemos especificar que se habiliten resistencias pull-up internas o que sea una entrada sin pull-ups.

Si quieres conocer más sobre el término pull-up y pull-down te recomendamos leer nuestro tutorial sobre la conexión de botones con Arduino.

La sintaxis para usar la función pinMode() es la siguiente:

pinMode(pin, mode)

Los parámetros que recibe esta función son los siguientes:

  • pin: El pin cuya operación se desea configurar como entrada o salida
  • mode: Una constante que puede ser INPUT, OUTPUT o INPUT_PULLUP

Ejemplo: Para poder utilizar un pin como salida, es necesario pasar el como segundo parámetro la constante output. Por ejemplo, para configurar el pin 13 como salida utilizamos:

pinMode(13, OUTPUT);

Normalmente la función pinMode se llama dentro de la función setup, mientras iniciamos todos los dispositivos de hardware de nuestra tarjeta Arduino. En el programa básico de parpadeo de led podemos ver como se usa esta función para configurar como salida el pin 13 de la tarjeta Arduino Uno, donde se encuentra conectado el LED.

void setup() {
  pinMode(13, OUTPUT);    // configura pin 13 como salida
}

digitalWrite – Escribiendo un valor en un pin de salida digital

Una vez que tenemos configurado un pin como salida, podemos determinar desde nuestro programa si este tendrá presente un valor alto (HIGH) o bajo (LOW). Para esto utilizaremos la función digitalWrite().

Hay que tomar en cuenta que en tarjetas que funcionen a 3.3 volts, el valor alto será de 3.3 volts, mientras que en las que funcionan a 5 volts, el valor alto será de 5 volts. El valor bajo siempre será de 0 volts (GND).

La sintaxis para usar la función digitalWrite() es la siguiente:

digitalWrite(pin, value)

Los parámetros que recibe esta función son los siguientes:

  • pin: El pin cuya operación se desea configurar como entrada o salida
  • value: Una constante que puede ser HIGH o LOW dependiendo de si deseamos que la salida tenga un estado alto o bajo.

En cualquier parte de nuestro programa podemos llamar a la función digitalWrite() para cambiar el estado del pin que seleccionemos. En el ejemplo de parpadeo de led, se llama a esta función para alternar el estado del pin 13

void setup() {
  pinMode(13, OUTPUT);    // configura pin 13 como salida
}

void loop() {
  digitalWrite(13, HIGH); // pone en alto el pin 13
  delay(1000);            // espera 1 segundo
  digitalWrite(13, LOW);  // pone en bajo el pin 13
  delay(1000);            // espera 1 segundo
}

Limites y curiosidades de las salidas digitales

Además de conocer el funcionamiento de las salidas digitales de Arduino resulta conveniente también ser consientes de las limitaciones que tienen, de manera que evitemos dañar nuestros pines de I/O, dejando nuestra placa inservible.

A continuación algunos puntos a tomar en cuenta:

  • Las salidas digitales de un Arduino Uno Mega o Leonardo (en general las placas basadas en AVR) pueden proporcionar una corriente de hasta 40 mA. Si intentamos conectar algo que utilice más corriente, corremos el riesgo de dañar nuestra placa. Para conectar leds y otros circuitos lógicos es más que suficiente.
  • Por defecto los pines de la placa se configuran como entradas, esto es así por que nos ayuda a proteger el Arduino de cortos circuitos accidentales.
  • En placas que funcionan a 3.3 volts las salidas tienden a ser más delicadas y a proporcionar menos corriente. Por ejemplo en la familia MKR solo disponemos de 7 mA por pin. Por lo tanto estas placas son más fáciles de dañar y menos aptas para principiantes.
  • Puede ser buena idea conectar cualquier cosa a las salidas digitales a través de una resistencia de 470 ohms a 1 Kohm. De esta forma cualquier corto circuito no destruirá los transistores de salida dentro del chip.

Cosas que podemos conectar a las salidas digitales

Hasta ahora, hemos aprendido a configurar los pines de nuestra tarjeta Arduino Uno como salidas y podemos controlar su estado a voluntad desde nuestro programa, pero muchas de las aplicaciones reales de nuestra tarjeta van a requerir que controlemos algo más que un led.

Para realizar esta tarea, hacen falta circuitos de interfaz, a continuación te mostramos algunos de los cirtuitos más comunes que se usan para lograr que los pines puedan controlar prácticamente cualquier cosa que se nos ocurra.

Conectar un led a salida digital de arduino

Posiblemente una de las cosas más fáciles de conectar. Se requiere una resistencia en serie con el led para conectarlo al Arduino. Se puede realizar la conexión para que el led se ilumine con un estado alto o bajo.

Las salidas digitales de Arduino pueden servirnos para conectar leds e indicar el estado de nuestro circuito o los procesos que lleva a cabo.

Puedes consultar nuestro tutorial donde explicamos más a detalle el proceso para conectar un led al arduino, así como la forma de calcular los componentes.

Las salidas digitales de Arduino pueden servirnos para conectar leds e indicar el estado de nuestro circuito o los procesos que lleva a cabo.

Conectar un led al arduino será una tarea que tengamos que realizar comúnmente, así que te recomendamos aprender los detalles al respecto.

Conexión de relevadores electromecánicos y de estado sólido

Un relevador nos permitirá controlar dispositivos más grandes de las que puede manejar un pin digital de Arduino. Por ejemplo, podemos controlar un horno eléctrico o las luces de casa que funcionan con corriente alterna con un pin de salida digital.

Además de conmutar cargas que exceden las capacidades de los pines de Arduino, un relevador proporciona aislamiento eléctrico, separando los circuitos de control de potencia de los circuitos lógicos.

Existen relevadores electromecánicos como los que se muestran en la imágen (cajas azules). Estos pueden manejar corriente alterna o directa en el mismo componente.

Por otra parte los relevadores de estado sólido pueden encargarse de conmutar corriente alterna o directa, según el tipo de aplicación para el que estén diseñados y el elemento de paso que utilicen, que será un dispositivo semiconductor (TRIAC o MOSFET).

Su apariencia varía pero es común encontrarlos en módulos o como unidades auto contenidas.

Relevador de estado solido 4 canales G3MB-202P

En general usar un relevador es buena idea cuando necesitamos controlar algún aparato que utiliza corriente alterna o cuyos requisitos eléctricos exceden las capacidades de nuestro arduino, ya sea por especificaciones de voltaje o corriente.

Control de motor eléctrico de corriente directa por salidas digitales

Con un pin digital también podremos encender / apagar un motor eléctrico a voluntad. Existen diversos circuitos que nos pueden permitir controlar el encendido / apagado, velocidad y dirección de giro de un motor de corriente directa.

Motorreductor con llanta de goma

En otro tutorial exploraremos la conexión de motores eléctricos, ya que en realidad es un tema extenso que no puede cubrirse completamente aquí.

Módulos MOSFET y transistores de potencia

Un MOSFET es un componente electrónico que actúa como un switch. Cuando un relevador no tiene la suficiente velocidad para conmutar la alimentación del dispositivo que queremos controlar, puede hacerse necesario utilizar un MOSFET.

Los MOSFETS y transistores bipolares suelen encontrarse en módulos o como componentes discretos, pero en general podemos utilizar un pin de salida digital para controlar el voltaje que habilita o deshabilita la conducción de estos componentes.

Módulo con MOSFET IRF520N

Conclusión

En esta ocasión tratamos la configuración de las salidas digitales de una placa arduino, su programación y los dispositivos y accesorios que podemos emplear para realizar la interfaz con sistemas de mayor potencia.

¿Conoces otra cosa que deba aparecer en este tutorial? Esperamos tus comentarios.

shares