На этом занятии мы подробнее разберемся с аналоговыми и цифровыми сигналами. Как известно, цифровой сигнал может иметь только два значения: низкий и высокий уровень. Если совсем упростить, то высокий уровень - это наличие напряжения (например, 5 вольт), а низкий уровень - его отсутствие (например, 0 вольт). Аналоговый же сигнал, в отличии от цифрового, может принимать не только значение высокого или низкого уровня, но и любое значение из этого диапазона (от 0в до 5в, например значение 1,2в или 3,68в).



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

АЦП

      В робототехнике АЦП являются важной составляющей, так как большинство датчиков - аналоговые. Конструктивно, АЦП может находиться в одном корпусе с микропроцессором или микроконтроллером, как в случае Arduino Uno. Но АЦП может быть в виде отдельной микросхемы, например MCP3008:



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

      Одной из основных характеристик АЦП является диапазоном входного напряжения - это область возможных значений напряжения, которое мы можем подать на вход АЦП. У каждого АЦП есть какой-то свой диапазон входных напряжений, который он может преобразовать в цифровой код. Поэтому необходимо сначала согласовать оцифровываемое напряжение с диапазоном АЦП, например усилив сигнал, если он слишком слабый, или наоборот уменьшить уровень сигнала, если он слишком большой. Это не только убережет АЦП от выхода из строя, но и увеличит точность преобразования.

Дело в том, что аналоговый сигнал может принимать бесконечное количество значений, и конечно присвоить каждому аналоговому значению цифровой код на практике невозможно. Поэтому, АЦП всегда преобразует аналоговый сигнал в цифровой с некоторой погрешностью.

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



      На рисунке, аналоговый сигнал обозначен синим цветом, а цифровой сигнал - красным. Так как у нас один разряд, то цифровой сигнал может принять только два значения: 0 или 1. При этом, аналоговому сигналу, напряжением от 0 до 2 вольт будет соответствовать цифровое значение 0, а аналоговому сигналу напряжением от 2 до 4 вольт - значение 1. Такое преобразование будет не очень точным. Попробуем увеличить число разрядов до 2:



      Видно, что теперь цифровой сигнал более точно повторяет аналоговый, так как теперь он может принимать четыре значения: 00, 01, 10, 11. А точность увеличилась до 1 вольта. А что если добавить еще один разряд?



      Теперь цифровой сигнал еще более точно повторяет аналоговый! Цифровой сигнал теперь может принимать 8 значений. Разность между двумя соседними значениями межкодовых переходов называется шагом квантования, в данном случае шаг квантования - 0,5 вольта.

      Мы и дальше можем увеличивать число разрядов, и соответственно снижать шаг квантования. Для 4 разрядов цифровой сигнал будет иметь уже 16 значений, для 5 разрядов - 32 значения, для 6 разрядов - 64, для 7 - 128, для 8 - 256, для 9 - 512, для 10 - 1024 и так далее. Количество разрядов называется разрешением преобразователя. У встроенного в Arduino АЦП - десять разрядов.

      Выше мы не учли еще один момент. Дело в том, что АЦП требуется некоторое время, чтобы провести квантование сигнала и его кодирование. Квантование представляет собой округление аналоговой величины до ближайшего уровня квантования. Давайте рассмотрим как это выглядит на практике:



      На графике показан не только шаг квантования, но время dt, которое требуется для квантования сигнала. Очевидно, что чем меньше время квантования (или в более общем смысле - время дискретизации), тем выше качество преобразования, тем более точно мы сможем оцифровать сигнал. На практике еще часто пользуются понятием частота частота выбюорки (или частота дискретизации) - количество выборок в единицу времени, и чем она выше, тем выше качество преобразования.

В цифровом виде, аналоговый сигнал, показанный на рисунке, в цифровом виде можно записать так:

010
101
111
101
001
000
011
110
101
100
010
011
110


      Контроллер Arduino имеет несколько аналоговых входов, например Arduino Nano содержит 8 аналоговых входов (А0 - А7), а Arduino Uno 6 входов (А0 - А5). В качестве опорного напряжения можно выбрать внутренней опорное напряжение 1.1 В, а так же внешнее и в качестве опорного источника может быть напряжение питания микроконтроллера 5 В.

Напряжение поданное на вход АЦП должно находится в границах заданного диапазона, то есть от 0 В до напряжения опорного источника. Напряжение поданное на вход АЦП будет оцифровано и представлено в виде цифрового значения в диапазоне от 0 до 1023 (10 разрядов - 1024 значения).

При работе с Arduino IDE используется стандартная функция analogRead(), которая позволяет считывает значение с указанного аналогового входа. Считывание значение с аналогового входа занимает примерно 100 микросекунд (0.0001 сек), то есть максимальная частота считывания приблизительно 10000 раз в секунду.

Далее...


Copyright © R9AL 2020 Все права защищены

Рейтинг@Mail.ru Яндекс цитирования