Вольтметр на AVR

Возникла однажды у меня потребность в нормальном блоке питания. В таком, чтоб мог отдавать в нагрузку ток 4-5 ампера и чтоб напряжение регулировалось. Сказано — сделано. Нашел старинный блок AT блок питания от компа, перепаял. Напряжение регулируется, да вот только сколько там вольт на выходе не понятно. А каждый раз подключать мультиметр мне лень. Для этого спаял вот это чудо:

Вольтметр на avr

Данный вольтметр измеряет напряжение в диапазоне от 0 до 20 вольт. Диапазон может быть расширен или наоборот уменьшен. (придется немного подправить прошивку и пересчитать делитель напряжения). Аппаратная часть почти не представляет интереса: Линейный стабилизатор, источник опорного напряжения на TL431, контроллер и трёхразрядный семисегментый индикатор с общим анодом.

Вольтметр на AVR

Трёхразрядного индикатора я в Proteus’е не нашел так что не удивляйтесь :-) В принципе, если микрухи TL431 под рукой не будет то можно использовать стабилитрон на 5.1 вольта  + делитель напряжения. Но лучше оставить её т.к. измерения будут точней. Стоит она рублей 10 и дефицитом не является. Её можно найти в компьютерных блоках питания в цепях источника дежурного напряжения. Обычно она в корпусе TO-92. Резисторы обвязки лучше применить с допуском 1%. Опять же для точности. Если нет, то можно поставить и обычные. У меня с обычными резисторами источник опорного напряжения выдает около 5.02 вольта, что в принципе нормально. Конденсатор C3 следует расположить максимально близко к микроконтроллеру для снижения всевозможных наводок. Дроссель можно взять любой какой есть в запасах примерно от 10uH до 100 uH. Я нарыл старинный, советского производства. На фото его хорошо видно. Я люблю smd монтаж, и плата соответственно разведена под smd компоненты типоразмера 1206. Ни кто разумеется не запрещает развести свою печатку под выводные детали =) Вместо контроллера Atmega88 можно использовать Atmega8 без изменения схемы. Нужно всего лишь зашить соответствующую программу. Фьюзы микроконтроллера должны быть настроены на тактирование от внутреннего RC генератора работающего на частоте 2 мгц.

Вольтметр на avr

Разобравшись с железом поговорим о софте. Впервые я писал программу для микроконтроллера на микропаскале от Mikroelektronika. Впечатления отличные! Удобная среда разработки, справочная система, компактность генерируемого hex, всё это на высоте. Если кто-то захочет подправить прошивку, например сделать её для индикатора с общим катодом, то она в вашем распоряжении внизу страницы. Там же можно обнаружить саму среду разработки в которой этот исходник можно открыть и скомпилировать.

Микропаскаль для AVR

Прошивка+исходник на микропаскале

Печатная плата вольтметра

Альтернативная версия прошивки и платы от Дениса

Вольтметр на AVR: 142 комментария

  1. от переполюса, думаю спасет обычный диод, включенный в прямом направлении. присоединяюсь к предыдущему комментатору — хотелось бы измерять напряжение до 30В, хотя бы напишите что и как сделать.

  2. Здравствуйте.
    Скажите пожалуйста, можно ли ввести в схему и программу, возможность ввода контрольнгых точек измерения, по достижению которых, осуществлять управление каким либо устройством? Что-то типа реле защиты или узла контроля аккумулятора.
    Спасибо.

  3. Medved, помогите перекомпилить ваш исходник под общий катод. В принципе, где что изменить, я в курсе. Но открываю исходник, ничего не меняя, компилирую — в протеусе на индикаторе одни нули. Если в строку
    u:=((val/1023) * 5)*4;
    вместо val подставлять явные значения, например 200, то на индикатое отобразится 03.9
    Такое ощущение, что просто не считываются данные АЦП. В то же время, приложенный хекс Atmega8 - работает идеально. подскажите, куда копать?

  4. Поздравляю всех с наступившим Новым годом.Собрал вольтметр все хоршо работает но он врет гдето 1.2волта в меньшую сторону.Цифровики (3) показывают 13.2в а он показывает ровно 12в. Что может быть.

  5. Ребята хоть ктонить киньте ссылку с картринкой как фьюзы устанавливать, хотел отдать микросхему зашить, а чел говорит фьюзы нужны ещё, самой прошивки ему мало.

  6. У меня такой врпрос я эксперементировал с ADC в тини ив меге8 и везде ADC выдавал резултат неленейно тоесть если я настраивал на 1 волт при 1 волте то при 3,2 волтах он показвал 3,16

Добавить комментарий