如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?
这个问题,是第一次接触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管脚上的实际电压值?相关推荐
- 【51单片机】LED模块和独立按键的使用
目录 一.原理介绍 1.LED灯的原理 2.电阻R1的作用 3.为什么D2二极管不用外接电阻? 4.点灯原理 二.点亮一个LED灯 电路分析
- ADC值转换成实际电压值
如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值? 这个问题,是第一次接触ADC时候,大家都会遇到的问题. 会读到什么值 单片机会读到什么值?需要看一个特性,就是几位 ...
- ADC值转换为电压值(机械语言得出电压值)
如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值? 这个问题,是第一次接触ADC时候,大家都会遇到的问题. 会读到什么值 单片机会读到什么值?需要看一个特性,就是几位 ...
- 闲聊飞思卡尔ADC模块
因为 ADC 模块是各种控制比较重要的功能模块,基本的保护算法都要考 ADC 的采样数据来执行,所以 ADC 模块还是要熟练掌握,今天我们就来学习下飞思卡尔的ADC模块,如果有猿友使用过m ...
- 《蓝桥杯CT107D单片机竞赛板》:独立按键模块
独立按键模块 实验简介 实验原理图 实验原理 实验程序 按下独立键盘上每一个键,对应LED状态取反 按键值在数码管上显示 S4长按显示4,短按显示0,其他显示原来的键值 实验简介 CT107D单片机开 ...
- STM32单片机+LD3320语音识别模块+MP3模块或者nsy8266语音合成模块制作的语音插座
自己利用空闲时间,用32单片机和一些模块做了一个语音插座,既有12V直流电输出,也有两路220交流输出(其中一路可以支持高低档切换,实现原理就是在两个继电器中间串一个1N5408二极管).本制作语音插 ...
- 单片机控制GSM模块实现短信收发的软件设计
摘要:借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理.详细介绍单片机控制GSM模块工作的软件实现过程,对怎样用单片机控制GSM模块收发短信进行探讨,也对程序设计的主体思想作 ...
- STM32单片机通过ESP8266WiFi模块与Android APP实现数据传输(二)---上位机搭建
事物的难度远远低于对事物的恐惧 完成对STM32单片机和ESP8266 WiFi模块的配置之后,接下来需要完成Android APP代码的编写以及实现. 1.添加网络权限 因为我们需要对WiFi进行操 ...
- Aurix TC3xx系列MCU ADC模块简介(一)
文章目录 1 前言 2 ADC模块简介(TC3xx) 1.1 ADC模块特点 1.2 转换器内部结构 1.3 转换时间 3 EDSADC模块简单介绍 >>返回总目录<< 1 前 ...
最新文章
- 每天工作4小时的程序员【转】
- Access数据库操作软件研究
- jep290涉及jdk版本_JDK 13中的JEP 355文本块
- 分数化简_分数应用题七讲 (一) 图示法解分数应用题
- PclZip:强大的PHP压缩与解压缩zip类
- Navicat Premium 15 连接Oracle数据库解决方案
- Linux内核 触摸板,Linux下关闭触摸板和触摸杆
- 深度学习2.0-29.卷积神经网络
- WinForm设置窗体默认控件焦点
- [机器学习导论]——第一课 机器学习概述
- Lottie动画测试工具
- 浏览器支持H.265解码总结
- Java设计模式之外观模式(门面模式,迪米特法则的具体实现,抽象外观类改进)
- win7记事本的小窍门应用可以学会
- 夕拾朝花——我的2016
- 当Java虚拟机遇上Linux Arena内存池
- 技术科普丨解密无处不在的EMC干扰
- Unity中 高通ar打开摄像头
- pythongui学生管理系统不需要链接数据库的完整代码_毕设——Python实现带GUI和连接数据库的图书管理系统!...
- Python:向IRIS发送邮件申请事件或者连续数据