如何解决平滑模拟输入值
我制造了一种电位计测试设备,该设备可以从MCP3008 ADC读取模拟值。
为了隐藏偶发的模拟输入波动,我正在计算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是ADC的第一个模拟输入的值。
我得到了想要的结果。但是,有没有一种更清洁,更有效的方法?
解决方法
使用循环和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
变量行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。