← Вернуться к оглавлению

Урок 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. Вы должны увидеть 1023, когда вы поворачиваете потенциометр полностью в в ту сторону, которая подключена к 5V. И также вы увидите 0, когда вы поворачиваете потенциометр полностью в другую сторону. Вы также должны увидеть диапазон значений, выведенные в монитор, между этими двумя крайними положениями.

Ардуино+