Цифровой вольтметр на Arduino и LCD

При конструировании устройств или разработке всевозможных исполнительных узлов нам приходится работать с напряжением. Но не всегда под рукой есть тестер или вольтметр для его мониторинга. Решить данную проблему можно с помощью платы Arduino UNO, LCD-дисплея, нескольких резисторов и конденсаторов в качестве обвязки. В предыдущей статье уже описывал подключение LCD к Arduino, поэтому проблем с этим возникнуть не должно.

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

mnvf7yaQJXk

Как видно из схемы, измеряемое напряжение подается не напрямую на порт ввода/вывода А0, а через резистивный делитель. Сделано это потому что с помощью аналогового входа Arduino можно измерить напряжение только в диапазоне от 0 до 5 В. Получается что воспользовавшись делителем напряжения, диапазон (0-5 Вольт) можно расширить до необходимого нам (0-55 Вольт). Делитель понижает измеряемое напряжение до необходимого для аналогового входа уровня. Затем идет оцифровка аналогового сигнала в цифровой код.

voltmetr_arduino

Расчет резистивного делителя выполняется следующим образом:

Суммарное сопротивление пары резисторов при последовательном соединении:

Rc = R1 + R2 = 110 кОм

Сила тока протекающая через резисторы:

I = U/Rс = 55 В / 110000  Ом = 0,0005 Ампер

Выходное напряжение:

Vout = Vin * (R2/(R1+R2)) = 55 В * (10000/(10000+100000)) = 5 Вольт

Таким образом получается что верхний диапазон измеряемых напряжений (55 Вольт) будет соответственно равен верхнему допустимому диапазону (5 Вольт) в Arduino. Согласно этим формулам можно легко пересчитать необходимые номиналы резисторов или же напряжений под любую другую задачу.

Переходим к написанию программного кода:

Хочу заметить что для получения точных показаний вольтметра, необходимо учесть несколько важных моментов:

  • резисторы для делителя напряжения необходимо использовать точные (с малым процентом погрешности, не более 1%)

  • замерить напряжение питания на плате (в программе указано 5 вольт, в реале может быть — 4,96 вольт ) и указать его в коде

  • не подключать на вход напряжение больше рассчитанного

  • при подстройке эталонный вольтметр должен иметь достаточную точность

  •  в случае если делитель собран на плате(макетке): убирайте остатки флюса, канифоли — плата должна быть чистая!

Демонстрация работы вольтметра на Arduino:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

13 комментариев к записи “Цифровой вольтметр на Arduino и LCD”

  1. Дмитрий 512а:

    Спасибо огромное. Познавательно. Просто все как день божий. Проверил, все отлично работает.
    Автор, палец вверх))) респект, продолжай радовать!

  2. Михаил:

    Автор, спасибо за статью.
    Есть вопрос, мне нужно следить за показанием установки.
    Тоесть, надо измерить 2 показания и умножить их на 60, а результат вывести на дисплей.
    Сложно ли будет реализовать ?

    • Доброго времени суток. Сделать это не сложно. Ситуация следующая: считываем первый сигнал и заносим его значение в переменную (например — signal1), потом считываем второй сигнал и заносим его значение в переменную (signal2). Далее просто умножаем все это дело на 60, и по очереди выводим значение этих переменных на LCD — дисплей.

  3. Ali:

    Спасибо автору ,все работает.Добавить бы еще термометр в скетч.

    • Пожалуйста, рад что вам пригодилось. В скором времени выложу готовый проект, в котором будет и вольтметр и термометр и даже календарь. Будет что-то типа небольшого подручного тестера.

  4. Данил:

    Добрый день. А где я могу задать вам более подробно интересующие меня вопросы? Соц.сети, скайп, меил ?

  5. Влад:

    Можно ли по такому принципу сделать измерение двух напряжений одновременно ?

    • Конечно же можно. При этом программа почти не меняется, только нужно будет добавить еще один аналоговый порт.

  6. RTIF:

    Распишите пожалуйста номиналы резисторов на схеме, разобраться не смог. Как рассчитать резисторы для Ардуино ДУЕ с входами 3,3 вольта. Почему нет подсветки дисплея, очень плохо видно.

    • Для подсветки дисплея необходимо добавить в код еще одну строку:

      lcd.backlight(); // включаем подсветку LCD

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

      Вот как-то так.

  7. Александр:

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

Оставить комментарий