如何显示变化的值? (Python)
How to display a changing value? (Python)
我有一个 Raspberry Pi 设置了一个模数转换器,并且有一个连接到输入的两个电位器操纵杆。
我可以使用 'Print' 让每个电位器的值显示在屏幕上,但是它每分钟显示数千行,因为电位器移动时值会发生变化,因此无法在移动时读取值飞过去。
我想知道是否有另一种方法来显示这些值,以便它只是屏幕的一个区域,并且值在那里改变,使它们易于阅读,而不是每次都打印一个新行?
您可以试试下面的代码片段。假设 MCP3008
是您的转换器,它将每 0.1 秒读取一次值 (sleep(0.1)
),如果值相差 5% (threshold = 0.05
),它将 print
新的值并覆盖旧行 (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)
我有一个 Raspberry Pi 设置了一个模数转换器,并且有一个连接到输入的两个电位器操纵杆。
我可以使用 'Print' 让每个电位器的值显示在屏幕上,但是它每分钟显示数千行,因为电位器移动时值会发生变化,因此无法在移动时读取值飞过去。
我想知道是否有另一种方法来显示这些值,以便它只是屏幕的一个区域,并且值在那里改变,使它们易于阅读,而不是每次都打印一个新行?
您可以试试下面的代码片段。假设 MCP3008
是您的转换器,它将每 0.1 秒读取一次值 (sleep(0.1)
),如果值相差 5% (threshold = 0.05
),它将 print
新的值并覆盖旧行 (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)