Page 1 of 1

Python gpion button

Posted: Wed Jul 18, 2018 7:31 pm
by Santiags
Bonjour ,
Je cherche la solution mais je ne trouve pas ...
Je souhaite configurer un bouton poussoir je veux que que ce bouton quand j'appuie dessus me donne la valeur 1 si je retest appuyer 5 seconde me donne la valeur égale à 2 et si je reste appuyer encore 5 seconde me donne la valeur 3
En faite je cherche à incrémenté une variable
En python ça serait biene

Merci de votre aide

Re: Python gpion button

Posted: Thu Jul 19, 2018 7:25 am
by jelopo
Bonjour,

à partir d'un exemple de cette page , j'ai adapté à la volée ceci sans aucune garantie que ça fonctionne du premier coup.
- si appui et le compteur nul => valeur =1
- si on relâche et compteur non nul => Valeur 0
- si on reste appuyé jusqu'a 100 => valeur = valeur +1

Code: Select all

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
# Initialisation des variables
prev_input = 0
## Compteur 100x0.05= 5sec.
cnt=0
## Valeur 
val=0

while True:
  input = GPIO.input(17)
  if (input and cnt=0):
    val=1
  if ((not input) and cnt > 0 ):
    val=0
  if (prev_input and input and cnt>=100):
    val=val+1
    cnt=0
  prev_input = input
  time.sleep(0.05)
  cnt=cnt++
A+

Re: Python gpion button

Posted: Thu Jul 19, 2018 3:31 pm
by Shyne_turtle
bonjour,
jelopo, ton code devrait marcher, mais il faut que son entrée de bouton soit sur la broche 17 (ce n'est pas le chiffre inscrit sur le pi) sinon il ne marche pas, tu a juste oublié de lui préciser ça, pour t'aider Santiags, au cas ou tu ne l'a pas, je te donne l'image en pièce jointe pour savoir quelle broche de la carte est quelle broche du processeur:
gp.png
gp.png (39.19 KiB) Viewed 804 times
sur ce, bonne journée.
Shyne.

Re: Python gpion button

Posted: Thu Jul 19, 2018 5:25 pm
by Santiags
Bonjour ,

j'ai une autre question j'utilise le " from gpiozro import Button"

du coup je voulais savoir si il y avait une difference entre le gpiozero et le RPI.GPIO merci

Re: Python gpion button

Posted: Thu Jul 19, 2018 6:02 pm
by jelopo
Bonjour,

Je ne connais pas cette bibliothèque, il faut sans doute adapter le code pour faire fonctionner le programme.

voir ici pour plus d'infos : https://gpiozero.readthedocs.io/en/stable/

EDIT : En lisant la doc de gpiozero, il semble encore plus simple d'écrire le programme en s'inspirant de l'exemple "3.6. BlueDot LED".
Dans un boucle infinie,
On attend l'appui sur le bouton

Code: Select all

button.wait_for_press()
On note l'heure début

Code: Select all

time.time()
On attend le relâchement du bouton

Code: Select all

button.wait_for_release()
On note l'heure de fin
On soustrait les 2 heures pour avoir la durée
On divise la durée par 5 secondes (opérateur // pour avoir un nombre entier)
On ajoute 1 au résultat

A toi de coder ;)

A+

Re: Python gpion button

Posted: Thu Jul 19, 2018 7:11 pm
by Santiags
vous avez pas un bon lien pour avoir les commandes RPI.GPIO , je ne trouve pas sur le site officiel merci d'avance