Die Endlosschleife ausführen, während die Eingabe erwartet wird

Ich habe ein kleines Projekt, an dem ich arbeite, es ist ziemlich einfach, also hoffe ich, dass mir jemand helfen kann.

Ich benutze eine Himbeer-Pi, um eine einzelne LED mit einigen sehr groben PWM zu dimmen.

Mein PWM-Code sieht so aus:

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(7, GPIO.OUT) frequency = 0.005 dwell = 0.0001 while True: time.sleep(frequency) GPIO.output(7, 1) time.sleep(dwell) GPIO.output(7, 0) 

Grundsätzlich, damit die LED bei der Helligkeit beleuchtet bleibt, die durch "Dwell" bestimmt wird, brauche ich diesen Code, um fortzufahren.

Was ich gerne machen möchte, nutzt so etwas wie

 dwell=raw_input('brightness:') 

So dass, während der PWM-Code Looping ist, kann ich einen neuen Wert für die Verweilzeit fallen lassen, um die Helligkeit der LED anzupassen.

Alle meine Bemühungen führen bisher zu einem der folgenden:

A: Die Dimmschleife läuft nur einmal aus und stoppt, um den Eingang b abzuwarten: Die Dimmschleife wird unendlich ausgeführt, aber keine weitere Eingabe

Kann einer von euch feine Leute mir ein Codebeispiel geben, das erklärt, wie ich das erreichen kann?

Für die interessierten, letztlich, was ich gerne tun würde, ist der Wert der Verweilzeit über Steckdosen und verwenden Sie eine bessere Form von PWM-Ausgang, um LED-Downlights zu fahren. Kleine Schritte 🙂

    One Solution collect form web for “Die Endlosschleife ausführen, während die Eingabe erwartet wird”

    Es sieht so aus, als müsst ihr Multithreading !

     # import the module import threading # define a function to be called in the other thread def get_input(): while True: dwell=raw_input() # create a Thread object input_thread=threading.Thread(target=get_input) # start the thread input_thread.start() # now enter the infinite loop while True: time.sleep(frequency) GPIO.output(7, 1) time.sleep(dwell) GPIO.output(7, 0) 

    Es gibt wahrscheinlich etwas über Schlösser oder Semaphoren oder Mutex … es (Mutagen?) Fehlt hier, aber ich weiß nicht viel über die. Einfache Dinge wie diese scheinen für mich zu arbeiten.

    Python ist die beste Programmiersprache der Welt.