Programmer le pcDuino : Pyduino : périphériques : Fixer la durée d'allumage d'une LED par saisie d'une valeur à l'aide d'un numpad ("minuteur" à clavier numérique )Par X. HINAULT - Juillet 2013 Ce que l'on va faire ici
Noter que l'utilisation d'un keypad numérique USB (ou numpad) permet de remplacer simplement et avantageusement (ne coûte que quelques euros) un clavier numérique matriciel 4x4 (avec signes d'opération et touche de validation!), même si aucun écran n'est connecté, tant que le programme Pyduino a le focus, ce qui est obligatoirement le cas une fois le programme lancé, tant qu'on n'utilise pas de souris ! De plus, le code de gestion du clavier est très simple, puisqu'il est géré par le système ! ![]() Pré-requis
Schéma fonctionnel
Matériel nécessaireSystème
![]() E/S
![]()
![]()
![]()
![]() Instructions de montage
Le montage à réaliserLe fichier *.pyCopier/coller ce code dans l'éditeur Geany : #!/usr/bin/python # -*- coding: utf-8 -*- # exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr # Juin 2013 - Tous droits réservés - GPLv3 # voir : https://github.com/sensor56/pyDuino # la saisie d'une valeur fixe la duree d'allumage d'une LED from pyduino import * # importe les fonctions Arduino pour Python # entete declarative LED=3 # broche utilisée pour la LED #--- setup --- def setup(): pinMode(LED,OUTPUT) # met la broche en sortie Serial.println("------------------") # -- fin setup -- # -- loop -- def loop(): # try.. except.. permet d'éviter le blocage si erreur de saisie try: reponse=input("Veuillez saisir une valeur en secondes (0-100) :") # attention : encadrer chaine avec "" # sinon elle sera consideree comme le nom d'une variable - voir raw_input pour saisie de chaine except: # erreur print ("Veuillez recommencer !") return # sort de la fonction loop print ("Vous avez saisi : " + str(reponse) ) duree=constrain(reponse,0,100) print "Duree = " + str(duree) + " secondes" # allumage de la LED Serial.println("Allume la LED") digitalWrite(LED,HIGH) #allume la LED Serial.println("Attente de " + str(duree) + " secondes...") delay(duree*1000) # pause (en ms !!) Serial.println("Eteint la LED") digitalWrite(LED,LOW) # eteint la LED Serial.println("------------------") # -- fin loop -- #--- obligatoire pour lancement du code -- if __name__=="__main__": # pour rendre le code executable setup() # appelle la fonction main while not noLoop: loop() # appelle fonction loop sans fin Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Periph/InputLEDMinuteur.py Utilisation
![]()
Discussion technique
|