Урок 10. Работаем с аналоговыми входом
Продолжаем работу с аналоговыми выводами. В предыдущем уроке мы уже затрагивали функцию analogRead(). Продолжим её изучение.
analogRead(pinNumber) или analogRead() считывает данные с одного из аналоговых выводов Arduino и возвращает значение в диапазоне от 0 (напряжение на выводе = 0 В) до 1023 (напряжение на выводе = 5 В). Если на аналоговом выводе присутствует 2,5 В, результат будет:
2.5/5*1023 = 512
analogRead() принимает единственный аргумент — обозначение аналогового вывода (A0–A5) для считывания. Также в данном уроке нам потребуется потенциометр.
Потенциометр представляет собой резистор со средним выводом, подключённым к определённой точке вдоль резистивного элемента. Поворачивая ручку потенциометра, вы смещаете центральный контакт по резистору, изменяя соотношение резистивного материала с обеих сторон от него. Благодаря этому потенциометр работает как регулируемый делитель напряжения.
Подсоедините потенциометр так, чтобы крайние контакты были подключены к 5 В и земле (полярность не имеет значения), а средний контакт — к выводу A0 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. Между этими крайними положениями на мониторе будет отображаться весь диапазон промежуточных значений.