Eteindre la PI à l'aide d'un bouton M/A à levier ainsi que le ventilateur.
Posté : ven. 28 août 2020 16:55
Bonjour à tous ,
Je souhaiterais ajouter un interrupteur marche/arrêt à levier (donc différent d’un bouton momentané) sur ma PI3 B+.
J'ai donc branché une borne de mon interrupteur sur le pin 5 (GPIO3) et l'autre sur un pin GROUND. J'ai également utilisé le script présenté dans ce tutoriel en le modifiant un peu pour l'adapter au bouton à levier:
https://howchoo.com/g/mwnlytk3zmm/how-t ... spberry-pi
En fait j'ai simplement remplacé "GPIO.wait_for_edge(3, GPIO.FALLING)" par "GPIO.wait_for_edge(3, GPIO.RISING)"
_______________________________________________________
#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.RISING)
subprocess.call(['shutdown', '-h', 'now'], shell=False)
___________________________________________________________
Résultat, lorsque je lance le script sous Python, tout fonctionne comme prévu, quand je mets l'interrupteur en position OFF, la PI entame la procédure d'arrêt et... s'arrête. Et lorsque je positionne l'interrupteur sur ON, la PI sort de son mode sommeil.
Mais quelque chose me turlupine, c'est le fait que l'intégralité des tutoriels à ce sujet utilisent systématiquement un bouton poussoir momentané. Est-ce que connecter le GPIO3 au pin GROUND de manière prolongée risque d'endommager la PI?
En fait je n'ai vu qu'un seul tutoriel et qui se trouve sur votre site concernant un interrupteur levier pour éteindre Recalbox:
https://www.framboise314.fr/recalbox-aj ... roprement/
Du coup je n'ai pas encore installé le script pour qu'il se lance au démarrage de la PI et je ne me sers pas encore du bouton en attendant votre avis.
J'ai une deuxième interrogation concernant le ventilateur que j'ai branché sur le pin 1 (3v3) qui évidemment ne s'arrête pas lorsque la PI passe en mode sommeil.
Je sais que je ne peux pas le brancher sur un GPIO puisque le ventilateur fait 5V DC et 0,2A.
Mais existerait-il une solution pour l'éteindre sans avoir à utiliser un deuxième bouton M/A?
Après plusieurs recherches sur des sites anglo-saxons, des personnes ont évoqué la possibilité d'utiliser un transistor ou un mosfet dont une pate viendrait se connecter à un GPIO et dès lors, le script venant arrêter le Raspberry Pi pourrait aussi arrêter le ventilateur.
Je vous avoue que je ne suis pas un expert en électronique et je ne suis pas sur de comment fonctionne exactement un transistor. Si je visualise bien, la pâte du transistor NPN qui vient se connecter à un GPIO ferait office de porte venant ouvrir et fermer le circuit que le ventilateur utilise entre le pin 1 (3v3) et le pin GROUND ?
Je vous remercie par avance pour tout l’éclaircissement que vous pourriez venir m’apporter à ce sujet, bonne journée.
Je souhaiterais ajouter un interrupteur marche/arrêt à levier (donc différent d’un bouton momentané) sur ma PI3 B+.
J'ai donc branché une borne de mon interrupteur sur le pin 5 (GPIO3) et l'autre sur un pin GROUND. J'ai également utilisé le script présenté dans ce tutoriel en le modifiant un peu pour l'adapter au bouton à levier:
https://howchoo.com/g/mwnlytk3zmm/how-t ... spberry-pi
En fait j'ai simplement remplacé "GPIO.wait_for_edge(3, GPIO.FALLING)" par "GPIO.wait_for_edge(3, GPIO.RISING)"
_______________________________________________________
#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.RISING)
subprocess.call(['shutdown', '-h', 'now'], shell=False)
___________________________________________________________
Résultat, lorsque je lance le script sous Python, tout fonctionne comme prévu, quand je mets l'interrupteur en position OFF, la PI entame la procédure d'arrêt et... s'arrête. Et lorsque je positionne l'interrupteur sur ON, la PI sort de son mode sommeil.
Mais quelque chose me turlupine, c'est le fait que l'intégralité des tutoriels à ce sujet utilisent systématiquement un bouton poussoir momentané. Est-ce que connecter le GPIO3 au pin GROUND de manière prolongée risque d'endommager la PI?
En fait je n'ai vu qu'un seul tutoriel et qui se trouve sur votre site concernant un interrupteur levier pour éteindre Recalbox:
https://www.framboise314.fr/recalbox-aj ... roprement/
Du coup je n'ai pas encore installé le script pour qu'il se lance au démarrage de la PI et je ne me sers pas encore du bouton en attendant votre avis.
J'ai une deuxième interrogation concernant le ventilateur que j'ai branché sur le pin 1 (3v3) qui évidemment ne s'arrête pas lorsque la PI passe en mode sommeil.
Je sais que je ne peux pas le brancher sur un GPIO puisque le ventilateur fait 5V DC et 0,2A.
Mais existerait-il une solution pour l'éteindre sans avoir à utiliser un deuxième bouton M/A?
Après plusieurs recherches sur des sites anglo-saxons, des personnes ont évoqué la possibilité d'utiliser un transistor ou un mosfet dont une pate viendrait se connecter à un GPIO et dès lors, le script venant arrêter le Raspberry Pi pourrait aussi arrêter le ventilateur.
Je vous avoue que je ne suis pas un expert en électronique et je ne suis pas sur de comment fonctionne exactement un transistor. Si je visualise bien, la pâte du transistor NPN qui vient se connecter à un GPIO ferait office de porte venant ouvrir et fermer le circuit que le ventilateur utilise entre le pin 1 (3v3) et le pin GROUND ?
Je vous remercie par avance pour tout l’éclaircissement que vous pourriez venir m’apporter à ce sujet, bonne journée.