Тема вольтметра, наверное, вторая по популярности (заезженности) после «блинка». Но все же решился написать про свой способ измерения напряжения.
Естественно самым точным (при применении «голой» ардуины) будет способ с использованием внешнего опорного напряжения. Но на ProMini вывод для подключения AREF отсутствует, там он просто подключен через конденсатор к GND. Поэтому приходится, что-то придумывать.
Если «загуглите» тему «секретный вольтметр» то это как раз, то о чем я буду рассказывать.
Суть задачи в том, чтобы вначале используя внутреннее опорное напряжение 1.1V измерить напряжение питания контроллера Vcc, которое потом будет использовано как опорное напряжение.
Ниже показан примерный скетч, который это и выполняет. Скетч я закомментировал, поэтом особо расписывать тут не буду.
Это настройки :
В строке 6 задаем значение опорного напряжения (в реале оно не всегда 1.1V и отличается у экземпляров МК). Для этого измеряем мультиметром напряжение Vcc на плате и корректируем VBG, пока расчетное значение не совпадет с реальным значением.
В строках 22 – 24 немного ускоряем работу АЦП.
Собственно функция измерения напряжения:
В строке 71 задаем вход АЦП на котором будем измерять напряжение:
А0 = 0000, А1 = 0001, А2 = 0010, А3 = 0011, А4 = 0100, А5 = 0101, А6 = 0110, А7 = 0111
Вот полученный результат:
Обратите внимание на выделенные участки, это замкнул вывод A0 на Vcc …