Comment contrôler broches GPIO sur votre Raspberry Pi

Afin d'avoir l'accès de gain Raspberry Pi aux broches GPIO, vous devez installer un module Python qui agit comme une interface entre la langue et les broches. Cela permet à un programme à lire dans ce qui se passe pour les signaux sur les lignes GPIO.

A quelques choix différents existent, mais peut-être le plus facile à installer est RPi.GPIO. Peut-être le moyen le plus facile à installer, il est d'une fenêtre de terminal avec la commande

 sudo apt-get install python3-rpi.gpio

Si vous avez une version précédente de ce module, vous devez d'abord désinstaller l'ancienne en supprimant manuellement les fichiers. Trouvez-les avec cette commande dans une fenêtre de ligne de commande

trouver / usr | grep python | grep -v gpio

et supprimer ceux que vous trouverez.

Tout programme Python qui doit accéder aux broches GPIO doivent faire les opérations suivantes:




  1. Importer le module de parler aux broches.

  2. Configurer la façon dont vous voulez faire référence aux broches.

  3. Initialiser les broches GPIO que vous souhaitez utiliser.

  4. Lire ou écrire aux broches.

Ceci définit simplement toutes les broches GPIO pour être entrées puis les lit sans cesse de nouveau dans le Raspberry Pi. Il imprime le nouvel état lorsque l'une des entrées changer.

#! / usr / bin / env python # GPIO état de l'entrée moniteur sur l'état Raspberry Pi # GPIO - montre l'état de toutes les entrées GPIO sur P1 # broches non GPIO présentée comme ximport RPi.GPIO que GPIOprint "Afficher la broche d'entrée GPIO états "print" Ctrl C pour arrêter "boardRevision = GPIO.RPI_REVISION # définir les broches pour useif boardRevision == 1: brochage = [-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: brochage = [-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) # utilisation réelle GPIO numberinginputState = [5 temp dans la gamme (0,26)] # liste vide pour l'entrée levelsfor broche dans la gamme (0,26): # réglé toutes les broches à inputsif brochage [broche] = -1: GPIO.setup (brochage [broche], GPIO.IN, pull_up_down = GPIO.PUD_UP) # Remplacer la ligne ci-dessus avec la ligne ci-dessous pour voir l'effet de flotter entrées # GPIO.setup (brochage [broche], GPIO.IN, pull_up_down = GPIO.PUD_OFF) while True: # faire foreverneedUpdate = Falsefor vérifier dans la gamme (0,26): # oeil à chaque entrée dans turnif brochage [check] = -! 1: si GPIO.input (brochage [contrôle]): latestState = 1else: latestState = 0 si (latestState = inputState [contrôle]!): needUpdate = trueprint "GPIO", brochage [contrôle], "changé à une logique", latestStateinputState [check] = latestStateif needUpdate: # Afficher toutes les broches statesprint "état actuel" la ligne de la plage (1, -1, -1): pour le spectacle dans la gamme (ligne, 26,2): si inputState [Voir] = 5 : imprimer inputState [montrer], else: print "x", print "" #end de la boucle principale

Jetez un oeil sur le code et de voir ce qui se passe. Après avoir importé le module RPi.GPIO, le code trouve le conseil de révision et initialise une liste basée sur ce que le conseil de révision est. La liste a une valeur de -1 dans les positions des broches lorsqu'il n'y a pas de broche GPIO (autrement dit, lorsqu'il existe une broche d'alimentation ou terre).

Dans le cas contraire, elle a le nombre GPIO dans la position de broche correspondante de la liste. Ensuite, le code crée une liste qui contient les valeurs d'entrée pour chaque broche.

Ce code est rempli avec une valeur arbitraire de 5, sachant que toute valeur d'entrée réelle ne sera qu'un zéro ou un. Ensuite, toutes les broches sont configurés pour être entrées avec les résistances internes pull-up est activé. Cela met fin à la partie de l'installation du programme.

Le reste du code est une boucle qui fonctionne toujours. Il vérifie chaque entrée en regardant le brochage liste et appelant le GPIOinput (broches) pour renvoyer la valeur de chaque entrée. Ce résultat est comparé avec la valeur de la dernière fois. Si elle est différente, il affiche l'état actuel de cette entrée avec toutes les valeurs de l'entrée disposés dans le même ordre que les broches du connecteur de la P1.

Pour exécuter le programme, ouvrez une fenêtre de terminal, accédez au répertoire contenant le programme, et le type

sudo python GPIOstate.py

Vous avez besoin du sudo préfixe parce que le système d'exploitation limite l'accès aux broches GPIO et vous avez besoin des privilèges root pour être en mesure de les utiliser.

Pour tester cela, il suffit de connecter une extrémité d'un fil à l'une des connexions de terre et faire le tour, à son tour, reliant l'autre extrémité du fil à chaque entrée. Toutes les entrées montrent d'abord comme les logiques à l'écran et changer de zéros logiques lorsque vous fondez l'entrée.

Veillez à ne pas connecter ce fil de terre à l'une des sorties de puissance: Ce sera un court-circuit la puissance de votre Raspberry Pi. Pour éviter cela, mettre un petit morceau de pâte à modeler (Play-Doh, pâte à modeler, ou collant bleu) dans les bouchons à vis des connecteurs d'alimentation.


» » » » Comment contrôler broches GPIO sur votre Raspberry Pi