Инструменты пользователя


Аналоговые и цифровые сигналы

Речь о разнице между аналоговыми и цифровыми сигналами мы начнем с небольшого эксперимента. Построим две схемы следующего вида: В одной схеме мы пропускаем электрическую энергию от батарейки через уже известный нам потенциометр, а в другой через тактовую кнопку. В качестве прибора для изучения электрического сигнала в одну и вторую систему подключены осциллографы.

Осциллограф

Это прибор, предназначенный для исследования (наблюдения, записи, измерения) амплитудных и временны́х параметров электрического сигнала. Говоря простым языком, осциллограф измеряет величину электрического сигнала (например напряжение) и ставит соответствующую точку на графике. В следующий момент времени он снова измеряет величину и снова ставит точку. Таким образом, если затем соединить множество точек между собой одной линией получится график, демонстрирующий как сигнал менял свою форму с течением времени. Осциллографы это достаточно сложные приборы с множеством настроек. В нашей рабочей среде осциллограф очень упрощен и имеет всего два контакта. Входной (красный) и выходной (черный). Когда через осциллограф протекает электрическая энергия, он «рисует» график, на котором по оси х (идущей слева-направо) откладывает время, а по оси y (Сверху-вниз) откладывает напряжение электрического сигнала. График обновляется на экране осциллографа каждые несколько секунд.

Виды сигналов

Запустим симуляцию и попробуем несколько раз щелкнуть по кнопке. Как мы можем наблюдать, электрическая энергия проходит через осциллограф и снова исчезает, когда кнопка отпущена. Теперь попробуем вращать потенциометр. Как мы знаем, напряжение на средней ноге потенциометра может изменяться в зависимости от положения скользящего контакта внутри него. Именно это мы и можем наблюдать на графике. Напряжение электрического тока от батарейки меняет свою величину в зависимости от того, как была установлена ручка потенциометра в определенный момент времени. Чем же так примечательна разница между формами этих сигналов? Всё дело в том, что практически все явления в природе изменяются постепенно. Например, если мы нагреем воду в кастрюле, а затем снимем её с плиты, вода будет остывать медленно. Т.е. её температура не изменится мгновенно. Это значит, что каждую единицу времени температура будет становится меньше и меньше. Сперва она будет равно 90 градусам, через 10 минут 60 градусам и т.д.

Если мы поставим для измерения температуры датчик, то он будет преобразовывать показания температуры в изменение электрического сигнала, проходящего через него. И этот сигнал, в котором каждую единицу времени его величина имеет определенное значение, будет называться аналоговым сигналом.

Аналоговые сигналы позволяют управлять интенсивностью свечения различных источников света, скоростью вращения двигателей, большинство датчиков передают показания именно в виде аналогового сигнала. Второй вид сигналов, который мы рассмотрим сегодня, называют сигналом цифровым. Цифровые сигналы встречаются в вычислительной технике (компьютерах, калькуляторах, микроконтроллерах). Идея следующая - величина цифрового сигнала не имеет какого-то определенного смысла сама по себе, но условно принято считать, что если величина близка к одному значению (например к 0В), то это логический ноль. Если величина близка к другому значению (например к 5В) это логическая единица. Отсюда начинается идея двоичного кода (кодирования информации в виде последовательности нолей и единиц). Таким образом, цифровой сигнал представляет из себя конечный перечень значений. Он может принимать значение 5В, что будет равняться логическому 1 или ИСТИНА или HIGH (высокий сигнал), или принимать значение 0В, что будет соответственно равняться логическому 0 или ЛОЖЬ или LOW (низкий сигнал).

Порты Arduino

Мы уже работали с портами входа и выхода Arduino, сейчас рассмотрим их ближе. Нижние порты подписаны Analog In, т.е. они могут принимать на вход аналоговые сигналы различных устройств (например датчиков, потенциометров и т.п.). Помимо этого, при необходимости их можно использовать как цифровые выходы. Верхняя группа портов подписана как цифровые, т.е. они могут принимать цифровые сигналы или передавать их. Для дальнейших экспериментов составим схему следующего вида: Составим к ней управляющую программу: После запуска программы мы увидим, что на осциллографе ясно отображаются скачки напряжения до 5В (сигналы высокого уровня) и падение обратно до 0В (сигнал низкого уровня). Однако, как же мы можем управлять некоторыми устройствами, которым необходимы аналоговые сигналы на входе? Например, интенсивностью свечения светодиода. Если мы подадим на светодиод 0В, то он не будет светится. Если мы подадим 5В, то он будет светится в полную силу. Как сформировать напряжение нужной нам величины?

ШИМ

ШИМ - Широтно-импульсная модуляция. Звучит сложно, но всё становится понятно на аналогии. Представьте, что вы набиваете мяч. Когда вы слегка ударяете по нему он поднимается в воздух, а затем опускается обратно. Если делать лёгкие удары достаточно быстро, мяч будет опускаться и подниматься вниз более часто. Если мы будем делать один удар по мячу в минуту, то большую часть времени он будет у нас на руке и лишь немного времени проведет в воздухе. Если мы будем делать 60 ударов в минуту, то он будет находится в воздухе уже больше времени.

Теперь вернемся к электрической энергии. Некоторые цифровые выходы Ардуино (они помечены знаком тильда - ~) умеют работать в режиме ШИМ. Каждый импульс (подъем напряжение на выходе до 5 В), как-бы «подбрасывает» сигнал. Если за ним импульсов не следует, то сигнал опускается обратно. Если давать импульсы достаточно часто, то сигнал не будет успевать падать, а значит будет держаться на определенной величине. Теоретически это может означать, что если микроконтроллер способен совершать «удары» достаточно часто, то мы можем менять напряжение на выходе изменяя частоту этих ударов. Проверим это утверждение на практике, составим программу следующего вида: Согласно этой программе, сперва мы подаем на выход самый высокий сигнал из возможных, затем даём сигнал еще меньше и еще меньше. На осциллографе хорошо видно, что значение напряжения не меняется (все импульсы одной высоты), меняется только частота (расстояние между ними).

А теперь подключим вместо осциллографа какое-нибудь устройство, которое не способно реагировать на изменения также быстро как и наш осциллограф. Для эксперимента подключим к плате 3 светодиода и подадим на них сигнал разной частоты. :!: Обратите внимание! Светодиоды подключены только к тем портам, которые имеют знак ~ перед номером, т.е. могут работать с ШИМ.

После запуска программы отчетливо видно, что светодиоды светятся с разной интенсивностью. Такое возможно лишь в том случае, если их питает разное по величине напряжение. Получается, что в зависимости от того, насколько часто на выходе появляются импульсы изменяется электрическое напряжение? Проверим наши догадки прибором для измерения электрического напряжения - вольтметром. Обратите внимание, что вольтметры, подключенные к светодиодам, показывают разное напряжение! Более того, в режиме симуляции отчетливо видно, что более слабые электрические напряжения (сформированные более редкими импульсами) нестабильны и значения «скачут».

Заключение

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