Урок 10. Работаем с аналоговыми входом

Продолжаем работу с аналоговыми выводами. В предыдущем уроке мы уже затрагивали функцию analogRead(). Продолжим её изучение.

analogRead(pinNumber) или analogRead() считывает данные с одного из аналоговых выводов Arduino и возвращает значение в диапазоне от 0 (напряжение на выводе = 0 В) до 1023 (напряжение на выводе = 5 В). Если на аналоговом выводе присутствует 2,5 В, результат будет:

2.5/5*1023 = 512

analogRead() принимает единственный аргумент — обозначение аналогового вывода (A0–A5) для считывания. Также в данном уроке нам потребуется потенциометр.

Потенциометр представляет собой резистор со средним выводом, подключённым к определённой точке вдоль резистивного элемента. Поворачивая ручку потенциометра, вы смещаете центральный контакт по резистору, изменяя соотношение резистивного материала с обеих сторон от него. Благодаря этому потенциометр работает как регулируемый делитель напряжения.

Подсоедините потенциометр так, чтобы крайние контакты были подключены к 5 В и земле (полярность не имеет значения), а средний контакт — к выводу A0 Arduino.

Подключение потенциометра к аналоговому входу Arduino

Далее загрузим и запустим следующий код:

int potPin = A0; // центральный контакт потенциометра подключен к контакту A0

void setup(){
  // аналоговые контакты по умолчанию инициализируются как INPUT, команда pinMode() не требуется
  Serial.begin(9600);
}

void loop(){
  int potVal = analogRead(potPin); // potVal это число от 0 до 1023
  Serial.println(potVal);
}

Посмотрим результат в последовательном мониторе:

Вывод аналоговых данных на последовательном мониторе

Теперь поверните ручку потенциометра и проследите за изменением значения potVal. При повороте в сторону, подключённую к 5V, вы увидите значение 1023. При повороте в противоположную сторону — 0. Между этими крайними положениями на мониторе будет отображаться весь диапазон промежуточных значений.