Что такое АЦП и как он работает


Несколько десятилетий назад все электронные устройства, которые мы используем сегодня, такие как телефоны, компьютеры, телевизоры и т. д., были аналоговыми по своей природе. Затем постепенно стационарные телефоны были заменены современными мобильными телефонами, ЭЛТ-телевизоры и мониторы были заменены светодиодными дисплеями, компьютеры на электронных лампах стали более мощными с микропроцессорами и микроконтроллерами внутри них и так далее. 

Что такое АЦП и как он работает

В сегодняшнюю цифровую эпоху мы все окружены передовыми цифровыми электронными устройствами, и это может ввести нас в заблуждение, думая, что все вокруг нас является цифровым по своей природе, что не соответствует действительности. Мир всегда был аналоговым по своей природе, например, все, что мы, люди, чувствуем и переживаем, например, скорость, температура, скорость воздуха, солнечный свет, звук и т. д., является аналоговым по своей природе. Но наши электронные устройства, работающие на микроконтроллерах и микропроцессорах, не могут напрямую считывать/интерпретировать эти аналоговые значения, поскольку они работают только с 0 и 1. Итак, нам нужно что-то, что преобразует все эти аналоговые значения в 0 и 1, чтобы наши микроконтроллеры и микропроцессоры могли их понимать. Это нечто называется аналого-цифровыми преобразователями или сокращенно АЦП. В этой статье мы узнаем все об АЦП и о том, как их использовать.

Что такое АЦП и как его использовать?

Как было сказано ранее, АЦП (в англ. - ADC, Analog to Digital Converter) означает аналого-цифровое преобразование и используется для преобразования аналоговых значений из реального мира в цифровые значения, такие как 1 и 0. Так что же это за аналоговые значения? Это те, которые мы видим в повседневной жизни, такие как температура, скорость, яркость и т. д. Но подождите! Может ли АЦП преобразовывать температуру и скорость непосредственно в цифровые значения, такие как 0 и 1?

Нет, решительно нет. АЦП может преобразовывать только аналоговые значения напряжения в цифровые значения. Поэтому какой бы параметр мы ни хотели измерить, его следует сначала преобразовать в напряжение, это преобразование можно выполнить с помощью датчиков. Например, для преобразования значений температуры в напряжение мы можем использовать термистор, аналогично для преобразования яркости в напряжение мы можем использовать фоторезистор (LDR). Как только оно преобразуется в напряжение, мы можем прочитать его с помощью АЦП.

Чтобы знать, как использовать АЦП, мы должны сначала ознакомиться с некоторыми основными терминами, такими как разрешение каналов, диапазон, опорное напряжение и т. д.

Разрешение (биты) и каналы в АЦП

Когда вы читаете спецификацию любого микроконтроллера или микросхемы АЦП, подробные сведения об АЦП будут даны с использованием терминов «каналы» (channels) и «разрешение» (Resolution) (биты). Например, ATmega328 Arduino UNO имеет 8-канальный 10-битный АЦП. Не каждый вывод микроконтроллера может считывать аналоговое напряжение. Термин «8-канальный» означает, что в этом микроконтроллере ATmega328 имеется 8 контактов, которые могут считывать аналоговое напряжение, и каждый вывод может считывать напряжение с разрешением 10 бит. Это будет варьироваться для разных типов микроконтроллеров. 

Предположим, что диапазон нашего АЦП составляет от 0 В до 5 В, и у нас есть 10-битный АЦП. Это означает, что наше входное напряжение 0–5 В будет разделено на 1024 уровня дискретных аналоговых значений (2 10 = 1024). Это означает, что 1024 — это разрешение для 10-битного АЦП, аналогично для 8-битного АЦП разрешение будет 512 (2 8 ), а для 16-битного АЦП разрешение будет 65 536 (2 16 ).

При этом, если фактическое входное напряжение равно 0 В, то АЦП микроконтроллера будет считывать его как 0, а если оно равно 5 В, то микроконтроллер будет считывать 1024, а если оно находится где-то около 2,5 В, то микроконтроллер будет считывать 512. Мы можем использовать приведенные ниже формулы. для расчета цифрового значения, которое будет считываться микроконтроллером на основе разрешения АЦП и рабочего напряжения.

