Pines de E/s digitales en Arduino

Una de las funciones más interesantes (si no la más) de Arduino y en general de todos los autómatas es su capacidad de interacción con el mundo físico. Podemos, por ejemplo, realizar mediciones de tensión, obtener lecturas de gran variedad de sensores, encender dispositivos o controlar motores y actuadores. Esta interacción se lleva a cabo en gran parte mediante el uso de las entradas y salidas tanto digitales como analógicas.

¿Qué es una entrada digital?

Una señal digital es una variación de voltaje entre -Vcc a +Vcc sin pasar por los valores intermedios. Por lo tanto, una señal digital dispone solo de dos estados. Al valor inferior de tensión -Vcc le asociamos un valor lógico LOW o ‘0’, mientras que al valor superior +Vcc le asociamos HIGH o ‘1’ lógico.
 
En Arduino los valores de alimentación habituales son 0V y 5V. En este caso la tensión umbral será muy cercana a 2’5V. Por tanto si medimos una tensión con un valor intermedio entre 0 a 2’5V Arduino devolverá una lectura LOW, y si medimos un valor entre 2’5V y 5V, devolverá HIGH. 

Nunca introducir una tensión fuera del rango 0V a 5V en una entrada digital o analógica o podemos dañar el pin correspondiente y dejarlo permanentemente inutilizado.

En Arduino, las entradas y salidas digitales se realizan en las mismas patillas, que se denominan pines de E/S digitales. Eso quiere decir que un mismo pin puede actuar bien como una entrada digital, o bien como una salida digital. por ello es necesario configurar previamente el pin para que funcione de una u otra manera.

Las principales funciones que utilizaremos para las configuración de los pines de E/S como entradas digitales en la placa Arduino son las siguientes:
  • pinMode(n, INPUT). Esta función permite configurar cualquiera de los pines digitales como entradas (INPUT).
  • digitalRead((n_del_pin).  Devuelve un valor digital (HIGH o LOW) leído desde el pin numero_de_pin.  Ejemplo: Leer el estado de un pulsador.
  • punseIn(n-del_pin, valor_HL). Devuelve un número que es el tiempo en microsegundos que ha estado el n_de_pin al valor_HL.

 ¿Cómo configuramos las salidas digitales?


Si queremos conectar un led a la placa Arduino y que se encienda, es necesario configurar los pines E/S digitales como salidas digitales. La configuración de los pines digitales, así como la configuración de otros parámetros se realizan a través del IDE  de Arduino.


Las principales funciones que utilizaremos para la configuración de las salidas digitales en la placa Arduino son las siguientes:

  • pinMode(n, OUTPUT). Esta función permite configurar cualquiera de los pines digitales como salidas (OUTPUT).
  • digitalWrite((n, HIGH). Esta función pone el pin n a 5 V (nivel lógico "1"); es decir encendemos el led.
  • digitalWrite((n, LOW). Esta función pone el pin n a 0 V (nivel lógico "0"); es decir apagamos el led. 
  • analogWrite(n_del_pin, valor). Pone en el pin n_del_pin una señal digital PWM, (valor comprendido entre 0 y 255). Solo algunos pines marcados en la placa soportan PWM.