2016-06-18 9 views
1

Ich habe ein Raspberry Pi eingerichtet mit einem Analog-Digital-Wandler und haben einen Zwei-Potentiometer-Joystick mit dem Eingang verdrahtet.Wie wird ein sich ändernder Wert angezeigt? (Python)

Ich kann die Werte jedes Potentiometers auf dem Bildschirm mit "Drucken" anzeigen, aber es zeigt Tausende von Zeilen pro Minute an, da sich die Werte ändern, wenn die Potentiometer sich bewegen, so dass die Werte nicht mehr gelesen werden können.

Ich frage mich, ob es eine andere Möglichkeit gibt, diese Werte anzuzeigen, so dass es nur ein Bereich des Bildschirms ist und die Werte dort ändern, so dass sie einfach zu lesen, anstatt jedes Mal eine neue Zeile zu drucken?

+0

Try print Verwenden des Wagenrücklaufzeichens '\ r' Es bewegt den Druckcursor an den Anfang der Zeile, sodass Sie über den vorherigen Ausdruck drucken können. Dies funktioniert möglicherweise nicht, da ich die Interna von Raspberry Pi nicht kenne und wie es druckt – eli

+1

Sie müssen eine Terminal-Schnittstelle schreiben - in Python empfehle ich https://github.com/erikrose/blessings – bbayles

+1

Mögliche Duplikat von http : //stackoverflow.com/questions/5419389/how-to-overwrite-the-previous-print-to-stdout-in-python –

Antwort

0

Sie könnten etwas wie das Schnipsel unten versuchen. Unter der Annahme, MCP3008 ist Ihr Konverter, wird es den Wert alle 0,1 Sekunden (sleep(0.1)) gelesen, und wenn die Werte unterschiedlich sind um 5% (threshold = 0.05) wird es den neuen Wert und überschreibt die alte Linie (end = '\r')

from gpiozero import MCP3008 
from time import sleep 

threshold = 0.05 
pot = MCP3008() 

last_value = pot.value 
print(last_value, end='\r')  
while True: 
    new_value = pot.value 
    if abs((last_value - new_value)/new_value) > threshold: 
     print(new_value, end='\r') 
     last_value = new_value 
    else: 
     sleep(0.1) 
Verwandte Themen