怎样测量stm32的adc基准电压(我在高职教STM32ADC电压采集与光敏电阻)
大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助头条平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件分享出来,如果您正是一名单片机爱好者或是一名同行,欢迎点赞 关注,各位的支持是本人持续输出的动力,多谢多谢!#30天学会STM32##STM32单片机##单片机#
从我们已经学到的知识可以了解到,单片机是一个典型的数字系统。数字系统只能对输入的数字信号进行处理,其输出信号也是数字的。但是在工业检测系统和日常生活中的许多物理量都是模拟量,比如温度、光照、压力、速度等等,这些模拟量可以通过传感器变成与之对应的电压、电流等电模拟量。为了实现数字系统对这些电模拟量的检测、运算和控制,就需要一个模拟量和数字量之间相互转换的过程。本项目我们就要学习这个相互转换的过程和用来做这类转换的一类传感器——光敏电阻。
【学习目标】
- 了解ADC的主要技术指标;
- 了解ADC的工作原理及结构;
- 掌握STM32的ADC库函数配置方法;
- 结合光敏电阻,掌握ADC操作过程。
与STM32 ADC有关的信息量不小,为了不让篇幅太长,本章打算分五个部分来讲解,本文是第一部分。
一、ADC的背景知识ADC是模拟量到数字量的转换,依靠的是模数转换器(Analog to Digital Converter),简称ADC。DAC是数字量到模拟量的转换,依靠的是数模转换器 (Digital to Analog Converter),简称DAC。它们的道理完全一样,只是转换方向不同,因此我们讲解主要以ADC为例。
1.1 生活中的ADC我们生活中有很多ADC的例子,只是没有在单片机领域里应用而已,下面带着大家一起感悟一下ADC的概念。
什么是模拟量?就是指在一定范围内连续变化的量,也就是在一定范围内可以取任意值。比如卷尺,从0到10米之间,可以是1cm,也可以是1.001cm,还可以是10.000 ……后边有无限个小数。总之,任何两个数字之间都有无限个值,故称之为连续变化的量,即模拟量。
以卷尺为例,如图1所示,上面被人为的做上了刻度符号,每两个刻度之间的间隔是1mm,这个刻度实际上就是我们对模拟量的数字化,由于有一定的间隔,不是连续的,所以在专业领域里我们称之为离散的。ADC就是起到把连续的信号用离散的数字表达出来的作用。那么我们就可以使用卷尺这个“ADC”来测量连续的长度或者高度这些模拟量。
图1 卷尺刻度示意
我们往杯子里倒水,水位会随着倒入水量的多少而变化。现在就用这个卷尺来测量杯子里的水位的高度。水位变化是连续的,而我们只能通过尺子上的刻度来读取水位的高度,获取我们想得到的水位的数字量信息。这个过程,就可以简单理解为我们电路中的ADC采样。
1.2 ADC的主要指标我们在选取和使用ADC的时候,依靠什么指标来判断很重要。由于ADC的种类很多,分为积分型、逐次逼近型、并行/串行比较型、Σ Δ型等多种类型。同时指标也比较多,并且有的指标还有轻微差别,在这里以初学者便于理解的方法去讲解,如果和某一确定类型ADC概念和原理有差别,也不会影响实际应用。
1)ADC的位数
一个n位的ADC表示这个ADC共有2的n次方个刻度。STM32的ADC是12位的,输出的是从0 ~ 2^12 - 1个数字量,也就是2的12次方个数据刻度。
2)基准源
基准源,也叫基准电压,是ADC的一个重要指标,要想把输入ADC的信号测量准确,那么基准源首先要准,基准源的偏差会直接导致转换结果的偏差。比如一根塑料刻度尺,总长度本应该是20厘米,假定这根刻度尺被火烤了一下有点变形,实际变成了20.5厘米,再用这根刻度尺测物体长度的话自然就有了偏差。假如我们的基准源应该是3.3V,但是实际上提供的却是3.0V,这样误把3.0V 当成了3.3V来处理的话,偏差就会比较大。
3)分辨率
分辨率是数字量变化一个最小刻度时,模拟信号的变化量,定义为满刻度量程与2^n的比值。假定3.3V的电压系统,使用12位的ADC进行测量,那么相当于把3.3V平均分成了2^12份,那么分辨率就是3.3/4096 ≈ 0.008V。
4)转换速率
转换速率,是指ADC每秒能进行采样转换的最大次数,单位是sps(即samples per second),它与ADC完成一次从模拟到数字的转换所需要的时间互为倒数关系。ADC的种类比较多,其中积分型的ADC转换时间是毫秒级的,属于低速ADC;逐次逼近型ADC转换时间是微秒级的,属于中速ADC;并行串行的ADC的转换时间可达到纳秒级,属于高速ADC。
ADC的这几个主要指标大家先熟悉一下,对于其它的,作为一个初学者来说,先不着急深入理解。以后使用过程中遇到了,再查找相关资料深入学习,当前重点是在头脑中建立一个ADC的基本概念。
二、光敏电阻光敏电阻(light-dependent resistor,LDR)是一种随着外界光线强弱变化而变化的电阻,如图2所示。入射光强,电阻减小;入射光弱,电阻增大。常用材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等半导体材料。一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化),如路灯、走廊光控灯、烟雾警报器等。
图2 不同尺寸的光敏电阻
由此可见,光敏电阻其实就可以当成电位器来对待,只不过阻值的调节是通过光线强弱来实现的。在应用上,光敏电阻和一个定值电阻串联形成分压电路即可,我们开发板上就是这么设计的,如图3所示,分压点的电压被STM32的PC3引脚采集,这样在程序上就可以根据采集到的电压值做进一步的控制。
图3 开发板上的光敏电阻电路
(第一部分完,第二部分我们来一览STM32的ADC)
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com