Миниатюрный вольтметр на микроконтроллере ATmega8L

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

Здесь рассматривается конструкция вольтметра на одном лишь микроконтроллере ATmega8L, который с виду напоминает электронный термометр. Диапазон измеряемых напряжений постоянного тока ±50 В. Как дополнительная функция – реализован режим звукового пробника для проверки целостности проводов, ламп накаливания. Устройство автоматически переходит в дежурный режим при отсутствии измерений. Благодаря своей конструкции и возможностям устройство полезно и практично.



 

Питание микроконтрллера осуществляется от двух миниатюрных щелочных элементов (элементы питания для наручных часов). Необходимости часто менять элементы питания не будет: потребляемый ток в активном режиме составляет всего 330 мкА, в дежурном режиме – менее 300 нА.

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

Вольтметр на ATmega8L
Кликните для увеличения

Печатная плата была разработана с учетом установки ее в корпус от цифрового термометра.

Блок схема работы микроконтроллера показана на рисунке.

Исходный код для микроконтроллера был написан в среде разработки IAR Embedded Workbench. После процедуры сброса (Reset, при первичном включении питания или после нажания кнопки сброса), AVR микроконтроллер инициализирует (настраивает) таймеры (Timer 0, Timer 1). Timer 0 конфигурируется для функций генерации интервалов времени и генерации частоты обновления LCD дисплея. RC-генератор вырабатывает частоту 37 кГц (на элементах R4-С1), из которой при помощи предделителя и Таймера 0 получается 150 Гц для обновления дисплея. Timer 1 конфигурируется в режим ШИМ для генерации звуковых сигналов пробника (beep). После процедуры сброса (Reset) Вы услышите два коротких сигнала.

АЦП микроконтроллера сконфигурирован на 10-битный режим, процедура считывания данных вызывается из основной программы каждые 50 мс. Входное напряжение поступает на вывод микроконтроллера через входной делитель на резисторах R1-R3 и защитный диод U1.

Обновление LCD дисплея происходит каждые 1/150 с. Процедура прерывания выполняет определенную последовательность действий на выводах COM1, COM2, COM3 дисплея: при помощи резисторов R5, R6, R7 совместно с внутренними подтягивающими резисторами (эти резисторы должны быть равными) микроконтроллера и переключением вход/выход соответствующих выводов микроконтроллера формируются три уровня напряжения в каждый период обновления дисплея.

Список использованных компонентов

Элемент

Описание

Кол-во

U1

Сдвоенный диод Шотки BAT54S

1

U2

Микроконтроллер Atmel ATmega8L-8AI

1

LCD1

LCD индикатор от цифрового термометра.

1

LS1

Миниатюрный звуковой излучатель

1

SW1

Миниатюрная кнопка “Start” (Reset)

1

C1

47 пФ 50 В

1

C2

100 нФ 50 В

1

C3

1.0 мкф 16 В

1

R1

2.0 МОм

1

R2, R3

100 кОм

2

R4

150 кОм

1

R5, R6, R7

33 кОм

3

Исходный код программы микроконтроллера (IAR Embedded Workbench v.2.31E)- скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: The smallest handheld automatic one-chip AVR-based DC voltmeter

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Может я в настройках что нибудь не все поставил. С Протеусом в основном только рабочие примеры просматривал. Свойства микроконтроллера выставил, прошивку загрузил.
  • Я для микроконтроллера в протеусе не прошивку брал а coff файл (расширение .d90), в IAR выставил опцию создания данного файла. Но пока не вникал, не успеваю...
  • Ваш ЖК от какого термометра ?
  • На корпусе написано "Мир детства" , на плате А7348 , ЕСТ-3(31106), 050109 (год выпуска наверно)
  • VADZZ Что то мне не удается получить Coff, пишет ошибку что данный контроллер не поддерживает Coff. Тебе не удалось разобраться? В чем ошибка в программе? Прикрепи Coff попробую у себя.
  • К сожелению, пока не разбирался, просто нет времени. Мне кажется протеус не сильно поможет в этом деле, т.к. индикатора подходящего все же нет. Но я, конечно, завтра постараюсь чем нибудь помочь (советом по IAR или готовым файлом), но по-моему я в IAR, для формата выходного файла, выбирал "ubroff 8 (forced)". Завтра точно скажу...
  • На картинке - настройки IAR, чтобы получить файл для отладки в протеусе. В архиве - файлы IAR (исходники, прошива, ubrof).
  • Vadzz Рад сообщить что вольтметр заработал. Начал разбираться с VIM-332-DP и выяснил что у него сложное управление ,а не простое посегментное динамическое. И я в который раз стал проверять плату и нашел соплю. Хотя сколько раз тщательно проверял. Спасибо за помощь!
  • Приятная новость. Я рад, хотя начал подозревать прошиву. Рад что смог чем-то помочь.
  • Подскажите пожалуйста какие фузы всётаки? На PB6 никаких признаков генерации. Обошел 15 аптек, термометров "мир детства" нет. А другие типа AMRON, что то подсказывает печенка имеют в своём составе стекляшку и токопроводящую резинку - гемор ещё тот.
  • В исходном тексте указано что микроконтроллер нужно настроить на работу от внешнего RC. Установить в 0: SUT0, CKSEL1, CKSEL3
  • Спасибо, за такой быстрый ответ! Извиняюсь за невнимательность - нашел, буду пробовать....
  • Да так оно и есть! Других наверно и не бывает в термометрах, в часах.
  • Кто-нибудь может рассказать (или дать ссылку) на алгоритм работы с индикатором?
  • skinte silky na programator
  • Какой прорамматор? Для чего, для микроконтролеров AVR?
  • Tam est ishodniy kod programi (IAR Embedded Workbench v.2.31E) A est pod nego programator??????????? Zaranie spasibo
  • Программатор можно использовать любой имеющийся поддерживающий микроконтроллеры AVR. Не обязательно программатор именно к IAR Embedded Workbench v.2.31E, т.к. чуть выше есть мой пост, где во вложении прошивка (hex).
  • Кто собрал и у кого заработал поделитесьь плз наработками по цоколевке индикатора
  • Дайте распиновку LCD .Очень надо.
Полный вариант обсуждения »