image0.jpg

Cómo controlar los pines GPIO en su Raspberry Pi

Para que la Raspberry Pi obtenga acceso a los pines GPIO, debe instalar un módulo Python que actúa como una interfaz entre el lenguaje y los pines. Esto permite que un programa lea lo que está sucediendo con las señales en las líneas GPIO.

Existen algunas opciones diferentes, pero quizás la más fácil de instalar es RPi.GPIO . Quizás la forma más fácil de instalarlo es desde una ventana de terminal con el comando

 sudo apt-get install python3-rpi.gpio

Si tiene una versión anterior de este módulo, primero debe desinstalar la anterior eliminando manualmente los archivos. Encuéntrelos con este comando en una ventana de línea de comandos

buscar / usr | grep python | grep -i gpio

y borre los que encuentre.

Cualquier programa de Python que necesite acceder a los pines GPIO debe realizar las siguientes operaciones:

  1. Importe el módulo para hablar con los pines.

  2. Configure cómo desea referirse a los pines.

  3. Inicialice los pines GPIO que desea utilizar.

  4. Leer o escribir en los pines.

Esto simplemente configura todos los pines GPIO para que sean entradas y luego los vuelve a leer constantemente en la Raspberry Pi. Imprime el nuevo estado cuando cambia alguna de las entradas.

#! / usr / bin / env python
Monitor de estado de entrada #GPIO en Raspberry Pi
#GPIO state: muestra el estado de todas las entradas GPIO en P1
Los pines no GPIO se muestran como x
importar RPi.GPIO como GPIO
imprimir "Mostrar los estados de los pines de entrada GPIO"
imprimir "Ctrl C para detener"
boardRevision = GPIO.RPI_REVISION
 #define los pines a usar
si boardRevision == 1:
  pinout = [-1, -1,0, -1,1, -1,4,14, -1,15,17,18,21, -1,22,23, -1,24,10, -1 , 9,25,11,8, -1,7]
si boardRevision == 2:
  pinout = [-1, -1,2, -1,3, -1,4,14, -1,15,17,18,27, -1,22,23, -1,24,10, -1 , 9,25,11,8, -1,7]
GPIO.setmode (GPIO.BCM) # usa numeración GPIO real
inputState = [5 para temperatura en rango (0,26)] # lista en blanco para niveles de entrada
para pin en el rango (0,26): # establece todos los pines en entradas
 si pinout [pin]! = -1:
  GPIO.setup (pinout [pin], GPIO.IN, pull_up_down = GPIO.PUD_UP)
  # reemplace la línea de arriba con la línea de abajo para ver el efecto de las entradas flotantes
  # GPIO.setup (pinout [pin], GPIO.IN, pull_up_down = GPIO.PUD_OFF)
while True: # hacer para siempre
 needUpdate = Falso
 para comprobar en el rango (0,26): # mirar cada entrada por turno
  si pinout [comprobar]! = -1:
  si GPIO.input (pinout [comprobar]):
   latestState = 1
  demás:
   latestState = 0
  if (latestState! = inputState [check]):
   needUpdate = Verdadero
   imprimir "GPIO", pinout [comprobar], "cambiado a una lógica", latestState
   inputState [comprobar] = latestState
 if needUpdate: # muestra todos los estados de los pines
  imprimir "Estado actual"
  para la fila en el rango (1, -1, -1):
  para mostrar en el rango (fila, 26,2):
   if inputState [show]! = 5:
   imprimir inputState [mostrar],
   demás:
   imprimir "x",
  imprimir " "
 # final del bucle principal

Eche un vistazo al código y vea lo que está sucediendo. Después de importar el módulo RPi.GPIO, el código encuentra la revisión de la placa e inicializa una lista basada en cuál es la revisión de la placa. La lista tiene un valor de -1 en las posiciones de los pines donde no hay un pin GPIO (es decir, donde hay un pin de alimentación o de tierra).

LEER  Hacer arte y música con código en su Raspberry Pi

De lo contrario, tiene el número GPIO en la posición de pin correspondiente de la lista. Luego, el código crea una lista que contiene los valores de entrada para cada pin.

Este código se completa con un valor arbitrario de 5 , sabiendo que cualquier valor real de entrada será solo un cero o uno. A continuación, todos los pines están configurados para ser entradas con las resistencias pull-up internas habilitadas. Eso finaliza la parte de configuración del programa.

El resto del código es un bucle que se ejecuta para siempre. Verifica cada entrada mirando la lista de pines y llamando a GPIOinput (pin) para devolver el valor de cada entrada. Esto se compara con el valor de la última vez. Si es diferente, imprime el estado actual de esa entrada junto con todos los valores de la entrada dispuestos en el mismo orden que los pines del conector P1.

Para ejecutar el programa, abra una ventana de terminal, navegue hasta el directorio que contiene el programa y escriba

sudo python GPIOstate.py

Necesita el prefijo sudo porque el sistema operativo restringe el acceso a los pines GPIO y necesita privilegios de root para poder usarlos.

Para probar esto, simplemente conecte un extremo de un cable a una de las conexiones a tierra y, a su vez, conecte el otro extremo del cable a cada entrada. Todas las entradas se muestran inicialmente como lógicas en la pantalla y cambian a ceros lógicos cuando conecta a tierra la entrada.

Tenga cuidado de no conectar este cable de tierra a ninguna de las salidas de energía: esto provocará un cortocircuito en la energía de su Raspberry Pi. Para evitar esto, coloque un pequeño trozo de plastilina (plastilina, plastilina o tachuela azul) en las tapas roscadas de los conectores de alimentación.

LEER  Instalación del sistema operativo Raspberry Pi Raspbian

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *