- Аналоговый мир с цифровой электроникой
- Что такое АЦП и как им пользоваться?
- Разрешение (биты) и каналы в АЦП
- Опорного напряжения для АЦП
- пример
- Типы и работа АЦП
- Некоторые часто возникающие вопросы по ADC
Аналоговый мир с цифровой электроникой
Несколько лет назад все электронные устройства, которые мы используем сегодня, такие как телефоны, компьютеры, телевизоры и т. Д., Были аналоговыми по своей природе. Постепенно стационарные телефоны были заменены современными мобильными телефонами, ЭЛТ-телевизоры и мониторы были заменены светодиодными дисплеями, компьютеры с электронными лампами эволюционировали, чтобы стать более мощными с микропроцессорами и микроконтроллерами внутри них и так далее…
В сегодняшнюю цифровую эпоху мы все окружены передовыми цифровыми электронными устройствами, это может ввести нас в заблуждение, полагая, что все вокруг нас цифровое по своей природе, что не соответствует действительности. Мир всегда был аналоговым по своей природе, например, все, что мы, люди, чувствуем и переживаем, такие как скорость, температура, скорость воздуха, солнечный свет, звук и т. Д., Аналогично по природе. Но наши электронные устройства, работающие на микроконтроллерах и микропроцессорах, не могут считывать / интерпретировать эти аналоговые значения напрямую, поскольку они работают только с нулями и единицами. Поэтому нам нужно что-то, что преобразует все эти аналоговые значения в 0 и 1, чтобы наши микроконтроллеры и микропроцессоры могли их понять. Это нечто называется аналого-цифровыми преобразователями или сокращенно АЦП. В этой статье мы узнаемвсе об АЦП и о том, как их использовать.
Что такое АЦП и как им пользоваться?
Как было сказано ранее, АЦП означает аналогово-цифровое преобразование и используется для преобразования аналоговых значений из реального мира в цифровые значения, такие как единицы и нули. Так что же это за аналоговые значения? Это те, которые мы видим в повседневной жизни, такие как температура, скорость, яркость и т. Д. Но подождите !! Может ли АЦП преобразовывать температуру и скорость напрямую в цифровые значения, такие как нули и единицы?
Нет, демонстративно нет. АЦП может преобразовывать только аналоговые значения напряжения в цифровые значения. Итак, какой бы параметр мы ни хотели измерить, он должен быть сначала преобразован в напряжение, это преобразование может быть выполнено с помощью датчиков. Например, для преобразования значений температуры в напряжение мы можем использовать термистор, аналогично для преобразования яркости в напряжение мы можем использовать LDR. После преобразования в напряжение мы можем считать его с помощью АЦП.
Для того, чтобы знать, как использовать АЦП мы должны сначала ознакомиться с некоторыми основными терминами, как, разрешение каналов, диапазон, источник опорного напряжения и т.д.
Разрешение (биты) и каналы в АЦП
Когда вы читаете спецификацию любого микроконтроллера или ИС АЦП, подробные сведения об АЦП будут даны с использованием терминов каналы и разрешение (биты). Например , 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. Мы можем использовать следующие формулы для расчета цифрового значения, которое будет считываться MCU на основе разрешения АЦП и рабочего напряжения.
(Разрешение АЦП / Рабочее напряжение) = (Цифровое значение АЦП / Фактическое значение напряжения)
Опорного напряжения для АЦП
Еще один важный термином, который вы должны быть знакомы с этим опорным напряжением. Во время преобразования АЦП значение неизвестного напряжения определяется путем сравнения его с известным напряжением, это известное напряжение называется опорным напряжением. Обычно все MCU имеет возможность установить внутренний источник опорного напряжения, то есть вы можете установить это напряжение внутри какой - то доступной стоимости с использованием программного обеспечения (программы). В Arduino UNO плате опорного напряжения установлен на 5В по умолчанию внутри, в случае необходимости пользователь может установить это опорное напряжение извне через контактный Vref также после внесения необходимых изменений в программном обеспечении.
Всегда помните, что измеренное аналоговое значение напряжения всегда должно быть меньше, чем значение напряжения опорного и значение опорного напряжения всегда должно быть меньше, чем значение рабочего напряжения микроконтроллера.
пример
Здесь мы берем пример АЦП с разрешением 3 бита и опорным напряжением 2 В. Таким образом, он может отображать аналоговое напряжение 0-2 В с 8 (2 3) различными уровнями, как показано на рисунке ниже:
Таким образом, если аналоговое напряжение равно 0,25, то цифровое значение будет 1 в десятичном формате и 001 в двоичном. Аналогично, если аналоговое напряжение составляет 0,5, тогда цифровое значение будет 2 в десятичном виде и 010 в двоичном.
Некоторые микроконтроллеры имеют встроенный АЦП, например Arduino, MSP430, PIC16F877A, но в некоторых микроконтроллерах его нет, например, 8051, Raspberry Pi и т. Д., И мы должны использовать некоторые внешние ИС аналогово-цифрового преобразователя, такие как ADC0804, ADC0808.
Ниже вы можете найти различные примеры АЦП с разными микроконтроллерами:
- Как использовать АЦП в Arduino Uno?
- Учебник Raspberry Pi ADC
- Взаимодействие ADC0808 с микроконтроллером 8051
- Цифровой вольтметр 0-25 В с микроконтроллером AVR
- Как использовать АЦП в STM32F103C8
- Как использовать АЦП в MSP430G2
Типы и работа АЦП
Существует много типов АЦП, наиболее часто используемые из них - это Flash ADC, Dual Slope ADC, Successive аппроксимация и Dual Slope ADC. Объяснение того, как работает каждый из этих АЦП, и различие между ними, выходит за рамки данной статьи, поскольку они довольно сложны. Но чтобы дать приблизительное представление, в АЦП есть внутренний конденсатор, который заряжается аналоговым напряжением, которое необходимо измерить. Затем мы измеряем значение напряжения, разряжая конденсатор в течение определенного периода времени.
Некоторые часто возникающие вопросы по ADC
Как измерить напряжение более 5 В с помощью моего АЦП?
Как обсуждалось ранее, модуль АЦП не может измерять значение напряжения, превышающее рабочее напряжение микроконтроллера. То есть микроконтроллер с напряжением 5 В может измерять максимум 5 В с помощью вывода АЦП. Если вы хотите измерить что-то большее, чем это, скажем, вы хотите измерить 0-12 В, тогда вы можете преобразовать 0-12 В в 0-5 В с помощью делителя потенциала или схемы делителя напряжения. В этой схеме будет использоваться пара резисторов для отображения значений для MCU, вы можете узнать больше о схеме делителя напряжения, используя ссылку. В нашем примере выше мы должны использовать резистор 1 кОм и резистор 720 Ом, подключенные последовательно к источнику напряжения, и измерить напряжение между резисторами, как описано в ссылке выше.
Как преобразовать цифровые значения из АЦП в фактические значения напряжения?
При использовании преобразователя АЦП для измерения аналогового напряжения результат, полученный MCU, будет цифровым. Например, в 10-битном микроконтроллере 5 В, когда фактическое напряжение, которое должно быть измерено, составляет 4 В, MCU будет читать его как 820, мы снова можем использовать описанные выше формулы для преобразования 820 в 4 В, чтобы мы могли использовать его в нашем расчеты. Давайте перепроверим то же самое.
(Разрешение АЦП / Рабочее напряжение) = (Цифровое значение АЦП / Фактическое значение напряжения) Фактическое значение напряжения = Цифровое значение АЦП * (Рабочее напряжение / Разрешение АЦП) = 820 * (5/1023) = 4,007 = ~ 4 В
Надеюсь, вы получили хорошее представление об ADC и о том, как использовать их в своих приложениях. Если у вас возникли проблемы с пониманием концепций, не стесняйтесь оставлять свои комментарии ниже или писать их на нашем форуме.