🛠 Lire un bouton poussoir en Python avec python3-libgpiod

Radxa ROCK 3B (Rockchip RK3568) · debutant · Schéma : IMG-radxa-rock-3b-debutant-2-rock3b-bouton-python.svg — bouton poussoir avec résistance de pull câblé entre une broche GPIO et la masse sur la Radxa ROCK 3B, fenêtre Python à côté de la carte

Objetivos

Conectar un botón pulsador al conector de 40 pines de la ROCK 3B y mostrar cada pulsación en la consola con python3-libgpiod, utilizando eventos de interrupción (flanco ascendente) en lugar de un sondeo en bucle. Es el primer script Python de la serie: sirve de base para los tutoriales de sensores e IoT.

Material

Código completo

#!/usr/bin/env python3
"""Bouton sur le connecteur 40 broches — affiche les appuis (ROCK 3B).
 Résolvez CHIP/LINE avec `gpiofind PIN_11` sur VOTRE image : les numéros
 diffèrent entre noyau constructeur (Radxa) et noyau mainline >= 6.11."""
from gpiod import Chip, LineRequest

CHIP, LINE = "gpiochip3", 1   # exemple GPIO3_A1 derrière PIN_11 — CONFIRMER

with Chip(CHIP) as chip:
    req = chip.request_lines(
        consumer="rock3b-demo",
        config={LINE: LineRequest.REQUEST_INPUT},
    )
    print("appui attendu (front montant), Ctrl-C pour quitter")
    while True:
        for ev in req.event_wait(timeout_ms=None):
            e = req.event_get
            if e and e.event_type == 1 and e.line == LINE:  # RISING_EDGE
                print("bouton pressé")

Verificación esperada

sudo python3 bouton.py se inicia sin errores; cada pulsación (flanco ascendente) muestra «botón pulsado». Ctrl-C libera correctamente la línea. Con pull-up de hardware + botón hacia masa, el estado de reposo es 1 y la pulsación es 0: si no se muestra nada, invierta el botón/cable o pruebe sudo gpioget $(gpiofind PIN_11) con un multímetro lógico.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales