Всех рад снова приветствовать на нашем сайте! В нескольких из предыдущих уроков мы досконально изучили варианты работы с цифровыми пинами (все статьи можно найти в соответствующем разделе), так что самое время перейти к аналоговым входам Arduino. Таким образом, сегодняшняя статья будет целиком и полностью посвящена именно им. Начнем с теории, затем плавно перейдем к практике и к реальным примерам скетчей, в которых, в том числе, рассмотрим, как подключить потенциометр к Ардуино, так что приступаем.
Теоретическая часть.
Введение.
Для начала освежим в памяти ключевой нюанс использования цифровых пинов. Он прост и незатейлив - уровень сигнала на цифровом выводе может принимать два разных значения - высокий уровень (5 В), либо низкий (0 В). Опять же, я в рамках курса по Arduino использую Arduino Uno, микроконтроллер (ATmega328) на которой питается от 5 В. В случае другой платы и другого контроллера, например Arduino Due (SAM3X8E), которая использует 3.3 В, цифровые пины, а также все остальные модули, оперируют уже с этими значениями (а не с 5 В, как все та же Arduino Uno). Я же дальше буду все описывать для Uno ввиду ее распространенности и популярности, так что не забывайте об этих деталях, если у вас другая плата.
На этом лирическое отступление закончено, двигаемся дальше. Аналоговые входы, в отличие от цифровых, могут работать с аналоговыми же сигналами, величина которых может принимать любое значение от 0 до 5 В. Давайте разбавим текст небольшой наглядной иллюстрацией:

Для цифрового входа у нас было два варианта:
| Состояние входа | Напряжение |
|---|---|
| Логический 0 | от -0.5 В до 1.5 В (0.3 * Vcc) |
| Логическая 1 | от 3.0 В (0.6 * Vcc) до 5.5 В (Vcc + 0.5 В) |
Плюс промежуточная между этими диапазонами зона, в которой сигнал не может быть гарантированно определен. Аналоговый же вход подключен к модулю аналого-цифрового преобразователя (АЦП, он же ADC) микроконтроллера, что дарует нам возможность измерить значение сигнала. В практической части мы разберем конкретные примеры, так что все окончательно встанет на свои места, пока же продолжаем с теорией.
Опорное напряжение АЦП Arduino.
Микроконтроллер может измерить напряжение от 0 Вольт до значения опорного напряжения, для которого возможен целый ряд вариантов:
- DEFAULT - дефолтный вариант, опорное напряжение равно напряжению питания микроконтроллера
- INTERNAL - внутренний источник напряжения, 1.1 В - для ATmega168 и ATmega328P, 2.56 В - для ATmega32U4 и ATmega8