Очень часто при наладке, отладке своих устройств, при проведении ремонтных работ на электрооборудовании автомобиля требуется очень распространенный прибор – вольтметр. Но не всегда удобно им пользоваться в некоторых случаях.
Здесь рассматривается конструкция вольтметра на одном лишь микроконтроллере ATmega8L, который с виду напоминает электронный термометр. Диапазон измеряемых напряжений постоянного тока ±50 В. Как дополнительная функция – реализован режим звукового пробника для проверки целостности проводов, ламп накаливания. Устройство автоматически переходит в дежурный режим при отсутствии измерений. Благодаря своей конструкции и возможностям устройство полезно и практично.
Питание микроконтрллера осуществляется от двух миниатюрных щелочных элементов (элементы питания для наручных часов). Необходимости часто менять элементы питания не будет: потребляемый ток в активном режиме составляет всего 330 мкА, в дежурном режиме – менее 300 нА.
Принципиальная схема устройства показан на рисунке ниже.
Печатная плата была разработана с учетом установки ее в корпус от цифрового термометра.
Блок схема работы микроконтроллера показана на рисунке.
Исходный код для микроконтроллера был написан в среде разработки 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)- скачать