这个问题,是第一次接触ADC时候,大家都会遇到的问题。
会读到什么值
单片机会读到什么值?需要看一个特性,就是几位的ADC,在手册上就会给出,例如,STM32的ADC是12位的。另外,还有8位,10位,16位,24位等。
我先告诉你答案:STM32读到的ADC值,是从0到4095,当你把ADC引脚接了GND,读到的就是0,当你把ADC引脚接了VDD,读到的就是4095。
接下来告诉你为什么:前面提到,STM32的ADC是12位的,我们知道,8位的值是从0~255;16位的值,是从0~65535。这两个位的最大值,是我们最为熟悉的。
(怎么算出来的?这问题就又降低到另一个层面了,这里我们说的几位的值,每个位只能是0或者1,比如2位的值,可以表示为00 01 10 11四种不同的值,这是以2进制表示的,转换成十进制就是0 1 2 3,所以得出结论,2位的值可以表示从0~3。同理,3位的值,可以表示十进制的0~9,你可以展开计算一下。4位的值,可以表示0~16,5位的值,可以表示从0~31,同理,你可以得出任意位的值可以表示的范围。)

所以,12位的值,可以表示从0~4095,这就是先在感性上,认识了为什么12位的ADC的值,是从0~4095.

读到的值怎么换算成实际的电压值
前面提到了,我们输入GND,读到的值是0,输入VDD,得到的值是4095,那么,当你读到2035的时候,你知道输入电压多少V吗?这个问题,归根接地,就到了数学XY坐标,已知两点坐标值(0,0)(3.3,4095),给出任意X坐标值,求Y值的问题了吧?简单不简单?
ADC测电压2-2

参考电压是什么
讨论这个问题之前,你先拿万用表量一下你的VDDA的实际电压是多大?是不是标准的3.300V?应该不是吧?或许是2.296V,或许是3.312V。然后你把VDD连接到ADC引脚之后,得到的是4095,也就是,实际上,当你读出4095这个数据的时候,实际的电压值不是你想象中的3.300V。有些初学者,觉得几毫伏的电压差无所谓,但实际应用中,几毫伏就可能代表很大的实际工况,例如,在一个量程为50克的电子称上。
所以,这时候,芯片厂商就想了一个办法,给ADC模块中引入参考电压,由非常标准的参考电压芯片来接入参考电压引脚。标准的电压芯片,我们一般叫做参考电压芯片,或者叫做基准电压芯片。例如REF3133(输出3.300V) REF3025(输出2.500V)等等。
注意:STM32 的100脚以上(含100脚)有参考电压引脚。在没有参考电压引脚的单片机上,可以把基准电压芯片接入VDDA,但是VDDA和VDD的电压差不能超过0.3V,例如,VDD是3.3V的话,可以给VDDA接入一个3.3V的参考电压芯片或者3.0V的参考电压芯片,但是不能接入2.5V的参考电压芯片,后果就是芯片不能工作。

ADC引脚的输入电压范围是多大
一般情况下,ADC引脚的输入电压,是从0~VDD,如果有REF引脚,一般是0~Vref,也有0~2Vref的情况。
如果被测的电压大于ADC的输入电压,例如,要用STM32测量0~5V的电压的话,可以在输入ADC引脚之前,加入电阻分压和放大器电路
总结:看完这篇文章,你是否会觉的,一切都只是基础知识的融合。

如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?相关推荐

  1. 【51单片机】LED模块和独立按键的使用

    目录 一.原理介绍 1.LED灯的原理 2.电阻R1的作用 3.为什么D2二极管不用外接电阻? 4.点灯原理 二.点亮一个LED灯 电路分析

  2. ADC值转换成实际电压值

    如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值? 这个问题,是第一次接触ADC时候,大家都会遇到的问题. 会读到什么值 单片机会读到什么值?需要看一个特性,就是几位 ...

  3. ADC值转换为电压值(机械语言得出电压值)

    如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值? 这个问题,是第一次接触ADC时候,大家都会遇到的问题. 会读到什么值 单片机会读到什么值?需要看一个特性,就是几位 ...

  4. 闲聊飞思卡尔ADC模块

     因为 ADC 模块是各种控制比较重要的功能模块,基本的保护算法都要考 ADC 的采样数据来执行,所以 ADC 模块还是要熟练掌握,今天我们就来学习下飞思卡尔的ADC模块,如果有猿友使用过m ...

  5. 《蓝桥杯CT107D单片机竞赛板》:独立按键模块

    独立按键模块 实验简介 实验原理图 实验原理 实验程序 按下独立键盘上每一个键,对应LED状态取反 按键值在数码管上显示 S4长按显示4,短按显示0,其他显示原来的键值 实验简介 CT107D单片机开 ...

  6. STM32单片机+LD3320语音识别模块+MP3模块或者nsy8266语音合成模块制作的语音插座

    自己利用空闲时间,用32单片机和一些模块做了一个语音插座,既有12V直流电输出,也有两路220交流输出(其中一路可以支持高低档切换,实现原理就是在两个继电器中间串一个1N5408二极管).本制作语音插 ...

  7. 单片机控制GSM模块实现短信收发的软件设计

    摘要:借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理.详细介绍单片机控制GSM模块工作的软件实现过程,对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作 ...

  8. STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建

    事物的难度远远低于对事物的恐惧 完成对STM32单片机和ESP8266 WiFi模块的配置之后,接下来需要完成Android APP代码的编写以及实现. 1.添加网络权限 因为我们需要对WiFi进行操 ...

  9. Aurix TC3xx系列MCU ADC模块简介(一)

    文章目录 1 前言 2 ADC模块简介(TC3xx) 1.1 ADC模块特点 1.2 转换器内部结构 1.3 转换时间 3 EDSADC模块简单介绍 >>返回总目录<< 1 前 ...

最新文章

  1. 每天工作4小时的程序员【转】
  2. Access数据库操作软件研究
  3. jep290涉及jdk版本_JDK 13中的JEP 355文本块
  4. 分数化简_分数应用题七讲 (一) 图示法解分数应用题
  5. PclZip:强大的PHP压缩与解压缩zip类
  6. Navicat Premium 15 连接Oracle数据库解决方案
  7. Linux内核 触摸板,Linux下关闭触摸板和触摸杆
  8. 深度学习2.0-29.卷积神经网络
  9. WinForm设置窗体默认控件焦点
  10. [机器学习导论]——第一课 机器学习概述
  11. Lottie动画测试工具
  12. 浏览器支持H.265解码总结
  13. Java设计模式之外观模式(门面模式,迪米特法则的具体实现,抽象外观类改进)
  14. win7记事本的小窍门应用可以学会
  15. 夕拾朝花——我的2016
  16. 当Java虚拟机遇上Linux Arena内存池
  17. 技术科普丨解密无处不在的EMC干扰
  18. Unity中 高通ar打开摄像头
  19. pythongui学生管理系统不需要链接数据库的完整代码_毕设——Python实现带GUI和连接数据库的图书管理系统!...
  20. Python:向IRIS发送邮件申请事件或者连续数据

热门文章

  1. PLC闪烁电路的实现
  2. 新概念英语第一册学习笔记
  3. 4 数据校验和防碰撞
  4. Tesseract-OCR -01-Tesseract 介绍
  5. 无框画与动漫卡通的美妙相遇
  6. LabVIEW使用VI Server的时候出现1003错误
  7. 全景krpano相关问题解答
  8. 【学术】进行一场“认真准备的学术汇报”
  9. 北京大学计算机学院的院徽,院徽、logo和学院口号征集活动
  10. 基于 Web 端的人脸识别身份验证