DEV Community

Discussion on: 使用 ADS1115 MicroPython 程式庫讀取 ADC 值的怪現象

Collapse
 
webduinocn profile image
webduino-cn • Edited

我觉得“文件”中的说明很清楚了,您反而要先量测在两个get1vol()的呼叫中,是否遵循rate=6, ie. 475Hz 的样本率 (最好用逻辑分析仪量一下),“文件”中也有采用Timer以及ADC中断方式来读取的例子。

Collapse
 
codemee profile image
codemee

你講的跟我講的不是同一件事, 主要是 read_rev() 本來就是把前一次 ADC 結果返回, 然後啟動下一輪的 ADC 程序, 所以他返回的不是目前的 ADC 值。

Collapse
 
webduinocn profile image
webduino-cn

是的,在文件当中已经写的很清楚了(会这样实现也是这种Sigma-Delta ADC需要时间来量测),是您同事程式码逻辑不符合这个程式库的设计理念。另外,我主要指出在您同事的程式码中,没有配合量测的“延时”,一下子读了4次,ADC的速度一定跟不上,这跟您在REPL手敲的结果是不一样的。

Thread Thread
 
codemee profile image
codemee

他原本的想法就是以為 read_rev() 會測量完取值再返回, 所以才會連續讀四次, 如果是使用 read(), 就沒有等待量測時間這個問題了。