Skip to main content

Raspberry Pi GPIO

Adquisición de temperatura a través de Internet: Arduino, Raspberry Pi 3, LabVIEW (Julio 2025)

Adquisición de temperatura a través de Internet: Arduino, Raspberry Pi 3, LabVIEW (Julio 2025)
Anonim
01 de 09

Una introducción a los pines de la frambuesa

El término 'GPIO' (salida de entrada de propósito general) no es exclusivo de la Raspberry Pi. Los pines de entrada y salida se pueden encontrar en la mayoría de los microcontroladores, como Arduino, Beaglebone y más.

Cuando hablamos de GPIO con la Raspberry Pi, nos referimos al largo bloque de pines en la esquina superior izquierda del tablero. Los modelos más antiguos tenían 26 pines, sin embargo, la mayoría de nosotros usaremos un modelo actual con 40.

Puede conectar componentes y otros dispositivos de hardware a estos pines y usar el código para controlar lo que hacen. Es una parte importante de la Raspberry Pi y una excelente manera de aprender sobre electrónica.

Después de algunos proyectos de software, es probable que experimente con estos pines, ansioso por mezclar su código con hardware para hacer que las cosas sucedan en la "vida real".

Este proceso puede ser intimidante si eres nuevo en la escena, y considerando que un movimiento en falso puede dañar tu Raspberry Pi, es comprensible que sea un área nerviosa para que los principiantes exploren.

Este artículo explicará lo que hace cada tipo de pin GPIO y sus limitaciones.

02 de 09

El GPIO

Primero, echemos un vistazo al GPIO en su conjunto. Los pines pueden parecer iguales pero todos tienen diferentes funciones. La imagen de arriba muestra estas funciones en diferentes colores que explicaremos en los siguientes pasos.

Cada pin está numerado del 1 al 40 comenzando en la parte inferior izquierda. Estos son los números de pin físicos, sin embargo, también hay convenciones de numeración / etiquetado, como 'BCM', que se utilizan al escribir código.

03 de 09

Poder y tierra

Destacados en rojo, son los pines de alimentación etiquetados como '3' o '5' para 3.3V o 5V.

Estos pines le permiten enviar energía directamente a un dispositivo sin necesidad de ningún código. Tampoco hay forma de apagar estos.

Hay 2 rieles de alimentación: 3,3 voltios y 5 voltios. De acuerdo con este artículo, el riel de 3.3V está limitado a un consumo de corriente de 50 mA, mientras que el riel de 5V puede proporcionar cualquier capacidad de corriente restante de su fuente de alimentación después de que el Pi haya tomado lo que necesita.

Marrón resaltadoson los pines de tierra (GND). Estos pines son exactamente lo que dicen, pines de tierra, que son una parte vital de cualquier proyecto de electrónica.

(Los pines GPIO de 5V son los números físicos 2 y 4. Los pines GPIO de 3.3V son los números físicos 1 y 17. Los pines GPIO de tierra son los números físicos 6, 9, 14, 20, 25, 30, 34 y 39)

04 de 09

Pines de entrada / salida

Los pines verdes son lo que yo llamo pines de entrada / salida "genéricos". Se pueden usar fácilmente como entradas o salidas sin preocuparse de que entren en conflicto con otras funciones como I2C, SPI o UART.

Estos son los pines que pueden enviar energía a un LED, un zumbador u otros componentes, o se pueden usar como una entrada para leer sensores, interruptores u otro dispositivo de entrada.

La potencia de salida de estos pines es de 3.3V. Cada pin no debe exceder los 16 mA de corriente, ya sea que se hunda o se abastece, y el conjunto completo de pines GPIO no debe exceder más de 50mA en un momento dado. Esto puede ser restrictivo, por lo que puede que tenga que ser creativo en ciertos proyectos.

(Los pines GPIO genéricos son números físicos 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 y 40)

05 de 09

I2C Pins

En amarillo, tenemos los pines I2C. I2C es un protocolo de comunicación que, en términos simples, permite que los dispositivos se comuniquen con la Raspberry Pi. Estos pines también se pueden utilizar como pines GPIO 'genéricos'.

Un buen ejemplo del uso de I2C es el popular chip de expansión de puerto MCP23017, que puede proporcionarle más pines de entrada / salida a través de este protocolo I2C.

(Los pines GPIO I2C son los pines físicos números 3 y 5)

06 de 09

Pasadores UART (Serie)

En gris, son los pines de UART. Estos pines son otro protocolo de comunicación que ofrece conexiones en serie, y también pueden usarse como entradas / salidas GPIO "genéricas".

Mi uso favorito para UART es habilitar una conexión en serie desde mi Pi a mi computadora portátil a través de USB. Esto se puede lograr utilizando tarjetas adicionales o cables simples y elimina la necesidad de una pantalla o conexión a Internet para acceder a su Pi.

(Los pines UART GPIO son los pines físicos números 8 y 10)

07 de 09

SPI Pins

En rosa, Tenemos los pines SPI. SPI es un bus de interfaz que envía datos entre la Pi y otros hardware / periféricos. Se usa comúnmente para el encadenamiento de dispositivos como una matriz de LED o una pantalla.

Al igual que otros, estos pines también pueden usarse como entradas / salidas GPIO "genéricas".

(Los pines SPI GPIO son números de pines físicos 19, 21, 23, 24 y 26)

08 de 09

DNC Pins

Por último, hay dos pines en azul que, actualmente, están etiquetados como DNC, que significa "No conectar". Esto puede cambiar en el futuro si la Fundación Raspberry Pi modifica los tableros / software.

(Los pines DNC GPIO son los pines físicos números 27 y 28)

09 de 09

Convenciones de numeración GPIO

Al codificar con el GPIO, tiene la opción de importar la biblioteca de GPIO de una de las dos maneras siguientes: BCM o BOARD.

La opción que prefiero es GPIO BCM. Esta es la convención de numeración de Broadcom y creo que se usa más comúnmente en proyectos y complementos de hardware.

La segunda opción es GPIO BOARD. Este método utiliza los números de pin físicos en su lugar, lo que es útil para contarlos, pero encontrará que se usa menos en los ejemplos de proyectos.

El modo GPIO se establece al importar la biblioteca GPIO:

Para importar como BCM:

Importar RPi.GPIO como GPIO GPIO.setmode (GPIO.BCM)

Para importar como BOARD:

Importar RPi.GPIO como GPIO GPIO.setmode (GPIO.BOARD)

Ambos métodos hacen exactamente el mismo trabajo, es solo una cuestión de preferencia de numeración.

Regularmente utilizo tableros de etiquetas GPIO, como el RasPiO Portsplus (en la imagen) para comprobar qué pines también estoy conectando los cables. Un lado muestra la convención de numeración de BCM, el otro muestra BOARD, por lo que está cubierto para cualquier proyecto que encuentre.