平滑模拟输入值

2024-04-28 08:53:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个电位计测试设备,可以从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_模拟是ADC第一个模拟输入的值

我正在得到我想要的结果。然而,有没有更干净、更有效的方法


Tags: timesleep平均值电位averageanalogwhileadc
4条回答

使用循环和^{}

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))

通过这种方式,您可以轻松更改样本量,而无需添加越来越多的sleepanalog变量行

相关问题 更多 >