Analog Read Arduino

Analog Read Arduino
Чтение значения с потенциометра и вывод в Arduino Serial Monitor.

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

Нам понадобится
Плата Arduino
Потенциометр 10 кОм

Подключение
Подсоедините три провода от потенциометра к вашей плате.
Первый провод идет к земле.
Второй провод идет к +5 вольтам.
Третий провод от среднего контакта потенциометра идёт к аналоговому выводу A0.

Поворачивая вал(ручку) потенциометра, вы изменяете сопротивление с обеих сторон от ползунка, который подключен к среднему контакту потенциометра. Это изменяет напряжение на среднем контакте.
Когда сопротивление между средним контактом и тем, который подключен к 5 вольтам, близко к нулю (и сопротивление с другой стороны близко к 10 кОм), напряжение на среднем контакте приближается к 5 вольтам.
Когда сопротивление меняется в обратную сторону, напряжение на среднем контакте приближается к 0 вольтам или земле.
Это напряжение является аналоговым напряжением, которое вы считываете со входа.

На платах Arduino есть встроенная цепь под названием аналого-цифровой преобразователь или ADC, которая считывает это изменяющееся напряжение и преобразует его в число от 0 до 1023.
Когда вал повернут полностью в одну сторону, на вход идет 0 вольт, и входное значение составляет 0.
Когда вал повернут полностью в другую сторону, на вход идет 5 вольт, и входное значение составляет 1023.
В промежутке функция analogRead() возвращает число от 0 до 1023, пропорциональное подаваемому напряжению.

Код

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);  // delay in between reads for stability
}

В данном коде, единственное, что делается в функции setup(), - это вызывает функцию Serial и устанавливает связь со скоростью 9600:

Serial.begin(9600);

Затем в основном цикле кода вам необходимо создать переменную для хранения значения сопротивления (которое будет иметь значение от 0 до 1023, идеально подходит для типа данных int), поступающего с потенциометра:

int sensorValue = analogRead(A0);

И, наконец, вы должны вывести эту информацию в окно последовательного монитора.
Это можно сделать с помощью команды Serial.println() в последней строке кода:

Serial.println(sensorValue);

Теперь, когда вы открываете Serial Monitor в Arduino Software (IDE) (щелкнув по иконке, похожей на лупу, справа вверху, или используя комбинацию клавиш Ctrl+Shift+M), вы увидите постоянный поток в значении от 0 до 1023, соответствующих положению потенциометра.
По мере вращения потенциометра эти числа будут меняться.

5 примеров использования

Мониторинг окружения: Вы можете использовать этот код для создания устройства, которое измеряет аналоговое напряжение, связанное с параметрами окружающей среды, такими как освещенность, температура или влажность.
Например, можно создать простой датчик освещенности, который автоматически регулирует яркость освещения в комнате в зависимости от уровня света.

Управление двигателями: Если ваши проекты включают управление двигателями, вы можете использовать этот код для создания системы обратной связи.
Например, при построении робота с колесами можно использовать потенциометр, чтобы измерять угол поворота руля и автоматически корректировать движение.

Анализ сигналов: Этот код может быть полезен при анализе аналоговых сигналов, таких как аудио или датчики давления. Вы можете использовать его для разработки аудиоаппаратуры, включая эквалайзеры или анализаторы спектра, а также для мониторинга давления в промышленных установках.

Создание игровых контроллеров: Если вы хотите создать собственные игровые контроллеры, например, руль для гоночных симуляторов или джойстик для видеоигр, этот код может быть отправной точкой для чтения данных с управляющих элементов.

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

Такие проекты могут быть отличным способом научиться программировать и взаимодействовать с физическим миром с помощью Arduino.

Дополнительные материалы по теме
Подключение кнопки к ардуино
TTP223 сенсорная кнопка
Резистивные кнопки
Управление одной кнопкой на ESP
Первая программа на Arduino. Aрдуино для начинающих
Digital Read Arduino
Управление светодиодами кнопкой на Ардуино
Analog Read Arduino
Ардуино аналоговый вход Чтение аналогового напряжения