Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Измерительная техника

Автомобильный цифровой вольтметр на 24в.

Автор: Валентин
Опубликовано 15.08.2013.
Создано при помощи КотоРед.

Тема различных вольтметров на AVR раскрыта достаточно хорошо.
Но все же иногда возникают специфические задачи, и реализовать их хочется по своему.

Цель изготовления очередного вольтметра следующая.
Друг попросил сделать вольтметр на 24вольта, измерять напряжение в бортовой сети грузового автомобиля.
Я его спросил-почему ты не купишь готовый?
А он говорит-так там максимум до 15-20 вольт и все.

Наверное стоит уточнить почему он так говорит.
Почти во всех конструкциях вольтметров в качестве стабилизатора напряжения питания конструкции используется линейный стабилизатор 7805,соответственно можно посчитать какая мощность выделится на стабилизаторе при питание конструкции со светодиодным дисплеем.
По практике я бы сказал будет греется как печка, и сгорит.
Умельцы которые делают вольтметры-ставят перед покупателем автомобилистом интересную задачу. Каким то образом подать на вольтметр напряжение питания не выше 15вольт, и мерять им 24 вольта.
А если покупатель не владеет знаниями радиоэлектроники?
Я думаю что продавец советует соединить проводки «измерение» и «питание» вместе, и повесить радиатор. А после очередного пришедшего со сгоревшим вольтметром перестают их рекомендовать для измерения таких напряжений.

Оказывается имеет место вот такая проблема.
На заметку тем у кого дополнительный заработок-изготовление цифровых вольтметров «народного потребления»,к коим я отношения не имею.

Решение данной проблемы-использование импульсного стабилизатора напряжения, например доступной микросхемы mc34063.

Cкажете вы- «помехи, точность, пострадают от такого питания».
Мною не было замечено принципиальной разницы при таком конструктивном исполнении. Не более чем миф.

А теперь о самом устройстве.

Диапазон измеряемого напряжения 0-32вольта.
Точность можно сравнить с точностью цифрового китайского тестера на диапазоне 200в.
Потребляемый ток при напряжении питания:
12,8V -15mA
23,5V -11mA

Cхема устройства:

В основе устройства, всем известный микроконтроллер фирмы Atmel-Atmega88(или Atmega 48,или Atmega8).

Немного об алгоритме работы ПО,написанным в среде Atmel Studio 6.1 на С++.
Тактовая частота 8мгц.
Каждые 0.5с(прерывание от T1) происходит расчет напряжения, и вывод его на 3х сегментный светодиодный индикатор.

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

АЦП работает в режиме запуска по прерыванию T0.Точнее сказать для atmega48/88. Для atmega 8-это Free Run Mode,так как у нее нет такого режима.

Ничего особенного.

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

Рассмотрим как производится расчет напряжения.
В данной конструкции разрядность АЦП понижена с 10 до 8, установкой бита ADLAD=1.
Ни имеет смысла использовать 10 бит.
В качестве источника опорного напряжение используется напряжение питания 5в.
На основе даташита можно получить формулу для вычисления напряжения:

Vin=ADC*Vref/256.

Vin напряжение на входе АЦП,Vref-опорное напряжение,ADC-код в регистре ADCH АЦП.

Соответственно при 5в на входе АЦП, и Vref=5V значение в регистре ADCH=256.

Диапазон измеряемых напряжении ограничен напряжением при котором mc34063,выйдет из строя, по даташиту это 40в.

Максимальное напряжение на свинцовой батареи где то 28.8в, возмем с запасом , сделаем на 32 вольта.

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

Давайте рассмотрим этот момент.
Выберем максимальное измеряемое напряжение 32вольта.
Тогда при 32V на входе вольтметра напряжение на входе АЦП желательно что бы было близкое к Vref.
Почему желательно?
Судите сами. Для получения значения в вольтах вам нужно будет умножить значение полученное из выше приведенной формулы, на коэффициент деления напряжений k. В данном случае k~6.45
Соответсвенно чем больше k,тем менее достовернее вычисленное значение напряжения.
Для простоты сказать- если вы будете повышать k,то дойдете до того что будете видеть дискретность вольтметра глазами.
Аналогичная ситуация будет если уменьшать Vref.

Поэтому лучше «заточить » вольтметр под определенные задачи.

Те кто имеет опыт написания программ, знают что при выполнении математических операций, возникают некоторые трудности-увеличение объема программы, уменьшение ее быстродействия, появление разных «чудес».
Поэтому лучше производить вычисление целых положительных чисел, если это возможно.

В итоге математика сводится к одной формуле:
Vin*10= ADC*126/100;

Полученной так:

