GPIO

Una característica poderosa de la Raspberry Pi es la fila de pines GPIO (entrada/salida de propósito general) a lo largo del borde superior de la placa. Un encabezado GPIO de 40 pines se encuentra en todas las placas Raspberry Pi actuales (despoblado en Pi Zero y Pi Zero W). Antes de la Pi 1 Modelo B + (2014), las placas comprendían un encabezado más corto de 26 pines.

Cualquiera de los pines GPIO puede ser designado (en el software) como un pin de entrada o salida y se utiliza para una amplia gama de propósitos.

Nota: la numeración de los pines GPIO no está en orden numérico; los pines GPIO 0 y 1 están presentes en la placa (pines físicos 27 y 28) pero están reservados para uso avanzado (ver más abajo).

Tensiones

Dos pines de 5V y dos pines de 3V3 están presentes en la placa, así como un número de pines de tierra (0V), que no son configurables. Los pines restantes son todos de propósito general 3V3, lo que significa que las salidas se ajustan a 3V3 y las entradas son tolerantes a 3V3.

Salidas

Un pin GPIO designado como pin de salida puede ser ajustado a alto (3V3) o bajo (0V).

Entradas

Un pin GPIO designado como pin de entrada puede ser leído como alto (3V3) o bajo (0V). Esto se facilita con el uso de resistencias internas de pull-up o pull-down. Los pines GPIO2 y GPIO3 tienen resistencias pull-up fijas, pero para otros pines esto puede ser configurado en el software.

Más

Además de simples dispositivos de entrada y salida, los pines GPIO pueden ser utilizados con una variedad de funciones alternativas, algunas están disponibles en todos los pines, otras en pines específicos.

  • PWM (modulación de ancho de pulso)
    • PWM de software disponible en todos los pines
    • PWM de hardware disponible en GPIO12, GPIO13, GPIO18, GPIO19
  • SPI
    • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
    • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
  • I2C
    • Datos: (GPIO2); Reloj (GPIO3)
    • Datos EEPROM: (GPIO0); Reloj EEPROM (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

Diseño de pines GPIO

Es importante saber qué pin es cada uno. Algunas personas utilizan etiquetas de pines (como el RasPiO Portsplus PCB, o la hoja imprimible de Raspberry).

Se puede acceder a una práctica referencia en la Raspberry Pi abriendo una ventana de terminal y ejecutando el comando pinout. Esta herramienta es proporcionada por la biblioteca GPIO Zero Python, que se instala por defecto en la imagen de escritorio de Raspberry Pi OS, pero no en Raspberry Pi OS Lite.

Para más detalles sobre las capacidades avanzadas de los pines GPIO ver el diagrama interactivo de pines de gadgetoid.

Programación con GPIO

Es posible controlar los pines GPIO utilizando una serie de lenguajes y herramientas de programación. Consulte las siguientes guías para empezar:

  • GPIO con Scratch 1.4
  • GPIO con Scratch 2
  • GPIO con Python
  • GPIO con C/C++ usando la interfaz estándar del kernel a través de libgpiod
  • GPIO con C/C++ usando la librería de terceros pigpio
  • GPIO con Processing3

Atención: aunque conectar componentes sencillos a los pines GPIO es perfectamente seguro, es importante tener cuidado con el cableado. Los LEDs deben tener resistencias para limitar la corriente que pasa por ellos. No uses 5V para componentes de 3V3. No conectes los motores directamente a los pines GPIO, en su lugar utiliza un circuito de puente H o una placa controladora de motores.

Permisos

Para poder utilizar los puertos GPIO tu usuario debe ser miembro del grupo gpio. El usuario pi es un miembro por defecto, otros usuarios deben ser añadidos manualmente.

sudo usermod -a -G gpio <username>

Deja una respuesta

Tu dirección de correo electrónico no será publicada.