Timer led (photomaton)

bonjour, actuellement la led s’allume dès que j’appuie sur mon bouton et un timer de 5sec s’enclenche puis s’éteind a 0sec

mais j’aimerai qu’elle s’allume quand le timer arrive a 2 sec.

si qqun a une idée , je le remercie

voici mon script

#lancer une action complète pour 1 photo et impression
def play2():
print(« Démarrage de la séquence ‹ 1 photo › »)

fileName = time.strftime("%Y%m%d-%H%M%S")+".jpg"
print("Nom de fichier créé : "+fileName)

#turn on flash
GPIO.output(LED_PIN,GPIO.HIGH)
countdownFrom(PHOTO_DELAY)
captureImage(IMG1)
time.sleep(1)

#turn off flash
GPIO.output(LED_PIN,GPIO.LOW)

convertMergeImages2(fileName)
time.sleep(1)

archiveImage(fileName)
deleteImages(fileName)

Salut,

Tu as essayé ça ?

countdownFrom(PHOTO_DELAY)

#turn on flash
GPIO.output(LED_PIN,GPIO.HIGH)

captureImage(IMG1)
time.sleep(1)

Dans l’idée, à défaut d’apprendre le python, tu peux essayer la méthode « à taton » pour comprendre comment les actions s’enchaînent.

Sinon

countdownFrom(PHOTO_DELAY_avant-Flash)

#turn on flash
GPIO.output(LED_PIN,GPIO.HIGH)

countdownFrom(PHOTO_DELAY_apres-Flash)
captureImage(IMG1)
time.sleep(1)

(Et tu crées les 2 définitions « PHOTO_DELAY_avant-Flash » et « PHOTO_DELAY_après-Flash »)

++

salut! je te remercie déjà pour le temps que tu m’accordes.

Enfaite le problème que j’ai c’est que j’aimerai que lorsque le timer qui est de 5sec arrive a 2seconde la led s’allume jusqu’à 0sec .

je suis entrain d’apprendre python mais c’est pas facile pour un débutant haha

J’ai bien compris.

Mais as-tu testé diverses solutions ?
Je t’en ai proposé 2.

Sinon, je pense que la solution serait de partir de ta définition de décompte qui doit être celle-ci :

def countdownFrom(secondsStr):
    secondsNum = int(secondsStr)
    if secondsNum >= 0 :
        while secondsNum > 0 :
            addPreviewOverlay(300,100,240,str(secondsNum))
            time.sleep(1)
            secondsNum=secondsNum-1

Et d’y intégrer GPIO.output(LED_PIN,GPIO.HIGH) couplé à un if secondsNum == 2 :

++

hello,

si def play2(): est la fonction qui s"exécute quand t’appuies sur un bouton

def play2(): 
   print(" Démarrage de la séquence ‹ 1 photo")
# on attend 3 secondes
   time.sleep(3)
# on allume la led
   GPIO.output(LED_PIN,GPIO.HIGH) 
# on attend 2 secondes
   time.sleep(2)
# on prend la photo ( 3+2 on doit pas être loin des 5 secondes)                        
   captureImage(IMG1)
# on éteint la led
  GPIO.output(LED_PIN,GPIO.LOW) 
# on crée le fichier
   fileName = time.strftime("%Y%m%d-%H%M%S")+".jpg"   
   print("Nom de fichier créé : "+fileName)

# on le rempli avec une image de fond plus la photo ?
  convertMergeImages2(fileName) 
# on fait un peu de rangement et de ménage
  archiveImage(fileName)
  deleteImages(fileName)

NB sleep() peut accepter une variable si le delay de 5 secondes change :
on remplace sleep(3) par sleep( PHOTO_DELAY - 2)