Ниже приведено описание портов, которые работают, как аналоговые входы платы Arduino с микроконтроллерами
Все данные микроконтроллеры содержат 16-ти канальный аналогово-цифровой преобразователь, который имеет разрешение в 10 бит и способен выдавать 1024 символов значений.
В большинстве случаев, входы платформы Arduino используются для подключения аналоговых датчиков, но вместе с этим, их можно использовать, как и цифровые порты ввода/вывода – выводить или вводить информацию широкого применения (GPIO). Таким образом, при недостаточном количестве цифровых портов, имеется возможность сконфигурировать ненужные в процессе работы аналоговые порты.
Выводы платы Arduino, с номерами от 14 до 19 соответствуют аналоговым портам. Но стоить помнить, что эти номера относятся только к выводам платы, а не к физическим номерам выводов микроконтроллера. Эти аналоговые порты могут использоваться как цифровые порты ввода-вывода информации, например, они могут быть задействованы для установки вывода 0 аналогового порта, на порт вывода со значением HIGH .
Каждый аналоговый вывод имеет подтягивающие резисторы, задача которых такая же, как и при работе на цифровых выводах. Для включения данных резисторов нужно набрать команду: digitalWrite(14, HIGH); , что приведет к включению резистора на выводе аналогового порта 0. Кроме того, при использовании некоторых датчиков и подключении резистора, будет изменена величина, сообщаемая функцией analogRead(). По этому, много пользователей платы Arduino, используют подтягивающий резистор только при применении вывода аналогового порта в цифровом режиме.
Также не стоит забывать, что если ранее выводы работали как цифровые порты, то в этом случае команда analogRead будет некорректной. Для правильной работы стоить сконфигурировать их как аналоговые входы. Аналогично, если порт выступал цифровым со значением HIGH, то его обратная установка подключит подтягивающий резистор.
В руководстве микроконтроллера, установленного на плате Arduino, идет речь о том, что не стоить осуществлять быстрое переключение между аналоговыми портами для их чтения, ведь это может привести к наложению сигналов, что приведет к искажению всей системы. А после работы аналогового порта в качестве цифрового, стоить внести паузу в настройку между чтением функцией analogRead().