Расчёт делителя вольтметра (для 4 и 5 версии)

Ранее на сайте были опубликованы 4 (на PIC16F676) и 5 (для PIC16F688) версии прошивок вольтметра. В эти прошивки были добавлены возможности пользователям самим устанавливать программный делитель вольтметра. Такая возможность позволяет данную конструкцию использовать не только в качестве классического вольтметра, но и так же к нему подключать различные аналоговые датчики с линейной зависимостью, что значительно может расширить сферы его применения.

Вольтметр с 5 версией прошивки

Вольтметр с 5 версией прошивки

В статье, в общем, и на примере конкретных датчиков будет описан принцип расчёта коэффициентов делителя вольтметра.

У вольтметра на входе 10 разрядное АЦП, на выходе которого можно получить значение от 0 до 1023. Питание вольтметра 5В. Что бы получить какое-нибудь вменяемое значение, а не чистое значение с АЦП, то нужно выполнить какие-нибудь преобразования. Какие, зависит от того, что нужно.
Например: что бы замерить 5В – входное значение домножаем на максимальное замеряемое значение и делим на разрядность АЦП. Что бы измеряемые 5В отобразить, как 5.0В, т.е. сами вольты и десятинные значения. Для начала вспомним, что точка на индикаторе фиксированная, значит на индикатор нужно выводить значение 50, для этого смещаем пятёрку на десяток влево, т.е. ещё домножим на 10.

формула

Для задания настоек преобразования у вольтметра есть 3 целочисленных переменных:
Множитель – M (только положительный, принимает значения от 1 до 31)
Делитель – D (только положительный)
Смещение – O (может быть как положительным, так и отрицательным)

формула

Отмечу, что во время расчёта значений следует учитывать несколько ограничений, об некоторых предупредит калькулятор, о других нет.
Калькулятор предупредит о следующих ограничениях: множитель (M) от 1 до 31, т.к. он домножает входное значение АЦП и знаменатель не должен превышать 32767. И ограничения переменных – для делителя (D) от 0 до 65535 и для смещения (O) от -32768 до 32767.
С остальными ограничениями чуть сложнее, что бы с ними не столкнуться нужно понять, как будут происходить математические преобразования и знать какие программные ограничения установлены.
1. 3-х сегментный дисплей отображает значения только от 0 до 999;
2. Отображаются только положительные значения;
3. Программа производит целочисленное деление, отбрасывая (не округляя) дробную часть.
На самом деле, как видно, в принципе всё просто.

Продолжим расчёт с измерением 5В и отображением 5.0В.

формула

В связи с ограничениями мы вынуждены упростить множитель и делитель, хоть это и приведет к снижению точности:

формула

Для, ставшего уже классическим, вольтметра до 50В с отображением десятичных вольт получаем следующею формулу:

формула

Погрешность до 0,4В.

В программе калькулятора применен более простой алгоритм расчёт, поэтому она предлагает следующею формулу:

формула

Погрешность до 1,2В.

Поэтому для более точных измерений коэффициенты преобразований лучше рассчитывайте самостоятельно.

Рассмотрим пример расчёт для других датчиков.

Датчик MPX4115A

Барометр, подходит для измерения атмосферного давления.

Распиновка MPX4115A Подключение MPX4115A

Подключение MPX4115A

Точку не отключал.

Для начала ищём документацию на датчик и из документации берем формулу расчёта его значения.

формула

У нас же наоборот, известно напряжение, а нужно найти давление, т.е. преобразуем:

формула

Но выход датчика в кПа, а нам удобнее воспринимать мм. ртутного столба (задача измерять атмосферное давление), поэтому переведем к более приличному виду, домножим на 7,5

формула

Так же не забываем, что на входе у нас не напряжение, а значение АЦП, т.е. входное значение при 5 В питания от 0 до 1023.

формула

Остаётся только округлить дробные части и проверить: не превышаем ли допусков. Знаменатель должен быть меньше 32767, впрочем, как и остальные части. Проверяем:

формула

1024 – максимальное значение АЦП. Превышает (для множителя максимум 31), значит нужно дробь упростить, даже если придётся числа округлить.
В итоге получаем:

формула

При желании можно сделать более точное округление.

Датчик LM335

Схема подключения LM335 Подключение LM335

Подключение LM335

Датчик температуры: -40 +100грЦ. Берем формулу расчёта из документации к датчику.

формула

Преобразуем

формула

Датчик ACS712ELCTR-30A

Схема подключения ACS712ELCTR-30A Подключение ACS712ELCTR-30A

Подключение ACS712ELCTR-30A

Датчик постоянного тока +-30А, вольтметр обрабатывает только положительное плечо, т.е. 0..30А. Он, как и все предыдущие, имеет линейную зависимость, 66мВ/А, «0» в 2,5В, исходя из этих данных составляем следующею формулу:

формула

И преобразуем её.

формула

4 комментария на « Расчёт делителя вольтметра (для 4 и 5 версии)»

  1. виктор пишет 20.06.2014 в 17:57 #

    Честно говоря немного не понятно ход рассчета. я попытался расчитать для датчика LM35 но ничего пока результативного. Могли бы Вы для указанного датчика расчет расписать, пожалуйста.

  2. Alex_EXE пишет 25.06.2014 в 22:04 #

    При основном включении, без отрицательного дополнительного питания он работает в диапазоне 2..150грС, где на каждый градус идёт 10мВ, ему будет соответствовать прошивка на 50В.

  3. Дмитрий пишет 14.04.2015 в 18:32 #

    примеры расчетов коэф. для различных датчиков при каком делителе рассчитаны? Подключил lm335, показывает 30.5, при нагревании паяльником максимум до 40 изменяется…

  4. boris пишет 20.11.2018 в 13:59 #

    Доброго дня, Alex! Ранее, не сколько раз ,повторял вашу разработку вольтметра на PIC 676 ,очень понравилась. И вот , не сочтите нахалом, решил обратиться вот по какому поводу. Недавно сын отдал автомобиль, на котором установлено ГБО(газо баллонное оборудование), с весьма примитивным индикатором расхода газа (четыре светодиода управляемые электронным блоком(ЭБ). Поразмыслив, и проведя лабораторные исследования, пришел к тому , что необходимо производить замеры напряжения на датчике установленном на редукторе и умножать показания вольтметра на коэффициент 15 . Результат приятно удивил, точность количества газа в баке была весьма высока. Попробовав применить в качестве вольтметра вашу разработку, увы, получил большую погрешность. Свел все измерения в табличные данные . Получилось как-то не технологично . Вот и решил вас побеспокоить. Если вас это заинтересовало , можно открыть еще одно направление разделе «Микроконтроллеры»- «Бакометр». Простите за некую сумбурность. Готов дать весь исходный материал. Почему-то, я так думаю, эта тема многих заинтересует.

Комментарии RSS

Оставьте отзыв