查看: 439|回复: 17

[已解决] Arduino使用电阻分压测量电池电压问题

[复制链接]
  • TA的每日心情
    难过
    2020-1-31 09:41
  • 签到天数: 171 天

    [LV.7]常住居民III

    发表于 2020-1-19 00:08 | 显示全部楼层 |阅读模式
    本帖最后由 wienne 于 2020-1-21 21:36 编辑

    请教,下图中的连接有什么问题,如何调整?
    让只有一块电池的条件下,解决测量电压不正确的问题。


    1.jpg

    2.jpg
  • TA的每日心情
    开心
    2020-2-24 10:07
  • 签到天数: 341 天

    [LV.8]以坛为家I

    发表于 2020-1-19 10:26 | 显示全部楼层
    用光耦隔离检测电压

    该用户从未签到

    发表于 2020-1-19 12:05 | 显示全部楼层
    R1和R3是什么作用啊?
    第一种接法ads1115的地应该是接到电池负极了,这样就短路掉R1和R3了~
  • TA的每日心情
    难过
    2020-1-31 09:41
  • 签到天数: 171 天

    [LV.7]常住居民III

     楼主| 发表于 2020-1-19 13:21 | 显示全部楼层
    本帖最后由 wienne 于 2020-1-19 13:24 编辑
    lcdi 发表于 2020-1-19 12:05
    R1和R3是什么作用啊?
    第一种接法ads1115的地应该是接到电池负极了,这样就短路掉R1和R3了~ ...

    抱歉,图画错了一处。
    ADS1115的A0端口,实际接在R1与R3之间。图片已改正。
  • TA的每日心情
    难过
    2020-1-31 09:41
  • 签到天数: 171 天

    [LV.7]常住居民III

     楼主| 发表于 2020-1-19 13:27 | 显示全部楼层
    本帖最后由 wienne 于 2020-1-19 13:32 编辑
    lcdi 发表于 2020-1-19 12:05
    R1和R3是什么作用啊?
    第一种接法ads1115的地应该是接到电池负极了,这样就短路掉R1和R3了~ ...

    R1至R4组成分压电路,中间的R3和R4是为 将被测电压的最高12.6V降至5V以内。
    ADS1115的GND通过R2电阻与电池的负极连接,并未直连电池的负极。

    该用户从未签到

    发表于 2020-1-19 16:46 | 显示全部楼层
    哦,不好意思,看错了~
    我的意思是,图1里的ads1115的地是连接到dcdc的地吧?dcdc要是隔离型的就应该没问题了.
    非隔离型的话DCDC的地是直连电池地的吧?
    这样就相当于1115直连电池地了,把R2短路掉了,你测测看是不是这样?

    该用户从未签到

    发表于 2020-1-19 16:50 | 显示全部楼层
    分压的话两个电阻就行了,为什么用了三个(R1,R3,R4)?
    那么R2的作用是什么呢?
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-1-19 18:34 | 显示全部楼层
    这是一个共模信号影响差模检测的问题。

    ADS1115 目测是一个差分的 ADC 单元,
    图 2 由于供电、检测不在同一套电源回路,相当于共模为零,因而工作正常;
    图 1 由于是同一套电源回路,共模信号影响不能忽略,大概率不正常。

    同理你用数字万用表,在线检测万用表自己的电池电压,大概率也是烧表。

    -------------------------------------------------------------------------------

    解决方法,在信号的前向回路里,至少有一处需要是隔离的,例如:

    a. 使用隔离 DCDC 供电
    b. 使用隔离 ADC 进行采样
    c. 使用隔离放大器 1:1 缓冲被采信号

  • TA的每日心情
    难过
    2020-1-31 09:41
  • 签到天数: 171 天

    [LV.7]常住居民III

     楼主| 发表于 2020-1-20 09:46 | 显示全部楼层
    本帖最后由 wienne 于 2020-1-20 10:29 编辑
    lcdi 发表于 2020-1-19 16:50
    分压的话两个电阻就行了,为什么用了三个(R1,R3,R4)?
    那么R2的作用是什么呢?


    感谢回复。

    经懂电路的朋友指正,分压电路的负极应与电池的负极直连。
    之间不应有任何电阻,以避免出现悬浮的地。

    之前我不懂,翻看CSDN关于分压电路的帖子,里面有这样接的例子就都抄了过来。
    这次学习到了,不应该这样接线。

    重新画了张图接线图。

    3.jpg

    也感谢8楼的朋友,既指出问题说明原因,还给出解决方法,太感谢了!

    之所以使用ADS1115,是手头还有这块芯片,浪费了可惜。
    但经过这次折腾,实则还是大材小用。

    Arduino的ADC虽说只有10位,但精度对5V的电压也达到0.005v。
    即使加上电阻的阻值误差,最终电压值也会在0.01v左右。
    而在遥控器上显示出的电压也只一位小数,再为减少系统复杂度ADS1115实是不必的。

    这次也学习到了‘隔离电源’这一知识点。
    前晚烧了一块Arduino,也不知是不是这个原因。
    搜了淘宝,只发现BS1205S的价格、体积比较适合。
    希望能最终解决我的问题。

    非常感谢各位!
  • TA的每日心情
    难过
    2020-1-31 09:41
  • 签到天数: 171 天

    [LV.7]常住居民III

     楼主| 发表于 2020-1-20 09:50 | 显示全部楼层
    t3486784401 发表于 2020-1-19 18:34
    这是一个共模信号影响差模检测的问题。

    ADS1115 目测是一个差分的 ADC 单元,

    万分感谢!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    点灯·blinker-app智动化设置不工作,还需设置那些?
    点灯·blinker-app智动化
    void loop() { Blinker.run(); // Blinker.delay(100); if (read_time ==
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    点灯·blinker-3 天猫精灵接入8266+继电器控制灯
    点灯·blinker-3 天猫精灵
    继续倒腾,今天试试把“点灯”接入家里的天猫精灵。 参考“点灯”官网教程:ht
    arduino无法加载库原因
    arduino无法加载库原因
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表