单片机/MCU论坛
直播中

7年用户 42经验值
擅长:可编程逻辑
私信 关注

想做一个20v的电压表,但是串联电阻后,第一测量的值不对,第二,还是固定值

我现在会用单片机采集5v以内的电压,我想通过串联电阻利用电阻分压来达到做一个20v电压的目的,但是,串联电阻之后,并不是想象中的结果,请问,我是不是忽略哪个小细节了?

回帖(24)

人中狼

2017-7-23 15:50:11
最好上一下电路图
举报

武林

2017-7-23 17:37:25
测量20V的电压如果采用上分压电阻15K下分压电阻5K,就用你原来单片机采集5V以内电压的方法,获取的结果左移2位就可以了。
举报

2017-7-23 18:17:14
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

举报

2017-7-23 18:17:15
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

4CC111B8D79DA81C7BD68C054D064E5C.jpg
举报

2017-7-23 18:18:19
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

这个是图
举报
  • 4CC111B8D79DA81C7BD68C054D064E5C.jpg

2017-7-23 18:19:38
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

举报

2017-7-23 18:19:41
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

举报

2017-7-23 18:19:41
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

举报

2017-7-23 18:19:41
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

举报

2017-7-23 18:19:42
引用: 人中狼 发表于 2017-7-23 15:50
最好上一下电路图

4CC111B8D79DA81C7BD68C054D064E5C.jpg
举报

2017-7-23 18:20:36
引用: wulinwl 发表于 2017-7-23 17:37
测量20V的电压如果采用上分压电阻15K下分压电阻5K,就用你原来单片机采集5V以内电压的方法,获取的结果左移2位就可以了。

你的意思不用乘以4?
举报

2017-7-23 18:21:01
引用: wulinwl 发表于 2017-7-23 17:37
测量20V的电压如果采用上分压电阻15K下分压电阻5K,就用你原来单片机采集5V以内电压的方法,获取的结果左移2位就可以了。

怎么左移呢
举报

人中狼

2017-7-23 19:57:05
看看分压电路的地有没有和单片机连接,单片机做AD功能的部分有没有设置正确。
对于移位操作,左右移位分别是移一位是乘以或除以2,移两位则是乘以或除以4,移三位则是乘以或除以8,这是做5伏内电压值到20伏内电压值的转换。
这种移位计算对于汇编编程会显得比较方便,但是对于C语言编程的话,也就是一行语句的事。
电路中有一个电阻没写数值,从分压来算,就认为是1k的电阻,分压电路是3k和1k两个电阻分压,应该没问题。主要看看单片机做AD功能的部分有没有设置正确。
举报

武林

2017-7-23 20:58:33

左移2位和乘以4是一回事,C语言:x=x<<2;  等同于  x=x*4;
举报

2017-7-24 13:25:22
引用: 人中狼 发表于 2017-7-23 19:57
看看分压电路的地有没有和单片机连接,单片机做AD功能的部分有没有设置正确。
对于移位操作,左右移位分别是移一位是乘以或除以2,移两位则是乘以或除以4,移三位则是乘以或除以8,这是做5伏内电压值到20伏内电压值的转换。
这种移位计算对于汇编编程会显得比较方便,但是对于C语言编程的话,也就是一行语句的事。

五v时左移两位,20v还要左移吗?
举报

2017-7-24 13:25:37
引用: wulinwl 发表于 2017-7-23 20:58
左移2位和乘以4是一回事,C语言:x=x

五v时左移两位,20v还要左移吗?
举报

人中狼

2017-7-24 13:42:55
你是用分压电路来测量20伏内的电压的,用的是3k和1k的电阻分压,电压是从1k电阻上取得的,所以取得的电压是20伏内电压的四分之一,这是电阻分压的原理和计算方法决定的。所以,AD转换所得到的电压需要乘以4,这样就是20伏内的电压值。
比如现在的电压是16伏,分压后在1k电阻上是4伏,扣除误差等因素,AD转换后就是4伏,那么就需要乘以4,就得到实际的电压值16伏
举报

武林

2017-7-24 16:56:51
引用: 没伞的孩子要奔跑 发表于 2017-7-24 13:25
五v时左移两位,20v还要左移吗?

以一个最简单的8位AD转换测量范围0~5V电压为例:
ADC_RES=(IN/VCC)*256,  ADC_RES为转换结果寄存器,IN为被测电压,VCC为电源做参考电压。
ADC_RES=(2.5/5)*256,ADC_RES=128;或ADC_RES=0x80;用2进制表示1000 0000
这个结果是代表2.5V电压的数,如果直接用相同方法测量0~20V电压ADC_RES就会溢出,
所以才用电阻分压的方式来解决,如果按上电阻3K下电阻1K配置,还是测量2.5V,
那么ADC_RES得到的结果是32或0x20,用2进制表示0010 0000,这时左移2位才能得到正确结果:1000 0000
啰啰嗦嗦说了这么多,如还不能领会请自行补课。
举报

idianze

2017-7-24 17:02:32
谢谢分享 赞一个
举报

更多回帖

发帖
×
20
完善资料,
赚取积分