完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
求解红字部分,为何要这么计算
void GetAdResult() { unsigned long VolSum=0,CurrSum=0,TemSum=0,VrefSum=0; //AIN2:Vs AIN3:Tempature,AIN5:Vref,Ain6:IS2 uint Vol1,Curr1,Tem1,Vref1; uint Vol2,Tem2; uchar i,j=0; for(i=0;i<4;i++)//可用switch分支结构替代 {//Vol1,Curr1,Tem1,Vref1均是电压,电流,温度,参考431电压的AD获取值 //Vol2,Curr2,Tem2,Vref2均是电压,电流,温度,参考431电压的128次取平均值后的准确值 if(i==0) { for(j==0;j<128;j++) { Vol1=AdcConvert(2); VolSum+=Vol1; } Vol2=VolSum/128;//读取平均值 VolSum=0;//清空AD缓存值 } else if(i==1) { for(j=0;j<128;j++) { Curr1=AdcConvert(6); CurrSum+=Curr1; } Curr2=CurrSum/128; CurrSum=0; } else if(i==2) { for(j=0;j<128;j++) { Tem1=AdcConvert(3); TemSum+=Tem1; } Tem2=TemSum/128; TemSum=0; } else if(i==3) { for(j=0;j<128;j++) { Vref1=AdcConvert(5); VrefSum+=Vref1; } Vref2=VrefSum/128; VrefSum=0; } } if(Vref2>0) { Vol2=Vol2*512.0/Vref2;//实际采到的基准电压和2.5V理想电压的差值 Voltage1=Vol2/5; vt=Curr2*512.0/Vref2; Debugc=vt;//电压值 |
|
相关推荐
1个回答
|
|
ADC转换值的计算方法就是当前测量得到的ADC数值乘以ADC每个二进制位所代表的数值,得到的就是转换值。有的ADC会有一个参考电压值REF,这个值代表ADC的满量程最大值。
具体的计算方法还可能会涉及到具体的电路,具体电路如果有设置电压偏移或放大等,都会影响计算公式 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
464 浏览 0 评论
643 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
942 浏览 0 评论
1028 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
724 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12043 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 07:09 , Processed in 0.503395 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号