1.引言

最近又在忙低功耗相关项目,需要对设备电池进行电压进行检测,ad采集的例程原厂都有给到,相关的文件说明都有,但是理想和现实还是比较骨感的,采集的电压总是不对,调了两天,赶在周末前终于发现了问题。完美!!可能稍微不完美的就是原厂的技术支持,根本就不支持,发了微信都不回复,态度不太行。。。。。不过最后还是自己发现了问题,真解气!

2.现象

电压检测使用的是单片机的引脚,但电池电压一般为4.2v,大于GPIO的承受电压3.3v,所以需要一个分压电路,分压电路原理图如下图所示。

上图中R7和R8是分压电阻,使用的阻值都是1M的电阻,通过理论分析,测量端点应该是2.5V,但是ad采集出来的内容却不是,甚至是0.几V,真是瞎了,跟所学的理论知识完全对不上,然后问原厂的人,原厂的人说肯定是分压电阻有问题,让我们看看,然后。。。。。就没有然后了,都不知道看什么,他们啥都不说,真的气人。

然后我们拿开发板用同样的代码去测试,直接将测量点接到一个较高电压值得端点,比如:3.3v的位置,然后是正常的。但是接到上图的测量端点,却是不行,但问题在于:我用电压表去测量上图的测量端点是正常的2.5V

所以真的...无语.....

3.发现问题

在测试的过程中,使用了一个小的电阻进行分压测试,然后突然就真的可以了,显示了测量端点理论的电压值,经分析。一开始我们用的是1M+1M的电阻,通过测量端点的电流只有大约0.5ua,真的太小了,导致无法测量出端点的电压值,换了小电阻5K+5K之后,经过测量端点的电流0.5mA,这时AD就可以正常采集电压值了。

总结:ad在采集电压的时候,采集端点允许通过的电流不能太小???但是电压表可以测量出来,奇了怪了,但问题解决就是减小分压电路的电阻,让通过测量端点的电流大一点。

51 单片机AD采集电压值的坑相关推荐

  1. 51单片机AD采集滑动变阻器电压并通过串口每秒发送一次电压

    51单片机AD采集电压通过串口每秒发送一次电压值 这个是题目要求,利用AD转换芯片ET2046每秒检测一次滑动变阻器电压,转换成ASCLL码后通过串口发送数据.同时加三个指示灯来显示现在的电压范围. ...

  2. 51单片机AD转换pcf8591+数码管显示+Proteus仿真二

    51单片机AD转换pcf8591+数码管显示+Proteus仿真二

  3. 单片机 ADC采集电压

    单片机:N76E003 /********************************************* 函数名:Adc_Configuration 功 能:ADC初始化配置 形 参: 返 ...

  4. 基于51单片机的简易电容值测量仪proteus仿真设计

    51单片机简易电感测量仪仿真设计( proteus仿真+程序+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0039 51单片机简 ...

  5. 用51单片机测电容容值的方法原理及一些问题的解决方案

    先来说一下电容的测量方式吧,电容测量方式有很多,其中一种是基于对RC 电路的时间常数的计算,电容的充电速度与R 和C 的大小有关,R 与C 的乘积越大,充电时间就越长.这个RC 的乘积就叫做RC电路的 ...

  6. 基于51单片机电池的电压电流温度电量监控系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 一.硬件电路组成 二.功能 三.电脑开发环境 四.Protues仿真 五.程序 六.资料包括 一.硬件电路组成 51最小系统+电压.电流采用滑动变阻 ...

  7. 51单片机--AD/DA

    AD/DA介绍 AD和DA是模拟信号和数字信号之间的转换过程. AD,全称为模拟到数字(Analog-to-Digital),指的是将模拟信号转换为数字信号的过程.在AD转换中,模拟信号经过采样.量化 ...

  8. 51单片机 AD转换

    在数逻的课程中,已经学习过AD转换的概念:将模拟信号采样.量化.编码后转换为数字信号.但是未学习过通过单片机编程,显示结果. 编码分有舍有入.只舍不入两种,量化误差前者更小.=2Vm/(2^n+1   ...

  9. 基于51单片机的电流电压过流过压监测声光报警器proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前检测的电压电流值 2.当电压/电流超过设定阈值时,蜂鸣器报警 3.按键可切换界面,并设置电压/电流阈值 原理图: ...

  10. 51单片机 自动重装载值计算

    单片机在不同的方式下,有不同的最大值.咱们现在针对单片机的方式1,设最大值为M.那么M的值应该是: M=2^16 = 65535 因为定时器是在一直加1计数的,并且在达到并且超过M的值的时候产生一个中 ...

最新文章

  1. android weight(权重)的具体分析
  2. 测试 Zoundry Raven
  3. Docker容器导入导出
  4. 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统
  5. 电子书下载:Programming Microsoft LINQ in Microsoft .NET Framework 4
  6. php 链接远程oracle,PHP连接远程oracle输出数据
  7. Bootstrap 工具提示插件Tooltip 的选项
  8. react-redux
  9. C# AForge视频录像
  10. HTML字体及文本样式
  11. 超好用的抠图软件:InPixio Photo Eraser mac版
  12. idea继承后重新方法快捷键_idea 查看类继承关系的快捷键
  13. 从产品驱动看专注和结果导向的关系
  14. iOS 7、iOS 8屏幕适配
  15. html如何设置展开全文,Js实现点击查看全文(纯手工代码)
  16. 微信 IOS系统 安卓时间格式
  17. 台式机win7连接蓝牙耳机
  18. 【笔记】openwrt - 单线复用(VLAN):拨号上网、局域网、IPTV
  19. 人脸识别(一)调用face++实现人脸检测
  20. 计算机专业本科上线分数,计算机专业本科分数线

热门文章

  1. 5款 Mac 常用PDF阅读和编辑软件推荐
  2. 【易语言界面开发系列教程之(EX_UI使用系列教程--EX组件(一键换肤))】
  3. HTTP有哪些特点?
  4. OV2640摄像头模块
  5. atmega328p引脚图_ATmega328P定时器详解
  6. 各种采样,上采样,下采样,欠采样,子采样
  7. 【AI PC端算法优化】七,RGB和YUV图像颜色空间互转SSE优化
  8. 无卡时代存取款的N种姿势:刷脸、扫码、手机Pay
  9. SSH连接工具-Tabby
  10. oracle里面asm的作用,深入了解Oracle ASM(一):基础概念