Использование аналоговых входов

Лампы и фары

Функции работы с АЦП

В этом уроке мы изучим работу АЦП на платформе Arduino. В используемой нами модели Arduino Uno, помимо обычных выходов общего назначения (к которым мы уже подключили светодиоды и кнопки), имеется целых шесть аналоговых входов. В других версиях Arduino таких входов может быть больше, например у Arduino Mega их 16.

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

после вызова этой функции микроконтроллер измерит уровень аналогового сигнала на указанном выводе, и сохранит результат работы АЦП в переменной «результат». В этом случае результатом работы функции AnalogRead будет число от 0 до 1023.

Читайте также: Настольная лампа своими руками

Разрядность АЦП

Следует отметить, что число 1023 появилось здесь не просто так. Дело в том, что у каждого АЦП есть такой важный параметр, как разрядность. Чем выше значение этого параметра, тем точнее работает устройство. Предположим, у нас есть АЦП с разрядностью 1. Подав на вход любое напряжение от 0 до 2,5 вольт, мы получим на выходе 0. Любое напряжение от 2,5 до 5 вольт даст нам единицу. То есть 1-разрядный АЦП может распознавать только два уровня напряжения. Графически это можно представить следующим образом:

двухбитный АЦП уже распознает четыре уровня напряжения:

  • от 0 до 1,25 равно 0;
  • от 1,25 до 2,5 равно 1;
  • от 2,5 до 3,75 – 2;
  • наконец, от 3,75 до 5 равно 3.

На следующих двух изображениях показана работа 2- и 3-битного АЦП:

Arduino Uno имеет 10-битный АЦП, что означает, что любое аналоговое входное напряжение от 0 до 5 вольт будет преобразовано в число с точностью до 1/1024 вольта. На графике будет сложно изобразить столько шагов. С такой точностью 10-разрядный АЦП может «ощутить» всего 5 мВ входного напряжения.

Оцените статью
Блог про электронику