Миниатюрный вольтметр на микроконтроллере
Ассортимент портативных электроизмерительных приборов предлагаемых в настоящее время производителями очень широк. Среди радиолюбителей заслуженную популярность получили доступные практически каждому цифровые мультиметры серий M83. Но при всей своей популярности они не лишены недостатков. Так отсутствие подсветки делают затруднительным процесс измерения в условиях недостаточной освещённости. Непрактичным является использование такого источника питания как батарея 9 В типа 6F22, низкий срок хранения (6 месяцев), а также склонность к вытеканию электролита знакомы многим. Также стоит отметить, что стоимость одной такой батареи в среднем в два раза выше стоимости двух элементов типа AAA, используемым в современных мультиметрах. Несменный переключатель режимов измерения зачастую изнашивается раньше, чем выходит из строя сам прибор.
Несоответствие возможностей измерительных приборов желаниям конечного пользователя приводит к тому, что тема самостоятельного изготовления измерительных приборов и по сей день остаётся актуальной.
В настоящее время всё большую популярность получают измерительные приборы на основе микроконтроллеров со встроенным АЦП, тем более что доступность и возможности таких микроконтроллеров постоянно растут. При этом схемотехника таких приборов существенно упрощается, и их сборка становиться под силу даже начинающим радиолюбителям.
В качестве устройств отображения информации в микроконтроллерных измерительных приборах часто используются ЖКИ модули с собственным контроллером. Такому решению присущи некоторые недостатки: необходимость дополнительной подсветки с большим током потребления, ограниченный выбор отображаемых символов (для символьных), большие габаритные размеры, высокая стоимость.
При использовании в качестве устройств отображения нескольких семисегментных светодиодных индикаторов и динамической индикации потребляемый ток меньше, чем ток потребляемый подсветкой ЖКИ модулей, но при этом он все, же остаётся значительным и потребляется постоянно. Для такого способа отображения также характерен ограниченный выбор отображаемых символов.
Вниманию читателей предлагается миниатюрный (размером немного больше спичечного коробка) экономичный микроконтроллерный вольтметр. Прибор предназначен для измерения медленно изменяющихся значений постоянного и переменного напряжения. Благодаря малым габаритам, возможностью работы в условиях плохой освещённости, использованию распространённых элементов питания и автоматическому выбору предела измерения он может быть полезен, например, при покупке элементов питания, контроле напряжения аккумуляторной батареи автомобиля, измерении сетевого напряжения в домашней сети и в других ситуациях.
Вольтметр позволяет измерять постоянное напряжение на трёх пределах: 9,99 В, 99,9 В и 999 В, выбор предела измерения выполняется автоматически, шаг отсчёта равен одной единице младшего разряда. Измерение переменного напряжения (50 Гц) выполняется на двух пределах: 70,6 В и 706 В, выбор предела измерения выполняется вручную, шаг отсчёта равен двум единицам младшего разряда. Питание прибора осуществляется от двух гальванических элементов напряжением 1,5 В типа ААА. Потребляемый ток зависит от отображаемого значения и изменяется от нескольких мА до 20 мА.
Прибор выполнен на базе микроконтроллера ATmega8 фирмы Atmel. Преобразование напряжения в код выполняется встроенным 10-ти разрядным АЦП. Измеренное значение напряжения отображается бегущей строкой на расположенной горизонтально светодиодной матрице типа АЛС340А1. При этом на экране одновременно отображаются сразу два символа, а третий становиться виден позднее, как показала практика такой способ не вызывает затруднений при считывании показаний (рис. 1).
Рис. 1 - Отображение значения 2,7
5 на светодиодной матрице
Схема прибора показана на рис. 2.
Рис. 2
Выбор типа микроконтроллера обусловлен наличием достаточного числа портов ввода-вывода для организации работы с применённой матрицей без использования дополнительных микросхем, а также его широкой доступностью.
Программа микроконтроллера написана на языке ассемблер, отлажена и откомпилирована в среде AVR Studio 4.14 фирмы Atmel [1]. В первой строке программы директивой .include прописана ссылка на файл m8def.inc. Этот файл содержит описание предопределённых имён регистров и констант микроконтроллера и входит в состав среды AVR Studio 4.14.
Поскольку при работе прибора не требуется с большой точностью выдерживать временные интервалы, то с целью снижения потребляемого тока и уменьшения числа навесных элементов микроконтроллер тактируется встроенным генератором с частотой 1 МГц.
После включения питания, выводы 14-18 микроконтроллера конфигурируются как выходы управления строками матрицы HG1, выводы 2-6, 11, 12 как выходы управления столбцами матрицы HG1, выводы 27, 28 как выходы управления пределом измерения. Вывод 13 конфигурируется как вход активации режима измерения напряжения ИОН на 1,3 В, выводы 23, 24 как входы выбора режима измерения. Выводы 25 и 26 сконфигурированы как аналоговые входы.
В качестве источника образцового напряжения используется внутренний ИОН микроконтроллера на напряжение 2,56 В.
Входная цепь вольтметра, состоящая из резисторов R1-R8, R11, и оптореле DA1 образует делитель напряжения с изменяемым коэффициентом передачи. Изменение коэффициента передачи осуществляется изменением суммарного сопротивления плеча делителя подключённого к общему проводу (резисторы R7, R8, R11). Изменение сопротивления осуществляется подключением резисторов R8, R11 параллельно резистору R7 через ключи оптореле DA1. Выключенное состояние обоих ключей оптореле соответствует пределу измерения 9,99 В, подключение резистора R8 включает предел измерения 99,9 В, резистора R11 предел измерения 999 В. С выхода делителя напряжение пропорциональное входному напряжению подаётся на вывод 26 микроконтроллера DD1.
Подачей сигналов на выводы 27 и 28 микроконтроллер управляет состоянием ключей оптореле DA1. При подаче сигнала высокого уровня оптореле включается. Резисторы R12, R13 ограничивают ток через светодиоды оптореле.
Выбор оптореле в качестве элемента коммутации обусловлен способностью работать при низких управляющих напряжениях (Uупр. = 1,1…1,6 В) [2]. Как показала практика, сопротивление открытого ключа указанного на схеме типа оптореле уже при токе 0,5 мА через управляющий светодиод, составляет около 10 Ом и практически не изменяется при дальнейшем повышении тока до номинального значения 5 мА.
Максимально-допустимое значение напряжения минусовой полярности на входе микроконтроллера не должно превышать 0,5 В [3]. Диод VD1 ограничивает напряжение минусовой полярности при ошибочном подключении измеряемого напряжения до значения 0,5…0,6 В, на пределе 9,99 В делитель напряжения на резисторах R5-R7 уменьшает его в 2 раза, на пределах 99,9 В и 999 В коэффициенты уменьшения составляют соответственно 14 и 135. Т.е. при самом неблагоприятном случае (предел 9,99 В) напряжение минусовой полярности на аналоговом входе микроконтроллера не превысит 0,25…0,3 В. При измерении переменного напряжения диод VD1 ограничивает минусовую полуволну напряжения.
Диод VD2 ограничивает значение напряжения на выводе 26 микроконтроллера до значения 3,1…3,2 В, что снижает вероятность выхода микроконтроллера из строя при нарушении работы управляемого делителя напряжения. Дроссель L1 и конденсатор C3 образуют фильтр питания аналоговой части микроконтроллера DD1. Конденсатор C4 снижает уровень помех на выходе ИОН на 2,56 В, выход которого подключен к выводу 21 микроконтроллера. Конденсаторы C1 и C2 фильтрующие.
Резисторы R9, R10 образуют делитель цепи измерения напряжения источника питания. С точки соединения резисторов напряжение пропорциональное напряжению источника питания подаётся на вывод 25 микроконтроллера. Необходимость использования делителя обусловлена тем, что напряжение на аналоговом входе микроконтроллера не должно превышать величину напряжения ИОН на 2,56 В. При указанных на схеме значениях, напряжение питания теоретически не должно превышать:
Формула 1
Переключатель SA2 служит для выбора режима измерения:
- измерение постоянного напряжения с автоматически выбором предела измерения;
- измерение переменного напряжения на пределе 706 В;
- измерение переменного напряжения на пределе 70,6 В.
Об алгоритме работы микроконтроллера. После окончания конфигурирования на HG1 выводятся символы «ПР», после которых отображается трёхзначное число номера версии программы микроконтроллера (константа vers). После отображения версии программы на экран выводится символ батареи, после чего отображается значение напряжения источника питания.
Если переключатель SA2 установлен в положение «DC», то микроконтроллер, начиная со старшего предела измерения (999 В), измеряет напряжение, сравнивает полученное значение с верхним порогом переключения предела. Если значение равно или больше верхнего порога, то микроконтроллер с помощью встроенного мультиплексора отключает вывод 26 от входа АЦП, и включает оба ключа оптореле DA1, максимально снижая коэффициент передачи управляемого делителя, после чего на экране HG1 появляется сообщение о перегрузке в виде символов «OL». Если напряжение вызвавшее перегрузку не будет снято, то символы будут периодически мигать. Если же значение меньше верхнего порога, то микроконтроллер сравнит его с нижним порогом переключения предела, если значение меньше нижнего порога, то микроконтроллер переключит предел на одну ступень вниз и повторит процедуру измерение и сравнение с пороговыми значениями. Если же значение больше нижнего порога, то микроконтроллер запоминает это значение. Процесс измерения будет повторяться столько раз сколько указано в константе midlcikl. Микроконтроллер выберет максимальное из измеренных значений и выдаст его на HG1. Использование максимального значения, а не среднего, по мнению автора на практике оказывается более востребовано.
Согласно документации минимальное напряжение питания микроконтроллера ATmega8 равно 2,7 В, но обычно микроконтроллер сохраняет работоспособность при снижении напряжения до 2,1…2,2 В. Однако при снижении питающего напряжения ниже примерно 2,6 В ИОН на 2,56 В теряет свою стабильность и напряжение на его выходе (вывод 21) становиться практически равно напряжению питания, в конечном счёте это приведёт к тому, что прибор начинает завышать свои показания. Для исключения этого и расширения диапазона питающего напряжения в программе микроконтроллера предусмотрен контроль напряжения источника питания и коррекция измеренных значений при потере стабильности ИОН на 2,56 В.
Коррекция основана на измерении напряжения ещё одного ИОН но на 1,3 В также входящего в состав микроконтроллера и сравнении измеренного значения с истинным (константа lowbat). Процедура контроля питающего напряжения выполняется перед началом каждого цикла измерения входного напряжения. При напряжении питания выше 2,6 В измеренное значение будет совпадать со значением константы. При снижении напряжения ниже 2,6 В измеренное значение будет превышать значение константы, это и будет сигналом для выполнения коррекции. Коэффициент коррекции, на который умножается результат преобразования АЦП, определяется, как отношение значения константы lowbat к измеренному значению напряжения ИОН на 1,3 В. Для информирования о том, что напряжение снизилось ниже 2,6 В и отображаемое значение прошло программную коррекцию перед выдачей откорректированного результата на экран HG1 высвечивается символ примерного равенства. Стоит отметить, что при снижении напряжения питания ниже 2,6 В уменьшаются границы переключения пределов измерения. Так при напряжении 2,2 В и измерении постоянного напряжения пределы станут 8,58 В, 85,8 В и 858 В, а при измерении переменного напряжения 60,6 В и 606 В.
При измерении переменного напряжения на одном из выбранных пределов (AC 706 В или AC 70,6 В) микроконтроллер выполняет измерение входного напряжения и сравнивает его с верхним порогом переключения предела. Если измеренное значение равно или превышает значение верхнего порога, действия аналогичны действиям при измерении постоянного напряжения. Если же значение меньше верхнего порога, то микроконтроллер, повторяя процесс измерения столько раз сколько указано в константе midlcikl определяет среднее (средневыпрямленное) значение, умножает его на 1,111 (перевод в действующее значение) и умножает на 2 (выпрямление однополупериодное). При измерении переменного напряжения, если необходимо также выполняется программная коррекция.
В программе предусмотрены меры по снижению потребляемого микроконтроллером тока, так модуль АЦП включается только на время измерения и выполняет преобразование входного напряжения в код в режиме шумопонижения - ADC Noise Reduction [3] (вычислительное ядро и некоторые другие модули микроконтроллера выключены). Такая организация процесса измерения также повышает точность преобразования.
Программа микроконтроллера предусматривает автоматическое выключение прибора после истечения заданного числа полных циклов отображения на экране HG1 (константа offcikl). Один полный цикл отображения прибора длится 2,3…2,5 секунд. При указанном в программе значении константы offcikl выключение выполняется примерно через 15 минут. При этом выключение будет выполнено только при выполнении одного из следующих условий:
- предел измерения равен 9,99 В;
- предел измерения равен 99,9 В и входное напряжение равно нулю;
- предел измерения равен 999 В и входное напряжение равно нулю.
Такой порядок автоматического выключения применён для уменьшения вероятности повреждения выключенного прибора (ключи оптореле DA1 выключены) без снятия входного напряжения. После автоматического выключения потребляемый ток уменьшается до 20мкА.
Для предупреждения о скором автовыключении прибора в программе предусмотрена выдача предупреждающего сообщения. Сообщение выдаётся в виде анимированного изображения часов. При указанном в программе значении константы message предупреждение появляется примерно за 1 минуту до выполнения автовыключения.
Исходный код программы снабжён подробными комментариями.
Загрузку кодов программы в память микроконтроллера можно выполнить программой PonyProg. Состояние фьюзов микроконтроллера перед загрузкой кодов программы должно соответствовать приведенному на рис. 3.
Рис. 3
Устройство собрано на печатной плате из двухстороннего фольгированного стеклотекстолита толщиной 1 мм (рис. 4).
Рис. 4
Плата рассчитана на установку резисторов МЛТ-0,25 R1-R4, МЛТ-0,125 R5-R13 или им подобных. Использование последовательного соединения четырёх резисторов (R1-R4) обусловлено тем, что при ошибочной полярности подключения, максимально допустимого входного напряжения 999 В к цепочке резисторов это напряжение будет приложено практически полностью (за исключением падения напряжения на диоде VD1), а максимально допустимое напряжение одного резистора МЛТ-025 составляет всего 250 В [4]. Похожая ситуация возникает и при измерении переменного напряжения (минусовая полуволна напряжения). Из подобных соображений, но уже при правильной полярности подключения входного напряжения применено последовательное соединение резисторов R5, R6.
Микроконтроллер установлен в панель. Выводы 1, 9, 10, 13 и 19 панели удалены, отверстия на плате для них не предусмотрены. Вместо микроконтроллера ATmega8 можно применить его низковольтную версию ATmega8L. Конденсаторы С1, C3, C4 - малогабаритные керамические К10-17, С2 – танталовый К53-30 или аналогичный импортный. Оптореле DA1 – КР293КП4 с любым буквенным индексом. Диод VD1 – КД257Д, КД258Д, 1N4249, ERB12-10, VD2 – КД102Б. Светодиодная матрица HG1 – АЛС340А1, 3ЛС340А, вариант использования совпадающих по цоколёвке матриц жёлтого цвета свечения АЛС357А, 3ЛС357А и зелёного цвета свечения АЛС358А, 3ЛС358А не проверялся. Переключатель SA1 – движковый переключатель E-Switch типа EG1249 на два положения, SA2 - движковый переключатель E-Switch типа EG2308 на три положения. У обоих переключателей с корпуса удалены крепёжные выводы (под пайку). Гнёзда XS1, XS2 – одиночные цанговые гнёзда от импортного разъёма, на плате закреплены проволочными бандажами с последующей пропайкой.
Внешний вид платы прибора в сборе приведён на рис. 5, резисторы R5 и R6 соединены между собой последовательно и установлены в одно посадочное место, на печатной плате, чертёж которой приведён на рис. 4 под установку этих резисторов предусмотрено два отдельных посадочных места.
Увеличить
Рис. 5
При настройке прибора необходимо подобрать значения сопротивления резисторов R1-R11 для получения соответствующих значений коэффициентов передачи делителя. Сначала подбираются сопротивления резисторов R1-R7.
В исходном тексте программы микроконтроллера предусмотрена константа koef позволяющая задавать коэффициент перевода кода АЦП в напряжение, отображаемое на HG1. Это в свою очередь позволяет использовать резисторы R1-R8, R10 с номиналами отличными от приведённых на схеме.
Значение константы (для вычислений с тремя знаками после запятой) определяется по следующей формуле:
Формула 2
где Uобр. – фактическое значение напряжения ИОН на 2,56 В (вывод 21 DD1), мВ.
Приведённое в исходном тексте программы значение константы равное 1000 соответствует Uобр. = 2,58 В и коэффициенту передачи делителя около 0,252 и с учётом предусмотренного в программе последующего деления на 1000 (для вычислений с тремя знаками после запятой) соответствует коэффициенту перевода кода АЦП в напряжение равному 1. При выборе значений сопротивления резисторов R1-R7 и заданном значении Uобр. нужно следить, чтобы значение коэффициента перевода кода АЦП в напряжение было не менее 0,978 и не более 1 (koef = 978…1000).
Значение сопротивления R8 подбирается при подаче входного напряжения больше 10 В, значение сопротивления R11 подбирается при подаче входного напряжения больше 100 В.
Сопротивления резисторов R9, R10 могут отличаться от приведённых на схеме, но неизменным должно остаться отношение их сопротивлений R10/R9 = 2/1. Сопротивления этих резисторов нужно подобрать с точностью не хуже 1%.
Как было отмечено ранее, в программе микроконтроллера для программной коррекции показаний предусмотрен контроль снижения напряжения питания. Для точной настройки системы контроля снижения напряжения питания необходимо выполнить измерение фактического значения напряжения ИОН на 1,3 В (в коде АЦП) при заданном значении Uобр. и напряжении питания прибора выше 2,6 В, затем откорректировать константу lowbat в исходном тексте программы и откомпилировать программу заново. Поскольку ИОН на 1,3 В не имеет выхода измерение его напряжения выполняется программно. Узнать напряжения ИОН на 1,3 В можно если при включенном приборе вывод 13 микроконтроллера подключить к минусовому проводу питания, отображаемое при этом трёхзначное число и будет значением напряжения ИОН на 1,3 В выраженное в коде АЦП. Для исключения влияния нестабильности напряжения ИОН на 1,3 В значение константы lowbat следует задавать на 1-2 единицы больше измеренного значения.
Плата прибора и элементы питания размещены в пластиковом корпусе подходящего размера с габаритами 57х37х19. Перемычка для элементов питания расположена на корпусе прибора. Внешний вид прибора приведён на рис. 6.
Рис. 6
Прикреплённые архивы:
Minivolt_spl.rar - принципиальная схема в формате sPlan 6 (6,47 кБ)
Minivolt_lay.rar - чертежи печатной платы в формате Sprint Layout 4 (27,4 кБ)
Minivolt_asm.rar - исходный текст программы микроконтроллера (7,72 кБ)
Minivolt_hex.rar - код программы микроконтроллера (2,14 кБ)
Дата публикации: 18.05.2010
ЛИТЕРАТУРА
1. AVR Studio 4
2. Реле малой мощности. Постоянного тока
3. ATmega8(L)
4. Аксёнов А. И., Нефёдов А. В. Элементы схем бытовой радиоаппаратуры. Конденсаторы. Резисторы. – М.: Радио и связь, 1995
Статья опубликована в журнале Радио 2009, №4, с 20 – 23
http://ya-vyachko.narod.ru/minivolt.html#0
Еще поделка на эту же тему:
http://radio.aliot.com.ua/?p=6
http://radio.aliot.com.ua/?p=499
http://chipenable.ru/index.php/forum/7- … 6-led.html
Вот путь к миниатюрному Фоллю!
http://www.rlocman.ru/shem/schematics.html?di=63917
http://radiokot.ru/forum/viewtopic.php?f=57&t=93613
Амперметр
http://xschemes.pp.ua/ampermetr-shema-na-pic.html
http://eugenemcu.ru/forum/4-8-1
http://techno-mind.ru/overkloking/voltm … rsiya.html