Bonjour,
Quelque chose doit m’échapper donc je fais appel à votre génie =D
Mon contexte:
Je veux actuellement faire fonctionner un bouton poussoir pour éteindre mon RPi3b+ sous Twister.
J’avais codé une boucle infinie, fonctionnelle mais je ne voulais pas d’une telle solution.
En cherchant je suis tombé sur la détection de front, que je ne connaissais pas.
Je suis tombé sur un morceau de code qui avait pas mal de points communs avec mon projet et je m’en suis inspiré.
J’ai donc deux fichiers, un module avec ma fonction et un main que je voudrais exécuter en autostart.
Mon problème :
Quand je test l’ensemble dans mon IDE, cela fonctionne.
Par contre quand je lance le .py dans mon shell, nada enfin si la led du bouton s’allume.
Je vous joins tout ça :
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.OUT)
GPIO.setup(3, GPIO.IN)
def my_callback(channel):
if GPIO.input(3):
GPIO.output(14, GPIO.LOW)
else:
for i in range(5):
GPIO.output(14,False)
time.sleep(0.1)
GPIO.output(14,True)
time.sleep(0.1)
GPIO.output(14, GPIO.HIGH)
time.sleep(2)
#print("shutdown now")
os.system("shutdown now")
GPIO.cleanup()
Et :
import RPi.GPIO as GPIO
import time
import os
import fonctions_bouton
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.OUT)
GPIO.setup(3, GPIO.IN)
GPIO.output(14,True)
#GPIO.cleanup()
GPIO.add_event_detect(3, GPIO.BOTH, callback = fonctions_bouton.my_callback)
Merci de m’avoir lu et (j’espère) de votre aide