完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
ESP32用ADC1即36读模拟量,读取为12位数值,即111111111111,评价为4095,
上说读取的最大电压为3.3V,测实3V就量程了。时当读出为4095,模拟电压为3V,可能存在万用表测量感受,就当他满量程是3.3V吧。 演示如下: void setup() { Serial.begin(115200);}void loop( ) { int vtmp=analogRead(36); //ADC获取电压Serial.printf(“样本值为:%dn”, vtmp); Serial.printf(“电压为:%.3fVn”, vtmp * 3.3 / 4095); 延迟(1000);} ACS712霍尔互感器,5A量程的输出为185mV / A,20A量程的输出为100mV的/ A,30A量程的输出为66mV / A,我买的是图20A的 接线如下 在空载的情况下,ACS712输出的动力为2.5V,2.V即为0点。如果测出是5V电,数量则在2.5+;如果测到是交流电,数值则在2.5+2.5-上。实测后发现几个问题: 空载输出不是2.5V稳定的,频率在2.7±0.2V。 解决方法:采用50次测量均匀,这样的数值相对稳定点有。说要在硬件上加低通滤波,不会搞搞T_T。 就算是零点2.5V稳定,按20A量程的输出为100mV/A来计算,如果电流为测量20A,那ACS712的输出电压测为2.5+0.120=4.5V,而ESP32的测量模拟量为3.3V,已经超过了ESP32的量程。怎么办? 解决方法:想了想,是不是工作电压为5V,零点为2.5V,那工作电压为3.3V,零点是不是也到1.65V了呢?循着这个思路测了一下,确实如此。就是不知道是否还是100mV/A,待测量。如果还是这个标准的话,满量程输出电压为1.65+0.120=3.75V,马马虎虎还能测得上。假设工作电压下降了,输出标准也同比下降的话,那20A的标准就变为66mV/A,那满测量输出为:4.5*0.66=2.97V,那就在ESP32的测量范围内了,不过只只是猜测,待实测证实。 注:github搜索ACS712会出来很多别人已经写好了arduino库。针对arduino模拟测量5V,采样10位即1023写的。需要把程序里的参数进行调整,例如下面的我根据ESP32的参数进行了些培养: ACS712.h ACS712.cpp 测量交流电DEMO |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 18:51 , Processed in 0.815543 second(s), Total 97, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号