Entendiendo pines digitales de Arduino

Entendiendo pines digitales y su uso en Arduino


Para poder usar el IDE de Arduino, es necesario conocer el funcionamiento de ciertos comandos que son útiles a la hora de programar cualquier tarjeta Arduino, independientemente del modelo que sea. Todas las tarjetas Arduino funcionan de la misma forma, lo que varía entre un modelo a otro es el voltaje de operación pues algunas funcionan a 5V y otras a 3.3V. Para todos los proyectos publicados en este blog, se utilizará la tarjeta Arduino Mega 2560, la más potente y completa de toda la gama, la cual funciona a 5V. Todas las tarjetas Arduino constan de pines digitales y análogos, por ahora trabajaremos y explicaremos los digitales.

Que un pin sea de tipo digital, significa que a través de el podremos enviar o leer información digital, es decir, podremos enviar un 1 o un 0 y también podremos leer un 1 o un 0. A la hora de trabajar con pines digitales, es necesario declarar una variable que corresponda a lo que se va a conectar en ese pin, por ejemplo, si se conectará un LED o un pulsador en el pin, se declara una variable tipo "int" y se iguala al número del pin. Por ejemplo: int led_prueba = 22; para indicar que se trabajará con un LED conectado al pin 22 del Arduino, o también int pulsador = 23; para indicar que se trabajará con un pulsador conectado al pin 23 del Arduino. Esto se hace justo al principio del programa, arriba del void setup().

Luego de declarar las variables, vamos a la función void setup() a inicializar dicho pin como entrada o salida. Siguiendo el ejemplo del párrafo anterior, declararemos el LED como salida y el pulsador como una entrada usando el comando pinMode(). Entonces, para el LED sería pinMode(led_prueba, INPUT) y para el pulsador sería pinMode(pulsador, OUTPUT).


 


  • pinMode(): Este comando se usa para configurar un determinado pin digital como entrada (INPUT) o salida (OUTPUT). La sintaxis correspondiente a este comando es: pinMode(pin, modo), donde "pin" es el pin que se va a configurar y "modo" corresponde a INPUT u OUTPUT. En el IDE de Arduino, esto se hace en void setup(). Lo que sigue de ahora hacia abajo se hace en el void loop().
  • digitalWrite(): Este comando se usa para escribir un 1 (HIGH), o un 0 (LOW) en el pin digital seleccionado. En este caso, depende de la tarjeta usada el voltaje que se aplica al pin. Como estamos usando Arduino Mega, el HIGH corresponde al voltaje de funcionamiento de la tarjeta, es decir, 5V y LOW siempre corresponde a tierra, es decir, 0V. Algunas tarjetas manejan 3.3V como el valor de HIGH para los pines. Para decidir si poner un pin en HIGH o en LOW, es necesario tener anteriormente definido el pin como salida (OUTPUT) en el void setup(). La sintaxis correspondiente para este comando es: digitalWrite(pin, value), donde pin es el pin del Arduino al que se desea enviar el valor, y value es HIGH o LOW dependiendo de lo que se requiera.
  • digitalRead(): Este comando se usa para leer un valor en un pin digital, el cual puede ser HIGH o LOW. Para leer un valor cualquiera en un pin, es necesario haber definido el pin anteriormente como entrada (INPUT) en el void setup(). La sintaxis correspondiente a este comando es: digitalRead(pin), donde pin corresponde al pin de la tarjeta donde queremos leer el valor. Esta función retorna un HIGH o un LOW dependiendo de la lectura realizada.






Comentarios