我制作了一个电位计测试设备,可以从MCP3008模数转换器读取模拟值。
为了隐藏零星的模拟输入波动,我正在计算while循环中几个测量值的平均值,函数类似于:
def analog_average():
analog1 = (mcp_analog)
time.sleep(0.001)
analog2 = (mcp_analog)
time.sleep(0.001)
analog3 = (mcp_analog)
time.sleep(0.001)
analog4 = (mcp_analog)
time.sleep(0.001)
analog5 = (mcp_analog)
analog_average = ((analog1 + analog2 + analog3 + analog4 + analog5) / 5)
print(analog_average)mcp_analog是模数转换器的第一个模拟输入的值。
我得到了我想要的结果。然而,有没有一种更干净、更有效的方法?
发布于 2020-09-22 22:01:10
使用循环和statistics.mean
from statistics import mean
def analog_average(N):
measures = []
for _ in range(N):
measures.append(mcp_analog.value)
time.sleep(0.001)
return mean(measures)
print(analog_average(5))这样,您就可以轻松地更改样本量,而不必添加越来越多的sleep和analog变量行。
https://stackoverflow.com/questions/64011253
复制相似问题