Измерение напряжения

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

Аппаратное обеспечение:

- плата Arduino
- переменный резистор

Электрическая цепь:

Соедините анод (длинный вывод) вашего светодиода с цифровым выводом 9 Arduino через резистор 220 Ом. Соедините катод (короткий вывод) с землей (GND) Arduino. 

плата arduino

Соедините потенциометр и ваш Arduino тремя проводами. Первым соедините «землю»(GND) Arduino и один из крайних выводов потенциометра. Вторым соедините +5 вольт Arduino и второй крайний вывод потенциометра. Третьим соедините аналоговый вход 0 и средний вывод потенциометра.
Поворачивая ручку потенциометра вы меняете сопротивление между центральным и боковыми выводами потенциометра. Это изменяет напряжение на центральном выводе. Если сопротивление между центральным выводом и выводом, подсоединенным к 5 вольтам уменьшить до нуля (сопротивление между центральным выводом и выводом подсоединенным к «земле» станет 10 кОм), то напряжение на центральном выводе будет около 5 вольт. Если повернуть ручку до конца в другую сторону, то напряжение на центральном выводе упадет до нуля. Это напряжение и есть аналоговое напряжение, которое считывается со входа.
Arduino содержит в себе цепь, которая называется аналогово-цифровым преобразователем, который считывает значение напряжения и преобразует его в число от 0 до 1023. Когда ручка повернута до упора в одну сторону, но вход подается 0 вольт, и преобразованное значение будет 0. Если ручку повернуть до конца в другую сторону, то на входе будет уже 5 вольт и преобразованное значение будет 1023. В промежуточных положениях функция analogRead() будет возвращать числа от 0 до 1023, пропорционально напряжению, которое подается на вход.

Схема:

схема

Код:

Первое, что необходимо сделать в функции установки, это установить последовательное соединение на скорости 9600 бит за секунду между вашим Arduino и ПК с помощью следующей команды:
Serial.begin(9600);

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

Для того чтобы наблюдать на экране значения напряжения от 0 до 5 вольт, а не значения преобразования от 0 до 1023, вам нужно создать еще одну переменную, типа float, и выполнить несложные математические преобразования. Для получения «шкалы» от 0 до 5 вольт нужно разделить 5.0 на 1023.0 и умножить на значение sensorValue:
float voltage= sensorValue * (5.0 / 1023.0);

Для вывода значений на экран вам нужно воспользоватся функцией Serial.println():
Serial.println(voltage)

Теперь, открыв Serial Monitor в вашей среде Arduino, вы можете наблюдать последовательность значений от 0.0 до 5.0. Если вы повернете ручку потенциометра, значения будут менятся, отображая значения напряжения на входе А0. 

Полный текст программы:

/*

Измерениенапряжения

Читаем значение на аналоговом входе 0, преобразуем в напряжение, выводим на экран.

 */


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

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




Собирайте arduino своими руками - полный каталог плат