这里我们继续来说说ADC的内容,根据上面的内容我们知道Digital Analog Change实现了模拟信号的输出,那么这里的ADC对应的就是模拟信号输入。

这是一种将模拟信号转为数字信号的实现,Analog Digital Change(模拟数字转换,)模数转换,也叫做ADC采集、AD模拟量采集。

Arduino的A0~A5引脚具备10位的AD采集,也就是说采集的AD值的范围是在0~1023之间。那么AD采集是如何实现的呢?别急,我们继续看下去!

关于AD采集,最常用的是“电阻分压式”采集的方法来实现。这里我以光敏传感器为例,讲解该电路设计。

光敏传感器的探头(检测部位)是一个光敏电阻,是一个变值电阻,电阻值受光照强度的影响而变化。我们可以通过电阻值来得知当前的光照强度。

那么单片机如何获取这个电阻值呢?这个时候就需要“分压检测”!

VCC过光敏电阻、过分压电阻流向GND,由于光敏电阻阻值是变化的,所以在光敏电阻和定值电阻之间的位置,电压值是变化的,这个点叫做“分压检测点”。分压点接在Arduino的A0引脚,通过内置的AD采集函数analogRead可以直接获取该引脚的模拟值,同时该引脚的电压值、即分压点的电压值,由电压表进行检测显示。

可以看到,光敏电阻的电压值前期和后期变化是不一样的,这个因为分压电阻我没有选择好的原因。TinkerCAD仿真里面的光敏电阻阻值不知道是多大的,无法合理选择分压电阻,这里分压电阻我使用的是10K电阻。

这里我们可以看到AD采集的模拟量,实质上就是该引脚的电压值!而电压值转成一个数值,这个数值就是模拟量。

A/D转换的基本原理是:将参考电平按最大的转换值量化,再利用输入模拟电平与参考电平的比例来求得输入电平的测量值(V测=V参*(AD量化值/AD转换的最大值))。

  下面以参考电平为5V,转换的精度为10位为例来说明如何取得实际的测量值是多少。如果AD量化值为205,则V测= 5V×205/1023≈2V。因为V测=V参×(AD量化值/AD转换的最大值)=AD量化值×(V参/AD转换的最大值),而针对具体的硬件电路,“V参/AD转化的最大值”是一个固定的系数。而这个系数,就相当于测试的精度。

这就是ADC(Analog Digital Change,模拟转数字)采集的实现!

上面我分享一个”电阻分压式“检测电路,这个电路适用于所有的电阻式传感器。只要该传感器式通过电阻值变化来检测相应数值的,我们都可以通过”分压检测式“电路实现。我们再来看个电压检测模块,如下图!

这个模块可以检测25V以内的电源电压。看起来很简单,只有两个电阻,一个是3002电阻(30KΩ),另一个是7501电阻(7.5KΩ)。这里分享大家一个工具网站

这就是电源电压测量的原理!通过电阻分压的形式来读取AD值!

最后再给大家来个好玩的电路分享!

这就是ADC和DAC!这也就是数字和模拟!