GPIO Raspberry Pi 3, esto es lo que necesitas saber
Todo lo que necesitas saber de GPIO de la Raspberry Pi
La Raspberry Pi es un ordenador barato y diminuto capaz de realizar una gran variedad de tareas, incluyendo ser una consola de juegos retro o convertirse un centro de medios en casa. La Pi también tiene un fuerte enfoque en la educación, con ambas ediciones, Scratch y Minecraft Pi, dirigidas a ayudar a los jóvenes a aprender a programar, y los pines GPIO, General Purpose Input/Output, abren todo un mundo de inventos y proyectos electrónicos DIY.
La Raspberry Pi es la navaja suiza de la informática moderna. Junto con una gran cantidad de usos cotidianos, también abre a cualquiera la posibilidad de hacer sus propias creaciones.
Muchos proyectos para principiantes de realizados con la Raspberry Pi usan los protocolos de los que hablamos en este artículo, y un enfoque práctico es la mejor manera de aprender. Así que échale un vistazo al artículo y luego pasa a ponerlo en práctica.
¿Qué son los Pins GPIO de la Raspberry Pi ?
En este artículo, te vamos a contar todo lo que necesitas saber sobre los pines GPIO de la Raspberry Pi: qué pueden hacer, cómo usarlos y los errores que debe evitar al usarlos.
Una nota antes de empezar: Diferentes revisiones de la Pi pueden variar con sus pines. Antes de conectar cualquier cosa a tu placa, asegúrate de que estás usando las correctas. Una forma rápida de comprobarlo es teclear pinout en el terminal de tu Raspberry Pi, que te mostrará un diagrama de tu configuración actual.
Los pines GPIO están integrados en la placa de circuitos del ordenador. Su comportamiento puede ser controlado por el usuario para que pueda leer los datos de los sensores y controlar componentes como LEDs, motores y pantallas. Los modelos más antiguos del Pi tenían 26 pines GPIO, mientras que los modelos más nuevos tienen todos 40. Esta tabla muestra lo que hace cada pin:
En el diagrama de arriba, se puede ver que hay diferentes tipos de pines GPIO que sirven para diferentes propósitos. Puede encontrar una versión interactiva de esta tabla en pinout.xyz También describe una de las primeras cosas confusas con las que tendrás que lidiar. Cada pin tiene dos números adjuntos. Su número BOARD (los números del círculo) y su número BCM (Broadcom SOC channel). Puedes elegir qué convención usar cuando escribas tu código Python:
# 1 - GPIO/BCM Numbering
GPIO.setmode(GPIO.BCM)
# 2 - Board Numbering
GPIO.setmode(GPIO.BOARD)
Sólo se puede utilizar una convención en cada proyecto, así que escoge una y utilizala solo a ella. Ninguna de las dos convenciones es «correcta», así que elige la que le parezca más sensata. Cabe señalar, sin embargo, que algunos periféricos se basan en la numeración GPIO/BCM.
Para este artículo, nos ceñiremos a la numeración de la placa. Entonces, ¿qué hacen los pin?
Pins de potencia
Empecemos con los pines de potencia. La Raspberry Pi puede proporcionar 5v (pines 2 y 4) y 3.3v (pines 1 y 17) de potencia. También proporciona una tierra (GND) para los circuitos de los pines 6, 9, 14, 20, 25, 30, 34 y 39.
Desafortunadamente, no hay una respuesta única a cuánta corriente pueden consumir los pines de alimentación de 5v, ya que depende de la fuente de alimentación que estéd utilizando y de los demás componentes que hayas conectado a tu Pi. La Raspberry Pi 3 sólo consume 2.5A de su fuente de alimentación, y requiere alrededor de 750mA para el arranque y una operación normal. Esto significa que si se utiliza una fuente de alimentación de 2,5A, los pines de 5V pueden suministrar una corriente total de alrededor de 1,7A como máximo. Sin embargo, esto varía entre los modelos de Raspberry, como muestra esta tabla de la web oficial Raspberry Pi:
Para la mayoría de los usuarios que empiezan con la Pi, esto no será un problema, pero es algo a tener en cuenta a medida que pasan más tiempo utilizando los pines GPIO.
Los pines de 3.3v son un poco más sencillos, con recientes revisiones de la Raspberry Pi (Modelo B+ en adelante) que proporcionan hasta 500mA en total, y los modelos más antiguos que proporcionan sólo 50mA. Ten en cuenta que esta corriente es compartida también a través de todos los otros pines GPIO.
Así que estos pines pueden proporcionar energía a sus componentes, pero eso es todo lo que hacen. Lo realmente divertido viene del resto de los pines.
GPIO estándar
En la tabla de arriba, ignorando los pines de alimentación, verás que algunos están marcados en diferentes colores. Los pines verdes son pines GPIO estándar, y estos son los que se utilizan para la mayoría de los proyectos de principiantes. Estos pines son capaces de tener una salida de 3.3v, también conocida como ajuste del pin HIGH en código. Cuando un pin de salida es BAJO esto significa que simplemente está proporcionando 0v.
También son capaces de tomar una entrada de hasta 3.3v, que el pin lee como HIGH.
No des potencia a los pines de más de 3.3v: esta es una manera rápida de freír su Pi!
Una recomendación, aunque cubriremos algunos de los pines con usos especiales en este artículo, te recomendamos usar cualquier pin excepto los pines de potencia, y los pines 27 y 28 como pines GPIO estándar.
PWM
PWM (Pulse Width Modulation) se utiliza con componentes tales como motores, servos y LEDs enviando pulsos cortos para controlar cuánta energía reciben. Lo usamos con un Arduino en nuestro tutorial sobre LEDs y están presentes en multitud de proyectos realizados tanto con Arduino o con una Raspberry.
El PWM también es posible en la Pi. El Pin 12 (GPIO 18) y el pin 35 (GPIO 35) son aptos para PWM por hardware, aunque la Raspberry Pi también puede proporcionar software PWM a través de librerías como pigpio.
UART
Los pines 8 y 10 (GPIO 14 y 15) son pines UART, diseñados para comunicarse con la Pi a través del puerto serie. Hay ciertas situaciones en las que puedes querer hacer esto, pero para la mayoría de los principiantes conectarse a su Pi directamente a través de SSH o usando un VNC probablemente será más fácil.
SPI
SPI (Serial Peripheral Interface bus) es un método de comunicación con dispositivos como el lector RFID que puedes ver en este proyecto para realizar un sistema automatizado de entrada.
Permite que los dispositivos se comuniquen con la Raspberry Pi sincrónicamente, lo que significa que pueden pasar muchos más datos entre los dispositivos maestro y esclavo. Si alguna vez has utilizado una pequeña pantalla táctil para tu Pi, así es como se comunicaban.
Hay varios dispositivos y extensiones HATs para el Raspberry Pi que usan SPI, y puedes abrir tus proyectos a mucho más hardware del que los pines GPIO normales pueden soportar. Sin embargo, requiere bastante cableado para que funcione. Hay una descripción detallada de SPI en el sitio web de la fundación Raspberry Pi.
Los pines 19, 21, 23, 24, 25 y 26 (GPIO 10, 9, 11, 8, GND y GPIO 26) se utilizan para conectarse a un dispositivo SPI, y todos son necesarios para un funcionamiento sin problemas. Una buena manera de evitar todos los espaguetis es comprar una extensión prefabricada como el Sense HAT, que cabe en la parte superior de la placa y le proporciona una matriz LED y una amplia gama de sensores. Ha sido uno de los favoritos durante varios años, e incluso se utilizó en la Estación Espacial Internacional para hacer algunos experimentos.
El protocolo SPI no está habilitado como estándar en Raspbian, pero se puede habilitar en el archivo raspi-config, junto con I2C.
I2C
I2C (Inter-Integrated Circuit) es similar a SPI, pero generalmente se considera que es más fácil de configurar y usar. Se comunica asincrónicamente y es capaz de mantener tantos dispositivos diferentes como sean necesarios, siempre y cuando cada uno de ellos tenga una dirección única en el bus I2C. Debido a este sistema de direccionamiento, la Pi sólo necesita dos pines-pin 3 (GPIO 2) y pin 5 (GPIO 3) de I2C, lo que la hace mucho más fácil de usar que SPI.
El pequeño tamaño de I2C abre un amplio abanico de posibilidades. Con pines GPIO estándar, configurar una pantalla LCD y algunos botones ocuparía casi todos los pines, usando un dispositivo I2C como el controlador Adafruit Negative LCD lo reduce a sólo dos pines.
En la web de Sparkfun tienes un resumen completo de SPI e I2C junto con ejemplos para empezar.
Los pines 27 y 28 (marcados como ID_SD e ID_SC) también son I2C. Son utilizados por la Pi para funciones internas, y también algunas placas HAT. Como regla general, no te metas con ellos a menos que realmente sepas lo que estás haciendo. Trastea bastante con el resto y luego pasa ya a estos.
Debe estar conectado para enviar un comentario.