Всем привет сегодня я хотел бы показать, как превратить 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 дисплей


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



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


Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok