« GPIO-PI » : différence entre les versions
Aller à la navigation
Aller à la recherche
Page créée avec « = Utilisation des GPIO avec Python et libgpiod 2.x = Cette page décrit l'utilisation des GPIO d'un Raspberry Pi sous Debian 13 / Raspberry Pi OS avec la bibliothèque '''libgpiod 2.x'''. == Prérequis == Vérifier la version installée : <syntaxhighlight lang="bash"> python3 -c "import gpiod; print(gpiod.__version__)" </syntaxhighlight> Exemple : <syntaxhighlight lang="text"> 2.2.0 </syntaxhighlight> Les exemples de cette page sont compatibles avec libgpi... » |
mAucun résumé des modifications |
||
| Ligne 131 : | Ligne 131 : | ||
relay(req, 21, True) # ON | relay(req, 21, True) # ON | ||
relay(req, 21, False) # OFF | relay(req, 21, False) # OFF | ||
</syntaxhighlight | </syntaxhighlight> | ||
Version du 22 juillet 2026 à 20:34
Utilisation des GPIO avec Python et libgpiod 2.x
Cette page décrit l'utilisation des GPIO d'un Raspberry Pi sous Debian 13 / Raspberry Pi OS avec la bibliothèque libgpiod 2.x.
Prérequis
Vérifier la version installée :
python3 -c "import gpiod; print(gpiod.__version__)"
Exemple :
2.2.0
Les exemples de cette page sont compatibles avec libgpiod 2.x.
GPIO utilisés
| GPIO BCM | Usage |
|---|---|
| 20 | Relais 1 |
| 21 | Relais 2 |
Déclaration des GPIO
import gpiod
req = gpiod.request_lines(
"/dev/gpiochip0",
consumer="relays",
config={
20: gpiod.LineSettings(
direction=gpiod.line.Direction.OUTPUT
),
21: gpiod.LineSettings(
direction=gpiod.line.Direction.OUTPUT
),
}
)
Activation d'un relais
Activation du relais connecté au GPIO20 :
req.set_value(20, gpiod.line.Value.ACTIVE)
Activation du relais connecté au GPIO21 :
req.set_value(21, gpiod.line.Value.ACTIVE)
Désactivation d'un relais
Désactivation du relais connecté au GPIO20 :
req.set_value(20, gpiod.line.Value.INACTIVE)
Désactivation du relais connecté au GPIO21 :
req.set_value(21, gpiod.line.Value.INACTIVE)
Programme complet
#!/usr/bin/env python3
import gpiod
import time
with gpiod.request_lines(
"/dev/gpiochip0",
consumer="relays",
config={
20: gpiod.LineSettings(
direction=gpiod.line.Direction.OUTPUT
),
21: gpiod.LineSettings(
direction=gpiod.line.Direction.OUTPUT
),
}
) as req:
# activation des deux relais
req.set_value(20, gpiod.line.Value.ACTIVE)
req.set_value(21, gpiod.line.Value.ACTIVE)
time.sleep(5)
# arrêt des deux relais
req.set_value(20, gpiod.line.Value.INACTIVE)
req.set_value(21, gpiod.line.Value.INACTIVE)
Fonction utilitaire
def relay(req, gpio, state):
req.set_value(
gpio,
gpiod.line.Value.ACTIVE
if state
else gpiod.line.Value.INACTIVE
)
Utilisation :
relay(req, 20, True) # ON
relay(req, 20, False) # OFF
relay(req, 21, True) # ON
relay(req, 21, False) # OFF