Ардуино аналоговый вход Чтение аналогового напряжения

ардуино аналоговый вход напряжение
Чтение аналогового напряжения

Считывает значения с аналогового входа и выводит напряжение в монитор порта Arduino IDE.
В этом примере показано, как считать аналоговый вход с аналогового пина 0, преобразовать значения из analogRead() в напряжение и вывести их в монитор порта Arduino (IDE).

Нам понадобятся:

  • Плата Arduino
  • Потенциометр 10 кОм


Схема подключения:

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

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

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

Схема:

Код:

/*
  ReadAnalogVoltage
  Считывает значение аналогового входа на пине 0, конвертирует его в напряжение и выводит результат в монитор порта. 
  Графическое представление доступно с использованием Serial Plotter (меню Инструменты > Serial Plotter).
  Подключите центральный контакт потенциометра к пину A0, а внешние контакты к +5V и земле.
*/

// setup выполняется один раз при нажатии кнопки сброса:
void setup() {
  // Инициализация последовательного взаимодействия на 9600 бод в секунду:
  Serial.begin(9600);
}

// loop выполняется снова и снова бесконечно:
void loop() {
  // Считать вход на аналоговом пине 0:
  int sensorValue = analogRead(A0);
  // Преобразовать аналоговое значение (которое изменяется от 0 до 1023) в напряжение (от 0 до 5 В):
  float voltage = sensorValue * (5.0 / 1023.0);
  // Вывести значение:
  Serial.println(voltage);
}

В программе первое, что вы делаете в функции setup, - начинаете последовательное взаимодействие с портом при 9600 бод данных в секунду между платой и компьютером с помощью строки:

Serial.begin(9600);

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

int sensorValue = analogRead(A0);

Чтобы изменить значения от 0 до 1023 в диапазон, соответствующий напряжению на пине, вам нужно создать еще одну переменную с плавающей запятой и выполнить небольшие математические операции.
Для преобразования чисел в диапазоне от 0,0 до 5,0 Вольт разделите 5,0 на 1023,0 и умножьте на sensorValue:

float voltage = sensorValue * (5.0 / 1023.0);

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

Serial.println(voltage);

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

Этот пример позволяет считывать аналоговое напряжение с потенциометра, конвертировать его в реальное напряжение и выводить результаты в монитор порта Arduino.

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

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

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

Контроль температуры: Прикрепите термистор (термальный резистор) к аналоговому входу Arduino, чтобы измерить температуру. Это может быть полезно для создания термостата, который автоматически регулирует отопление или охлаждение в помещении.

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

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

Эти примеры показывают, как Arduino может использоваться для измерения аналоговых величин и предоставления данных для решения различных задач.

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