|
这个程序应该是不全的,不知道什么原因。tempv*3的意思是电压取样1/3,这是硬件决定的,所以结果要*3. AD值读出来不是电压值,要和基准电压AD换算转成电压值再分解显示的,这个直接显示肯定是错的,这个程序是不能用的。还有MAZ是什么莫名其妙的突然就蹦出来显示。搞不懂楼主转过来看过没有 |
m182892 发表于 2019-8-8 08:38 不理解 |
maomaochong 发表于 2019-8-7 13:21 非常感谢我研究研究 |
| tablex(tempv*3);//分解数据, 就是10K电阻RP2调到了1.67K的位置。 |
maomaochong 发表于 2019-8-7 13:21 楼主找的这个程序只能算是习作,有很多不成熟的地方。其运算ADC结果的方法也是粗浅的,以致楼主看不明白。 十位ADC结果换算成10进制(4舍5入):毫伏=(参考电压*十位ADC结果*10000/1024+5)/10。 再将此值按前置电路的分压比放大或运放放大倍数缩小,才能得到取样点的实际值。 |
| 软件都是基于硬件条件编写的,离开硬件电路图,有些代码是很难读懂的。纵观这程序,原作者的ADC电压取样电路可能是直接或通过分压电阻取样、电流取样电路可能是毫欧级取样电阻经运算放大器LM358放大取样。经软件滤波后获取10位ADC数据,这些数据并不能直接显示电压和电流,需要经过运算和补偿才能得到接近实际电压和电流的值,并将此值通过LCD1602显示出来。 |