¿Cómo controlar pines GPIO en su pi frambuesa

Con el fin de tener el acceso de ganancia Raspberry Pi a los pines GPIO, debe instalar un módulo de Python que actúa como una interfaz entre el lenguaje y los pasadores. Esto permite que un programa para leer en lo que está sucediendo a las señales en las líneas GPIO.

Existen unas pocas opciones diferentes, pero quizás el más fácil de instalar es RPi.GPIO. Tal vez la forma más fácil de instalar que es de una ventana de terminal con el comando

 sudo apt-get install python3-rpi.gpio

Si tiene una versión anterior de este módulo, usted tiene que desinstalar primero el viejo borrando manualmente los archivos. Encuéntralos con este comando en una ventana de línea de comandos

find / usr | grep python | GPIO grep -i

y eliminar las que se encuentran.

Cualquier programa Python que necesita acceder a los pines GPIO deben hacer las siguientes operaciones:

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

  2. Configurar cómo desea hacer referencia a los pines.

  3. Inicialice los pines GPIO que desea utilizar.

  4. Leer o escribir a los pines.

Esto simplemente establece todos los pines GPIO ser entradas y luego constantemente los lee de nuevo en la Raspberry Pi. Se imprime el nuevo estado cuando cualquiera de las entradas de cambiar.

#! / usr / bin / env python # GPIO monitor de estado de la entrada sobre el estado Raspberry Pi # GPIO - muestra el estado de todas las entradas GPIO en P1 # pines GPIO no se muestra como ximport RPi.GPIO como GPIOprint "Visualizar el pin de entrada GPIO estados "imprimir" Ctrl C para detener "boardRevision = GPIO.RPI_REVISION # definir los alfileres para useif 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) # utilidad real GPIO numberinginputState = [5 de temperatura en el rango (0,26)] # lista en blanco para la entrada levelsfor pin in range (0,26): # coloca en todos los pines de inputsif pinout [pin] = -1: GPIO.setup (pinout [pin], GPIO.IN, pull_up_down = GPIO.PUD_UP) # reemplazar línea anterior con la línea de abajo para ver el efecto de flotar entradas # GPIO.setup (pinout [pin], GPIO.IN, pull_up_down = GPIO.PUD_OFF) while True: # hacer foreverneedUpdate = Falsefor comprobar in range (0,26): # vistazo a cada entrada en turnif pinout [cheque] = -! 1: si GPIO.input (pinout [cheque]): latestState = 1else: latestState = 0si (latestState = inputState [cheque]!): needUpdate = TruePrint "GPIO", pinout [cheque] "cambiado a una lógica", latestStateinputState [cheque] = latestStateif needUpdate: # pantalla toda statesprint pin "estado actual" de la fila en el rango (1, -1, -1): para la demostración en el rango (fila, 26,2): si inputState [mostrar] = 5 : imprimir inputState [mostrar], else: print "x", print "" #end del bucle principal

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

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

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

El resto del código es un bucle que se ejecuta siempre. Se comprueba cada entrada mirando el pinout lista y llamar al 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 entrada dispuestas en el mismo orden que los terminales del conector P1.

Para ejecutar el programa, abrir una ventana de terminal, vaya al directorio que contiene el programa, y ​​el tipo

sudo python GPIOstate.py

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

Para probar esto, basta con conectar un extremo de un cable a una de las conexiones a tierra y dar la vuelta, a su vez, conectar el otro extremo del cable a cada entrada. Todas las entradas muestran inicialmente como unos lógicos en la pantalla y cambiar a ceros lógicos cuando usted molió la entrada.

Tenga cuidado de no conectar el cable de tierra a cualquiera de las salidas de potencia: esto corta la alimentación eléctrica de la Raspberry Pi. Para prevenir esto, poner un pequeño trozo de plastilina (Play-Doh, plastilina, o azul tack) en las copas de los tornillos de los conectores de alimentación.




» » » » ¿Cómo controlar pines GPIO en su pi frambuesa