Bonjour,
Je suis sur une ancienne becanne equipé de pyton 2.7.6 sur linux ubuntu 14.04 x64.
Je cherche le moyen de faire clignoter un led et de l’arrêter par la suite depuis le GPIO avec le Ardafruit FT232H en ligne de commande.
https://arduino103.blogspot.com/2017...o-ajouter.html
1) Récupérer l'argument en ligne de commande
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part python gpio_led_test.py on rouge
2) Faire clignoter le led et pouvoir l'arreter impossible ?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 liste_arg = [] for arg in sys.argv: print arg liste_arg.append(arg) arg1 = liste_arg[1] arg2 = liste_arg[2] arg2 = liste_arg[3] choix = arg1+" "+arg2+" "+arg3 if choix=="on rouge": print "choix rouge on" on() elif choix=="off rouge": print "choix rouge off" off() elif choix=="on rouge clignote": print "choix clignote rouge on" led_rouge_clignote_on() elif choix=="off rouge clignote": print "choix clignote rouge off" led_rouge_clignote_off()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 # Désactivation temporaire du pilote FTDI série sur les plateformes Mac et Linux. #FT232H.use_FT232H() # Créer un objet FT232H (qui capture le premier périphérique FT232H disponible). ft232h = FT232H.FT232H() # Configurer les entrée et sortie digitales en utilisant ma méthode setup() # Note: les broches de 0 a 15 correspondent au broches D0 à D7 puis C0 à C7 de la carte. ft232h.setup(7, GPIO.IN) # Make pin D7 a digital input. 7 ft232h.setup(8, GPIO.OUT) # Make pin C0 a digital output. 8 ft232h.setup(6, GPIO.IN) # Make pin D6 a digital input. 6 ft232h.setup(9, GPIO.OUT) # Make pin C1 a digital output. 9 def led_rouge_clignote_on(): # Désactivation temporaire du pilote FTDI série sur les plateformes Mac et Linux. FT232H.use_FT232H() # Créer un objet FT232H (qui capture le premier périphérique FT232H disponible). ft232h = FT232H.FT232H() # Configurer les entrée et sortie digitales en utilisant ma méthode setup() # Note: les broches de 0 a 15 correspondent au broches D0 à D7 puis C0 à C7 de la carte. ft232h.setup(7, GPIO.IN) # Make pin D7 a digital input. 7 ft232h.setup(8, GPIO.OUT) # Make pin C0 a digital output. 8 # Bouche infinie qui change l'état de la LED (allumé/éteind) et lit l'état de l'entrée. # Presser Ctrl-C pour quitter le programme print 'Presse Ctrl-C pour quitter.' while True: # Mettre la broche C0 au niveau haut (HIGH) pour allumer la LED. ft232h.output(8, GPIO.HIGH) # Attendre 1 seconde. time.sleep(1) # Mettre la broche C0 au niveau base (LOW) pour eteindre la LED. ft232h.output(8, GPIO.LOW) # Attendre 1 seconde. time.sleep(1) # Lire l'etat de la broche D7 et afficher si le niveau est haut (HIGH) ou bas (LOW). level = ft232h.input(7) if level == GPIO.LOW: print 'Pin D7 is LOW! : Eteind ' else: print 'Pin D7 is HIGH! : Allumer'
Seulement le problème est que c'est une bouche indéfinie.
et il est impossible de stopper une boucle indéfinie depuis le même fichier.
Quel autre solution y a t'il ?
Merci d'avance, pour votre aide .
Partager