Свойства и настройка аналоговых контактов

Аналоговые контакты / выводы на плате.

Описание аналоговых входных контактов для плат  Arduino на микроконтроллерах (Atmega8, Atmega168, Atmega328P или Atmega1280).


АЦП
   Контроллеры Atmega, используемые для плат Arduino, содержат встроенный 6-канальный аналого-цифровой преобразователь (ADC / АЦП). Преобразователь имеет 10-битное разрешение, возвращающее целые числа от 0 до 1023. Весовое значение точки разрешения АЦП определяется как Umax pin / MAX pin. Таким образом 5В / 1023 ~ 5мВ. Хотя основная функция аналоговых контактов для большинства реализаций на платах Arduino заключается в считывании показаний аналоговых датчиков, аналоговые контакты также имеют всю функциональность контактов ввода / вывода общего назначения (GPIO) Так же, как цифровые контакты D0-D13. При необходимости, входные аналоговые выводы могут использоваться для вывода данных и быть сконфигурированы как OUTPUT.

Установка контактов
Аналоговые выводы можно использовать идентично цифровым выводам, используя псевдонимы A0 (для аналогового входа 0), A1 и т. Д. Например, код будет выглядеть так, чтобы установить аналоговый вывод 0 как OUTPUT и установить его HIGH :

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);

Подтягивающие резисторы
Аналоговые выводы также имеют подтягивающие резисторы, как на цифровых выводах. Они включаются путем выдачи такой команды:

digitalWrite(A0, INPUT_PULLUP);  // set pullup on analog pin 0

  Необходимо помнить, что включение PULLUP повлияет на значения, сообщаемые analogRead ()!!! Команда analogRead() не будет работать правильно, если контакт был предварительно сконфигурирован как OUTPUT(ВЫХОД). Для нормальной работы АЦП контакт необходимо установить, как вход перед использованием analogRead(). Аналогично, если в качестве OUTPUT (выход) контакт был установлен в HIGH, то при конфигурации на вход будет установлен резистор подтягивания.

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

Свойства и настройка цифровых контактов

К началу статьи