while cpt < 10 :
if button.is_pressed:
cpt = cpt+1
print(« Button is pressed »,cpt)
else:
print("Button is not pressed")
Ca affiche directement jusqu’a 10, j’aurais souhaiter que ça compte le nombre d’appuis pour concevoir un systhème de morse, je suis novice en programmation.
un truc comme ça pourrait peut être marcher ( j ai pas tester mais le principe doit être correct !) :
from gpiozero import LED, Button
from signal import pause
import time
led = LED(NN)
button = Button(N)
while (true):
button.when_pressed = led.on
a = time.clock()
button.when_released = led.off
b = time.clock()
if (b-a > ?):
// c'est un trait
else:
// c'est un point
Merci pour ta tentative, mais je cherche a placer un compteur qui ne compte que les appuis sur le bouton, la fonction time.clock ne fait pas de différence que le bouton soit appuyé ou non, c’est une fonction python qui dit depuis combien de temps le programme est démarrer.
#!/usr/bin/python3
# -*- coding: utf-8 -*
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Clic = 0
while Clic < 8:
while (GPIO.input(21) == True):
pass
Clic=Clic+1
time.sleep(1)
print(Clic)
GPIO.cleanup()
#end
Tu le lances dans un Terminal.
ça attend
Tu appuies sur le bouton
ça affiche 1
Tu appuies sur le bouton
ça affiche 2
…
Tu appuies sur le bouton
ça affiche 8
ça ferme le programme.
A noter que j’ai pris 21 car ça m’a permis de coller un bouton sur le bas de mes GPIO. mais ce n’est pas le meilleur des choix ; 18, 24 ou 26 serait mieux (de vrais GPIO purs)
l’idée justement c’est de ce servir de cette propriété pour déterminer la durée entre deux traitement dans un programme ; on récupère dans « a » le moment ou l’on presse le bouton et dans « b » celui ou on le relâche.
par soustraction on trouve la durée entre l’appuie et le relâchement si c’est court c’est un point si c’est long c’est un trait ( on est d’accord que l’alphabet morse est fait de point et de trait )
mais ok le code que j’ai bâclé le fais pas !