Vadc=ADC*5/256.
где Vadc-напряжение на ноге АЦП.

Vin=ADC*5*k/256= ADC*5*6,45/256
Vin=ADC*32.25/256
Умножим на 100:
Vin*100=ADC*3225/256
Vin*100=ADC*12.597
Умножим на 10 и округлим
Vin*1000=ADC*126.
Поделив на 100 получим выше приведенную формулу.

Все просто-избавились от дробных чисел, и получили целое число.
Вывели это число на экран , зажгли точку, и получили значение после запятой.
Правда делить желательно конечно бы на что то кратное 2-ке,на 64 например,но в данном случае не критично.

Фото устройства:

О конструкции.


Вообще изначально хотелось упростить эту конструкцию
http://radiokot.ru/circuit/digital/measure/41/

Базис печатной платы взят оттуда, так как у автора очень оригинальное и компактное исполнение.

Честно скажу-хотел сделать проще, взял хекс дизассемблировал, начал корректировать и понял-что быстрее я напишу свою прошивку)

Данный вольтметр без каких либо изменений пригоден и для измерения бортовой сети с напряжением 12в, ущерб точности врятли вы заметите.
Но если сильно хочется-измените в исходном коде пару циферок, и соберите прошивку под себя. Номиналы делителя можно пересчитать воспользовавшись exel файлом.

В конструкции можно использовать микроконтроллеры atmega8,atmega48, atmega88, и любой светодиодный дисплей.
В файлах исходный код прошивки с возможностью пересборки под atmega8 или семейство atmega48/atmega88/atmega168,и под индикатор с общим катодом или анодом.
И сама прошивка под все три микроконтроллера, для каждого под общий анод или катод.
Так сказать на любой вкус.
Если вы будете использовать индикатор с зеленым, или любым другим свечением то для получение такой же яркости как и с красным индикатором-нужно поменять параметр LED_time в прошивке, и скомпилировать ее.
Связано это с тем что у каждого «цвета свое прямое напряжение», у зеленого оно больше чем у красного, соответсвенно ток проходящий через сегмент меньше.
Но скорее всего свечения будет более чем достаточно.
Только не доводите микроконтроллер до состояния нагревания-в нормальном режиме он не греется, нагрев говорит о том что параметр LED_time слишком большой.
Рискуете укоротить жизнь вольтметру.
В железе конструкция собрана на atmega88PA-AU в TQFP корпусе и индикаторе c общим катодом KEM-5631-ASR. L1-по рекомендации атмел, должно быть больше 10мкГн,у меня 47,выпаял откуда то. Так же будьте внимательны при использовании «микрофорадных » значений чип кондесаторов , у некоторых из них бывает максимальное напряжение 10в. Мои 2.2мкф как раз такие, и годятся только для низковольтной части. Впаять такое в качестве С7-риск получить кз в будущем.С5,C4-низкоимпендансные.С5 220мкф 50в, С4 330мкф 16в. Номинал С4-можно значительно уменьшить, и сделать компактнее конструкцию, но для этого нужно произвести расчеты, воспользовавший калькулятором mc43063.
R1 ограничивает ток КЗ в нагрузке, на безопасном уровне, без него рискуете получить «пробой» mc34063 ,и 24в потекут в микроконтроллер и наделают много неприятностей.
mc34063 в корпусе SO-8.
«Артифакты» на печатной плате связанны с особеностями моей ЛУТ.

Настраивать ничего не нужно. Если возникла на то потребность-лучше откорректировать показания подбором делителя. Допайкой параллельно R5 или R4 дополнительных резисторов. Это на случай если вы заметите отличие в единицу по сравнению с вольтметром DT9208A,и захотите это исправить.
Только оцените для начала отклонение во всем диапазоне измеряемых напряжений.

В файле-исходник, прошивки на все случаи жизни(OK-общий катод,OA-общий анод), картинки фузов, модели для протеус v 7.7 sp2 ,exel файл для расчета делителя.
Для atmega48/atmega88 фузы одинаковые.
Для atmega8 свои. Будьте внимательны.

Фото в режиме работы, извените за качество.

 

Если возникло желание улучшить ПО,нужно перевести в 10битный режим АЦП, использовать режим ADC noise canceler, сделать усреднение по 64 значениям АЦП, сделать усреднение по вычисленным значениям, ввести дополнительный RC фильтр перед входом АЦП(для этого на плате есть место).
Добьетесь не такого частого «блымания» +-1 значение младшего разряда которым страдают все цифровые приборы.

Файлы


Файлы:
Архив RAR


Все вопросы в Форум.


ID: 1604

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

31 14 6
2
Подробно