• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
clean up python3 con gpio

gpio clean up con python3
#1
Salve, ho scritto questo codice tramite un esempio di una guida che ho io in inglese..

ho modificato il codice ed ho reso che i led si attiva con i comandi che passo io..
l'unico quando uso il keyinterrup mi da errori

Codice:
#!/usr/bin/env python3 import RPi.GPIO as GPIO import time ledPin = 11 # RPI Board pin11 def setup(): GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location GPIO.setup(ledPin, GPIO.OUT) # Set ledPin's mode is output GPIO.output(ledPin, GPIO.LOW) # Set ledPin low to off led print ('using pin%d'%ledPin) def main(): command = input("on/off/blink/bye : ") if command=="on": GPIO.output(ledPin, GPIO.HIGH) # led on print ('...led on') time.sleep(1) main() elif command=="off": GPIO.output(ledPin, GPIO.LOW) # led off print ('led off...') time.sleep(1) main() elif command=="bye": GPIO.output(ledPin, GPIO.LOW) # led off GPIO.cleanup() elif command=="blink": while True: try: GPIO.output(ledPin, GPIO.HIGH) # led on print ('...led on') time.sleep(1) GPIO.output(ledPin, GPIO.LOW) # led off print ('led off...') time.sleep(1) except KeyboardInterrupt: main() def destroy(): GPIO.output(ledPin, GPIO.LOW) # led off GPIO.cleanup() # Release resource if __name__ == '__main__': # Program start from here setup() try: main() except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed. destroy()

questo è l'output dell'errore che ottengo:
Codice:
pi@raspberrypi:~/Desktop $ python3 Blink_on_off_command.py using pin11 on/off/blink/bye : on ...led on on/off/blink/bye : off led off... on/off/blink/bye : blink ...led on led off... ...led on ^Con/off/blink/bye : bye Traceback (most recent call last): File "Blink_on_off_command.py", line 48, in <module> main() File "Blink_on_off_command.py", line 20, in main main() File "Blink_on_off_command.py", line 25, in main main() File "Blink_on_off_command.py", line 32, in main GPIO.output(ledPin, GPIO.HIGH) # led on RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM) pi@raspberrypi:~/Desktop $


avete idea cosa sia?

Uso raspbian

Grazie mille e buona giornata e aspetto risposte. Vi ringrazio molto.
Risposta
#2
non sarebbe più carino usare
Codice:
from gpiozero import LED from signal import pause red = LED(17) red.blink() pause()

l'errore
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)
mi fa pensare, che le variabili impostate in setup non vengano viste in main, ma potrei sbagliarmi alla grande.
altra cosa, usi la stessa versione di python dell'esempio?
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#3
ok, ti ringrazio molto .. meglio che studio il manuale italiano che si trova qui nel forum.
ti ringrazio molto per la spiegazione più tardi provo la tua soluzione.

grazie di nuovo.

cosi mi è riuscito ed il codice è leggibile e più bello.
vedi se va bene:
Codice:
#!/usr/bin/env python3 from gpiozero import LED from time import sleep led = LED(17) def main(): _input = input("on, off , blink : ") if _input == 'on': led.on() main() elif _input == 'off': led.off() main() elif _input == 'blink': try: while True: led.on() sleep(1) led.off() sleep(1) except KeyboardInterrupt: led.off() main() if __name__ == '__main__': try: main() except KeyboardInterrupt: led.off()

grazie mille e ora mi studio con calma tutto.
Risposta
#4
prego. di norma, la via più elegante e facile è l'uso di GPIO.zero, ci sono tanti esempi, ed è applicabile a tutto.
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect