7段显示刷新率与hx711读数冲突

问题描述 投票:0回答:1

我是对电子学感兴趣的初学者,并喜欢用Raspberry Pi控制它们。

[我最近购买了2个2位2位数7段显示器以及一个带有5kg称重传感器的HX711 ADC转接板,希望构建数字秤。

[我正在使用python Sleep()方法在总共4位数字上多路显示,我这样做了,还使用我在网上找到的库来启动和运行HX711。问题是:由于导入的库正在从分支板上读取值(该分支板以80hz的速度从称重传感器引入信号),该功能直到接收到值才继续。因此,如果将hx711函数与多路复用功能置于同一循环中,则会带来一个问题,即它会在同时从分支板读取值的同时进行多路复用(如果值通过则闪烁)。

我的解决方案:我试图将2个函数放在2个单独的while循环中,并利用multiprocessing分别运行它们,因此它们可以以不同的速度运行。但这将被证明是无用的,因为现在多路复用功能只能自己运行,而hx711函数仅执行一次。

我正在寻找改善我的解决方案或寻找新解决方案的建议。我错过了多处理部分吗?还是不可能同时运行2个while循环?

由于我不在家,我对缺少代码表示歉意,我回来后会尽快更新代码。

提前感谢。

python raspberry-pi electronics seven-segment-display
1个回答
0
投票

您可以同时运行两个线程,每个线程负责显示或ADC。遇到麻烦的地方是硬件资源的共享以及这与用于驱动IO的库之间的关系。

如果GPIO和SPI接口使用两种不同的库/控制方法,则应该没有问题。例如,将spidev之类的库用于SPI,并使用用户空间gpio控件。

您将遇到问题的地方是,库是否使用相同的硬件资源来控制两个对象。 Mabye ADC库正在使用GPIO库来监视数据就绪的引脚或类似的引脚。

这对于python来说不​​是一个伟大的任务。在这种情况下,最好由外部控制器管理这些操作并通过UART或USB连接。频繁调用函数会导致睡眠时间短,从而开始消耗CPU资源。

© www.soinside.com 2019 - 2024. All rights reserved.