El interface GPIO (General Purpose Input/Output) es un tipo de interfaz de entrada/salida digital que se utiliza en microcontroladores y sistemas embebidos para controlar y monitorear dispositivos electrónicos externos. Este interface permite a los dispositivos electrónicos enviar y recibir señales eléctricas que representan valores binarios (0 o 1).

El GPIO consta de pines que pueden ser configurados como entradas o salidas, dependiendo de las necesidades del proyecto. Cuando se utiliza como entrada, los pines pueden detectar y leer señales eléctricas enviadas por otros dispositivos. Cuando se utiliza como salida, los pines pueden enviar señales eléctricas para controlar dispositivos externos.
El interfaz GPIO es un componente clave en la automatización y el control de dispositivos electrónicos, y es ampliamente utilizado en aplicaciones como robótica, control de sistemas domésticos, y desarrollo de proyectos IoT.
El modulo GPIO para la gestión del interface GPIO es un conjunto de funciones y métodos que facilitan el control y monitoreo de los pines GPIO en un sistema embebido. Estas bibliotecas permiten a los desarrolladores controlar los pines mediante el uso de código JARU en lugar de tener que escribir código en un lenguaje de bajo nivel como C o Assembly.
Para poder usar el modulo GPIO primero hay que decirle al compilador que lo vamos a usar:
use GPIO
Funciones
pinmode
Establece el modo de funcionamiento de un pin GPIO pudiendo seleccionar entre entrada y salida.
GPIO.pinmode(15,GPIO.OUT)
Establece el pin 15 en modo salida.
Los valores que se pueden pasar son GPIO.OUT y GPIO.IN
write
La función write de un módulo GPIO es una función que permite escribir un valor (normalmente 0 o 1) en un pin GPIO configurado como salida. Esta función se utiliza para enviar una señal eléctrica a un dispositivo electrónico externo, lo que puede resultar en una acción, como encender un LED o activar un motor.
La función toma como entrada dos argumentos: el número de pin y el valor que se quiere escribir. Aquí hay un ejemplo de código que muestra cómo utilizar la función write en la biblioteca GPIO en JARU:
use GPIO
// Configuramos el número de pin como salida
GPIO.pinmode(17, GPIO.OUT)
// Escribimos un valor de 1 en el pin 17
GPIO.write(17, 1)
En este ejemplo, primero se declara el uso del modulo GPIO, luego se configura el pin 17 como una salida mediante la función GPIO.pinmode. Finalmente, se utiliza la función GPIO.output para escribir un valor de 1 en el pin 17, lo que enciende el LED o activa el motor conectado a ese pin.
read
La función read se utiliza para leer el estado de un pin de entrada (LOW/HIGH o 0/1).
Este ejemplo establece en modo de entrada el pin especificado y lee su valor:
use GPIO
// Configuración de un pin de entrada
GPIO.pinmode(17, GPIO.IN)
// Lectura del estado del pin
var value = GPIO.read(17)
if (value == 1) then
print("Pin 17: HIGH")
else
print("Pin 17: LOW")
end
En este ejemplo, se establece el modo de dirección del pin 17 como GPIO.IN (entrada). Luego, se utiliza el método read para leer el estado del pin y se imprime en consola dependiendo si el estado es HIGH o LOW.
aread
En la mayoría de las placas electrónicas, los pines de entrada/salida son digitales, lo que significa que pueden estar en uno de dos estados: alto o bajo. Sin embargo, algunas placas electrónicas tienen pines que admiten entradas analógicas, lo que significa que pueden leer una variedad de valores en lugar de simplemente estar en alto o bajo. Estos pines se utilizan comúnmente para leer sensores que producen señales analógicas, como sensores de temperatura, humedad, luz, etc.
La función aread() permite leer la entrada analógica en un pin específico. La función convierte la señal analógica en un valor digital utilizando un convertidor analógico a digital (ADC). El valor digital se devuelve como un número que representa el nivel de voltaje en el pin.
Es importante tener en cuenta que la precisión de la lectura analógica puede variar dependiendo de la calidad del convertidor analógico a digital utilizado. Además, es posible que sea necesario calibrar la entrada analógica para obtener mediciones precisas.
Constantes
IN
La constante IN es una de las constantes predefinidas en el módulo GPIO, que se utiliza para indicar el modo de entrada en un pin de una placa electrónica.
Cuando se configura un pin en modo de entrada, se establece para que pueda recibir señales externas en el pin. Por ejemplo, se puede utilizar un pin configurado como entrada para leer la señal de un sensor que está conectado a la placa. La constante IN se utiliza para indicar que se va a configurar un pin en modo de entrada.
La constante IN se utiliza como argumento en las funciones de configuración de pines del módulo GPIO.
OUT
La constante OUT la constante predefinida en el módulo GPIO de JARU, que se utiliza para indicar el modo de salida en un pin de una placa electrónica.
Cuando se configura un pin en modo de salida, se establece para que pueda enviar señales externas desde el pin. Por ejemplo, se puede utilizar un pin configurado como salida para enviar una señal a un LED o para controlar un motor que está conectado a la placa electrónica. La constante OUT se utiliza para indicar que se va a configurar un pin en modo de salida.
La constante OUT se utiliza como argumento en las funciones de configuración de pines del módulo GPIO.
HIGH
La constante HIGH en el módulo GPIO se utiliza para indicar un nivel alto de voltaje en un pin de entrada/salida de un dispositivo.
En los sistemas electrónicos digitales, los niveles de voltaje se utilizan para representar valores lógicos. Un nivel alto de voltaje se asocia comúnmente con el valor lógico “1”, mientras que un nivel bajo se asocia con el valor lógico “0”.
En el contexto del módulo GPIO, la constante HIGH se utiliza para establecer el nivel de voltaje en un pin determinado en un valor lógico “1”. Esto se puede lograr mediante la escritura de esta constante al pin específico utilizando las funciones proporcionadas por el módulo GPIO.
Por ejemplo, si se está utilizando el módulo GPIO para controlar un LED conectado a un pin de salida, escribir la constante HIGH en el pin correspondiente hará que el LED se encienda.
LOW
La constante LOW en el módulo GPIO se utiliza para indicar un nivel bajo de voltaje en un pin de entrada/salida del GPIO (General Purpose Input/Output) de un dispositivo.
Como se menciono anteriormente, en la mayoría de los sistemas electrónicos digitales, los niveles de voltaje se utilizan para representar valores lógicos, y un nivel bajo de voltaje se asocia comúnmente con el valor lógico “0”. En el contexto del módulo GPIO, la constante LOW se utiliza para establecer el nivel de voltaje en un pin determinado en un valor lógico “0”. Esto se puede lograr mediante la escritura de esta constante al pin específico utilizando las funciones proporcionadas por el módulo GPIO.
Siguiendo el ejemplo anterior de controlar un LED conectado a un pin de salida, escribir la constante LOW en el pin correspondiente hará que el LED se apague, ya que se establece el nivel de voltaje en el pin en un valor lógico “0”. En resumen, la constante LOW en el módulo GPIO se utiliza para representar un nivel bajo de voltaje en un pin determinado y se utiliza para establecer valores lógicos específicos en los sistemas digitales.