用RC 和 比较器 实现ADC
如下图,所示。工作流程大概是这样的。1. 设置GPIO1为低电平输出,使电容充分放电。
2. 设置GPIO1为高电平输出,为电容充电,当检测到比较器输出变高时,停止。
3. 将GPIO1设置为低电平输出,之后,不断检测比较器输出,当检测到比较器输出为变低时,立即转入第4步。
4. 立即将GPIO设置为高电平输出,之后,不断检测比较器输出,一旦变为高,立即转入第3步。
经过多次 3-4-3-4. 步调循环(比如100次)之后,停止。 将所有第3步输出低电平的时间累加起来,得到TL;将所有第4步输出高电平的时间累加起来,得到TH。
输入电压 = VCC * TH/(TH+TL) 。转换误差受 IO输出电压精度的 影响。
这是在造轮子么 xzhiwei 发表于 2019-6-19 20:05
这是在造轮子么
哈哈哈,应该是木头轮子 σ怎么读 西格玛的他型吧 STC文档有详细的例程 这不就是西格玛德尔塔吗 qtechzdh 发表于 2019-6-19 20:12
哈哈哈,应该是木头轮子
因为先前有个帖子,有人在问,怎么实现。所有就新开一贴。 就是西格玛德尔塔的原理, 速度一般,如果定时器的位数够多的话,可以作为高精度ADC, 不过要保证电阻,电容足够稳定不漂!
早期做过4位机电子秤,读取压力传感器的数值, 精度还可以! 这个在89c2051时代就有了,算起来是20年前的了
页:
[1]