什么是ADC(模拟到数字转换器)?

ADC(模拟到数字转换器)是一种电子电路,其将模拟数据(连续)从自然转换为数字数据(二进制)。ADC电路可以作为独立ADC IC模块找到或嵌入到微控制器中。在您深入了解ADC之前,您最好了解以下功能。

ADC功能

1.参考电压

它是充当计算数字数据的参考所需的电压。该公式可以描述如下:

ADC数字数据=(vin / vref)X最大数字数据

虽然VIN是来自自然的模拟数据(由传感器测量),而VREF是参考电压,并且数字数据的最大值是编码过程中的最大数字数据数量。

2.采样率

它定义了模拟与数字的转换速度,ADC可以每秒做。显示采样率的单位是SPS(每秒样本)。要获取有关采样率的信息,必须选中相关的数据表。

高采样率

高采样率可帮助您正确挑选突然的峰值数据,而下则较低的采样率则无法进行。这是快速采样率的好处。

低采样率

3.解决方案

它决定了ADC的精度水平。8位分辨率ADC从12位分辨率ADC具有不同的精度。8位ADC的输入电压可以转换为255个数字值,这是2的结果N.-1。另一方面,12位ADC将其输入电压转换为4095个数字值。为了总结,12位ADC的精度高于8位ADC。分辨率越高,准确性越高。

例如:

假设您拥有ADC IC模块,具有8位分辨率和5VDC为VREF。该8位装置255的数字值组合。它取自了这个公式。

2N.-1 =组合量

28.- 1 = 255

实际的ADC步骤(比特)是256,因为它从零开始(0-255)。

“0”表示00000000最小值,而“255”表示1111 1111最值。

为了计算电压变化,请记住VREF是5VDC。

电压变化= VREF÷总ADC步骤

= 5V¼256

= 19.5 mV /位

这意味着8位分辨率ADC模块将改变电压19.5 MV.每一步。要获得更高的分辨率,那么您需要获得更多n位。让我们尝试10位

210.- 1 = 1023

实际比特是1024(0-1023)。然后将电压变化是。

电压变化= VREF÷总ADC步骤

= 5V÷1024

= 4.88 mV /位

如果您的应用需要电压会在4.88mv下方变化,则必须转到另一个更高分辨率的ADC模块。

ADC的工作原理

ADC包括以下将模拟数据转换为数字数据的子进程。看看下面的插图。

ADC工作流程

在这种情况下,让我们假设我们使用4位ADC分辨率。

1.抽样

它被描述为在同一时段的特定时间点处采取模拟数据的一定值的过程。采样频率越高,获得的数据越多,速度越快,转换率是。

采样

2.量化

它是将从先前进程中获得的某些值数据组分组到数据组中。数据组编号越高,从模拟数据获得的特定值较小的数据间隙,那么精度越高。

量化

3.编码

此过程是编写数字(二进制​​)形式的量化数据。由于我们使用4位ADC分辨率,因此结果如下。

x1 = 1010,x2 = 1100,x3 = 1110,x4 = 1111,x5 = 1111,x6 = 1111,x7 = 1110,x8 = 1100,x8 = 1100,x9 = 1010,x10 = 0101,x11 = 0101,x12 = 0011,x13 =0001,X14 = 0001,X15 = 0001,X16 = 0001,X17 = 0011,X18 = 0101,以及X19 = 0111。

编码

要获得更大的编码图形,请查看以下图片。

编码 - 大视图

这是2,3和4位的另一个伟大演示。

ADC类型

1.闪存ADC

这种类型的ADC由比较器系列组成。输入信号连接到非反相引脚。同时,反相引脚连接到分压器梯形图。这是最简单的ADC类型。工作原理很简单。当输入信号(电压)高于某些梯形图,然后将其所有输出位设置为“一个”。通过比较器输出和转换器(编码器)输出关系,获得最终二进制读数。

2.计数器斜坡ADC

此ADC类型需要更长的时间来获取二进制输出。它由二进制计数器,比较器,数字到模拟转换器,控制电路,栅极和锁存器组成。它也被称为数字斜坡ADC。分辨率越高,转换时间越长。它基于以下公式:

tc(max)=(2N.- 1)TCLK

转换与二进制计数器同时开始。当比较器产生“零”并表示将获得二进制输出时,将应用复位条件。

3.连续近似寄存器ADC

它由比较器,数字到模拟转换器,连续近似寄存器和控制电路组成。通过比较输入电压(VIN)和DAC电压(VDAC)来开始转换。MSB(最有效位)将由“一个”设置,其余的将在循环开始时是“零”。当VIN> VDAC然后MSB后的下一位将被更改为“一个”。如果VIN

TC.=N×TCLK.

该ADC提供了良好的精度,需要低功耗。

现实生活应用

如上所述,现实生活中的ADC可以在独立ADC IC模块中找到或嵌入到微控制器中。但是,真相是根据您的需求和从头开始建立任何类型的ADC。在您处于可怕需求和短时间内,在微控制器中使用ADC模块或ADC并没有错误。

1.独立ADC IC模块(ADS1115)

ADS1115模块此处是独立ADC IC模块的样品产品。它具有16位分辨率,使转换的精度高。有四个通道可用,当您有多个模拟传感器时使其足够。其采样率为每秒3300个样品。它支持I2C接口通过SCL和SDA引脚与任何单板计算机通信。

它肯定值得值得一致,与单板计算机(SBC)兼容,这些计算机不附带模拟或ADC GPIO。要将ADS1115连接到Raspberry PI,作为SBC示例,您可以了解I2C总线连接如何在两者之间工作。

数据表:https://www.ti.com/lit/ds/symlink/ads1115.pdf.

2.微控制器中的ADC(ATMEGA8)

本节将Atmega8作为存在ADC功能的示例产品。它具有10位连续近似ADC。该IC通过SPI串行端口提供6个通道ADC引脚。

这种产品的目的不同于独立的ADC IC模块。它可以从ADC功能上保存更多功能。微控制器可以处理模数转换数据转换,直到显示LCD显示屏中的读数。

数据表:https://ww1.microchip.com/downloads/en/devicedoc/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf.

3. ADC在Arduino Nano

当涉及ADC在Arduino时,即在Atmega微控制器产品中只意味着ADC。

正如您所知,那里有几个Arduino板型号。在这种情况下,我们只涵盖Arduino Nano V2.3。它是一个基于Atmega168的董事会。要使用ADC功能,您需要良好地关注引脚18作为ISF(ADC电压参考)和引脚19-26作为模拟输入(VIN)。它提供了一个10位分辨率的ADC。

这种产品的目的比独立ADC IC模块更多。它可以从ADC功能上保存更多功能。微控制器可以处理模数转换数据转换,直到显示LCD显示屏中的读数。

数据表:https://www.arduino.cc/en/uploads/main/arduinonanomanual23.pdf.

用ADC测量仪器

有无数的测量仪器与ADC。通常,模拟数据通过ADC转换为数字数据(二进制)。数字示波器(不是模拟人)是其中一个例子。除此之外,多电表是最容易理解和最常用于电子世界的人。

结论

我们在这个现代化的时代遇到的便利不是一个复杂的系统。例如,我们可以轻松检查房间或冰箱等某些东西的温度。有各种机制落后于它。温度是自然提供的模拟数据。另一方面,电子设备显示器的温度读数是数字数据处理的结果。包括ADC的帮助(模拟到数字转换器)。