Опорное напряжение для АЦП

Еще один важный термин, с которым вам следует ознакомиться, — это опорное напряжение (reference voltage). Во время преобразования АЦП значение неизвестного напряжения находится путем сравнения его с известным напряжением. Это известное напряжение называется опорным напряжением. Обычно все микроконтроллеры имеют возможность устанавливать внутреннее опорное напряжение, то есть вы можете установить это напряжение внутри на какое-то доступное значение с помощью программного обеспечения (программы). В плате Arduino UNO опорное напряжение по умолчанию установлено на 5 В, при необходимости пользователь может установить это опорное напряжение извне через вывод Vref, также после внесения необходимых изменений в программное обеспечение.

Всегда помните, что измеренное значение аналогового напряжения всегда должно быть меньше значения опорного напряжения, а значение опорного напряжения всегда должно быть меньше значения рабочего напряжения микроконтроллера.

Пример

Рассмотрим пример АЦП, который имеет 3-битное разрешение и опорное напряжение 2 В. Таким образом, он может отображать аналоговое напряжение 0–2 В с 8 (2 3 ) различными уровнями, как показано на рисунке ниже:

Соответствие между аналоговыми и цифровыми значениями в 3-битном АЦП

Таким образом, если аналоговое напряжение равно 0,25, то цифровое значение будет 1 в десятичном виде и 001 в двоичном. Аналогично, если аналоговое напряжение равно 0,5, то цифровое значение будет равно 2 в десятичном формате и 010 в двоичном формате.

Некоторые микроконтроллеры имеют встроенный АЦП, например Arduino, MSP430, PIC16F877A, но некоторые микроконтроллеры его не имеют, например 8051, Raspberry Pi и т. д., и нам приходится использовать некоторые внешние микросхемы аналого-цифрового преобразователя, такие как ADC0804, ADC0808.

Ранее на нашем сайте мы рассматривали использование АЦП в различных микроконтроллерах (платах):

Типы АЦП и принцип их работы

Существует много типов АЦП, наиболее часто используемые из них — параллельный АЦП (Flash ADC), двухтактный АЦП (Dual Slope ADC) и АЦП с последовательным приближением (Successive approximation ADC). Как работает каждый из этих АЦП и разница между ними выходит за рамки этой статьи поскольку они довольно сложны. Но чтобы дать общее представление, АЦП имеет внутренний конденсатор, который заряжается аналоговым напряжением, которое необходимо измерить. Затем измеряем значение напряжения, разряжая конденсатор за определенный период времени.

Некоторые часто возникающие вопросы по АЦП

Как измерить напряжение более 5 В с помощью АЦП?

Как обсуждалось ранее, модуль АЦП не может измерять значение напряжения, превышающее рабочее напряжение микроконтроллера. То есть микроконтроллер 5 В может измерять максимум 5 В с помощью своего вывода АЦП. Если вы хотите измерить что-то большее, чем, скажем, вы хотите измерить 0–12 В, тогда вы можете преобразовать 0–12 В в 0–5 В, используя делитель потенциала или схему делителя напряжения . В этой схеме будет использоваться пара резисторов, преобразующих входное напряжение. В нашем примере выше мы должны использовать резистор 1 кОм и резистор 720 Ом, включенные последовательно с источником напряжения, и измерить напряжение между резисторами.

Как преобразовать цифровые значения АЦП в фактические значения напряжения?

При использовании преобразователя АЦП для измерения аналогового напряжения результат, полученный микроконтроллером, будет цифровым. Например, в 10-битном микроконтроллере с напряжением 5 В, когда фактическое напряжение, которое необходимо измерить, составляет 4 В, микроконтроллер будет считывать его как 820, мы можем снова использовать обсуждаемые выше формулы для преобразования 820 в 4 В, чтобы мы могли использовать его в нашем расчеты. Давайте перепроверим то же самое.

Надеюсь, после прочтения нашей статьи вы углубите свои знания по аналого-цифровым преобразователям.

(Проголосуй первым!)
Загрузка...
114 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *