Всем привет сегодня я хотел бы показать, как превратить Arduino Uno в вольтметр.

Смотрите видео: Arduino в роли вольтметра. Вывод напряжения на LCD дисплей

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

вид схемы с деталями

Мы запитали 5 вольт по красному проводнику, в A0 на плату Arduino поступает значение напряжения, хотя можно было бы подключить маленькую батарейку и проверить ее вольтаж.

Давайте приступим к написанию скетча, и далее рассмотрим, как это все сделать. Хочу показать вам принципиальную плату, потом будет на сайте изображена схема, она похожа на пример, который мы собирали в прошлый раз с LCD дисплеем.

вид принципиальной схемы

Обратите внимание, мы выводили текст на LCD экран, в принципе здесь отличие единственное это второе сопротивление. Здесь по подключению, я думаю вопросов не возникнет, мы используем 4, 6, 10, 11, 12, 13 разъемы, минус берём общий, он расходится по плате, минус на первый контакт, и на последний(16).

Он здесь обозначен на моей плате буквой К, на сколько я помню на разных схемах по-разному. На одних схемах A и K на других LED+ LED-. Давайте напишем скетч, поскольку мы использовали в ней контакты 4, 6, 10, 11, 12, 13 нам нужно будет их обозначить.

И поскольку мы опять работаем с LCD дисплеем, мы должны будем подключить библиотеку liquidcrystal, константу для нашего аналогового разъёма, объявим массив контактов, которые мы использовали.

#include < LiquidCrystal.h>

Объявим переменную val, в которую мы будем считывать, преобразовывать, так сказать получать, исходя из значение A0.

const int analogIn = A0;
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);
float val = 0;

В setup мы включим, в принципе это дело по пожеланию, для мониторинга последовательный порт, объявим LCD 16 символов по 2 строки и выведем текст не указывая конкретно на какой строке значение напряжения. Это будет первая строка. В цикле loop мы получим в переменную val значение с нашего разъема, которое у нас определяется как значение между плюс-минус и вот это выводится из A0.

void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("Voltage Value:");
}

Далее мы его преобразовываем, поскольку мы знаем, что там 5 Вольт, у нас было как максимальное значение, предполагаемое максимальное значение, изменяется значение от 0 до 1024, мы выводим его методом пропорции, поэтому для замера напряжения пальчиковой батарейки в формуле будем умножать не на 5, а на 1,5. Далее выводим значение в последовательный порт и печатаем после него символ вольтажа, английскую букву V.

Теперь на первой строке, она по сути вторая строка, с 6 символа выводим значение нашей переменной val, символ вольтажа, английскую букву V и сделаем небольшую задержку в одну пятую секунды, или 200 миллисекунд. Сохраним наш скетч, в принципе, после этого плата Arduino может стать небольшим вольтметром, который можно проверить напряжение небольшой батарейки.

void loop()
{
  val = analogRead(A0);
  val = val/1024*5.0;
  Serial.print(val);
  Serial.print("V");
 
  lcd.setCursor(6,1);
  lcd.print(val);
  lcd.print("V");
  delay(200);
}

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

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

Полный текст скетча вольтметр на ардуино

#include < LiquidCrystal.h>

const int analogIn = A0;
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);
float val = 0;

void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("Voltage Value:");
}

void loop()
{
  val = analogRead(A0);
  val = val/1024*5.0;
  Serial.print(val);
  Serial.print("V");
 
  lcd.setCursor(6,1);
  lcd.print(val);
  lcd.print("V");
  delay(200);
}

Смотрите видео: Arduino в роли вольтметра. Вывод напряжения на LCD дисплей




Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Связанные статьи

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok