Рис. 3.1. Аналоговые и цифровые сигналы
Компьютерная система никогда не может оперировать с бесконечным числом десятичных разрядов для аналогового значения, потому что объем памяти и производительность компьютера ограничены. Как же тогда соединить интерфейс цифрового контроллера Arduino с аналоговым реальным миром? Это делает аналого-цифровой преобразователь (АЦП), который преобразует аналоговые значения в цифровые с заданной точностью.
3.3. Преобразование аналогового сигнала в цифровой
Предположим, что вы хотите измерить освещенность в своей комнате. Хороший светочувствительный датчик выдает выходное напряжение, которое зависит от освещенности комнаты. Когда в помещении абсолютно темно, устройство выдало бы 0 В, а при максимальной освещенности - 5 В. Промежуточные значения соответствуют средним освещенностям. Но как эти значения считает плата Arduino, чтобы узнать, насколько светло в комнате? Преобразовать аналоговые значения напряжения в числа, которые может обрабатывать контроллер, позволяет аналого-цифровой преобразователь Arduino.
- 66 -
Точность АЦП зависит от его разрядности. На плате Arduino Uno установлен 10-разрядный АЦП. Это означает, что АЦП может разделить аналоговый сигнал на 210 различных значений. Следовательно, Arduino может присвоить 210 = 1024 аналоговых значений, от 0 до 1023.
Опорное напряжение определяет максимальное напряжение на входе АЦП, его значение соответствует коду 1023. При нулевом входном напряжении АЦП выдает на выходе 0, при входном напряжении 2,5 В на выходе будет значение 512 (половина от 1023), при входном напряжении 5 В выходной код равен 1023. Чтобы лучше понять это, посмотрите на графики для трех.разрядного АЦП, изображенные на рис. 3.2. В принципе, опорное напряжение АЦП можно изменить, но в наших устройствах опорным будет напряжение 5 В.
Рис. 3.2. Трехразрядное аналого-цифровое преобразование
У трех.разрядного АЦП 3 бита разрешения, поскольку 23 = 8, следовательно, у него есть 8 уровней, от 0 до 7. Любому аналоговому значению, которое поступает на вход такого АЦП, на выходе соответствует код от 0 до 7. На рис. 3.2 показано, что уровни входного напряжения преобразуются в выходные дискретные цифровые коды, с которыми может оперировать микроконтроллер. Чем выше разрядность, тем больше уровней, которые доступны для представления каждого значения. Как упоминалось, у Arduino Uno АЦП имеет 1024 уровней, а не 8, как на рис. 3.2.
ПРИМЕЧАНИЕ
Если вы хотите узнать больше об использовании нестандартного (или внешнего) опорного напряжения, посетите страницу на официальном сайте Arduino
http://www.arduino.cc/en/Reference/AnalogReference.
- 67 -
3.4. Считывание аналоговых датчиков с помощью Arduino. Команда analogRead()
Теперь, когда вы понимаете, как преобразовать аналоговые сигналы в цифровые коды, можно начать писать программы и разрабатывать схемы. У различных плат Arduino разное число аналоговых контактов. Для чтения аналоговых значений предусмотрена функция analogRead().
Мы начнем с простых экспериментов с потенциометром и аналоговым датчиком.
Затем вы узнаете, как работают делители напряжения и как можно сделать свои собственные аналоговые датчики из компонентов, сопротивление которых зависит от каких-нибудь внешних факторов.
3.5. Чтение данных с потенциометра
Самый простой аналоговый датчик, с которого можно получить аналоговый сигнал, - это потенциометр. Их используют в стереосистемах, звуковых колонках, термостатах и в других изделиях. Потенциометры действуют как регулируемые делители напряжения и снабжены ручкой-регулятором. Они бывают разных размеров и форм, но всегда имеют три вывода.
Подключите один крайний вывод потенциометра к земле, а другой к шине 5 В. Потенциометры симметричны, так что не имеет значения, с какой стороны вы подключите шину питания, а с какой землю. Средний вывод соедините с аналоговым контактом 0 на плате Arduino. Как правильно подключить потенциометр к Arduino, показано на рис. 3.3. При повороте ручки потенциометра аналоговый входной сигнал будет плавно меняться от 0 до 5 В. В этом можно убедиться с помощью мультиметра. Переведите мультиметр в режим измерения напряжения, подсоедините его, как показано на рис. 3.4, и следите за показаниями, поворачивая ручку потенциометра. Красный (положительный) щуп мультиметра должен быть подключен к среднему контакту потенциометра, а черный ( отрицательный) щуп к земле.
ПРИМЕЧАНИЕ
Потенциометр и мультиметр внешне могут выглядеть не так, как показано на рис. 3.4.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии