Схема. Миниатюрный вольтметр на микроконтроллере
Предлагаемый вольтметр предназначен для измерения постоянного и переменного напряжений, он имеет светодиодный индикатор, а его габаритные размеры немногим более размеров спичечного коробка. Благодаря малым габаритам и возможности работы в условиях плохой освещенности его можно использовать в походных условиях, например, для контроля элементов питания радиоаппаратуры, аккумуляторной батареи автомобиля и т. д.
Ассортимент портативных электроизмерительных приборов, выпускаемых в настоящее время производителями, очень широк. Среди радиолюбителей заслуженную популярность получили доступные, практически каждому, цифровые мультиметры серии М83х. Но при всей своей популярности они не лишены недостатков. Так, отсутствие подсветки делает затруднительным процесс измерения в условиях недостаточной освещенности. Переключатель режимов измерения зачастую изнашивается раньше, чем выходит из строя сам мультиметр. Непрактичным является использование такого источника питания, как батарея 6F22 напряжением 9 В.
Предлагаемый вольтметр имеет три предела измерения постоянного напряжения — 9,99, 99,9 и 999 В, которые переключаются автоматически, и два предела для переменного (50 Гц) — 70 и 700 В. При измерении постоянного напряжения шаг отсчета равен единице, а при измерении переменного -двум единицам младшего разряда.
Питание осуществляют от батареи из двух гальванических элементов напряжением по 1,5 В типоразмера ААА. Потребляемый ток зависит от отображаемого значения и изменяется от нескольких до 20 мА.
Основой устройства (рис. 1) является микроконтроллер ATmega8L. Его выбор обусловлен наличием достаточного числа портов ввода—вывода для управления светодиодной матрицей HG1 без применения дополнительных микросхем, наличием встроенных десятиразрядного АЦП и источника образцового напряжения (2,56 В). Преобразование входного напряжения в цифровой код выполняет АЦП, а измеренное значение (три разряда) выводится в виде бегущей строки на светодиодную матрицу HG1.
Программа для микроконтроллера написана на языке ассемблера, отлажена и откомпилирована в среде AVR Studio 4.14. В первой строке директивой .include имеется ссылка на файл m8def.inc. Он содержит описания предопределенных имен регистров и констант микроконтроллера и входит в состав среды AVR Studio 4.14.
— измерение переменного напряжения на пределе 700 В;
— измерение переменного напряжения на пределе 70 В.
Входная цепь вольтметра состоит из резисторов R1—R7, R9, R10, диода VD1 и оптопары U1 и образует делитель напряжения с изменяемым коэффициентом передачи. Его изменение осуществляется подключением резисторов R9, R10 через полевые транзисторы оптопары U1. Когда они отключены, установлен предел измерения 9,99 В, при подключении резистора R10 будет установлен предел 99,9 В, а резистора R9 — 999 В. С выхода делителя напряжение, пропорциональное входному, поступает на линию ADC3 (вывод 26) микроконтроллера DD1. Выбор указанной оптопары обусловлен ее способностью работать при низком управляющем напряжении (1,1…1,6 В), кроме того, как показала практика, сопротивление открытого ключа уже при токе 0,5 мА через управляющий светодиод составляет около 10 Ом и практически не изменяется при дальнейшем повышении тока до номинального значения 5 мА.
Напряжение минусовой полярности на входе микроконтроллера DD1 не должно превышать 0,5 В. Диод VD1 ограничивает напряжение этой полярности до 0,5…0,6 В. Поскольку на вход АЦП микроконтроллера это напряжение поступает через делитель напряжения R5—R7, оно не превысит 0,25…0,3 В на любом из пределов. Кроме того, при измерении переменного напряжения диод VD1 выполняет функции выпрямителя.
По окончании конфигурирования выводов микроконтроллера на индикатор HG1 выводятся символы «ПР», после которых отображается трехзначное число номера версии программы микроконтроллера (константа vers в программе). Затем выводится условный символ батареи, затем отображается ее напряжение. Если переключатель SA2 установлен в положение «= Автомат», микроконтроллер DD1, начиная с большего предела измерения (999 В), измеряет напряжение и сравнивает полученное значение с верхним порогом переключения предела. Если это значение равно или больше порога, микроконтроллер DD1 с помощью встроенного мультиплексора отключает вывод 26 от входа АЦП и подает управляющее напряжение на оба светодиода оптопары U1, снижая коэффициент передачи входного делителя до минимума. Одновременно на индикаторе HG1 появляется сообщение о перегрузке в виде символов «OL». Если напряжение, вызвавшее перегрузку, не будет отключено, символы начнут мигать.
При входном напряжении, меньшем верхнего порога, микроконтроллер сравнивает его с нижним порогом переключения предела, и если напряжение меньше, будет включен предел 99 В и процедура измерения повторится.
Минимальное напряжение питания микроконтроллера ATmega8L составляет 2,7 В, но, как правило, он сохраняет работоспособность при снижении напряжения до 2,1…2,2 В. Однако при таком снижении питающего напряжения встроенный источник образцового напряжения теряет стабильность и напряжение на выводе 21 становится практически равным напряжению питания, что в конечном счете приведет к завышению показаний. Для устранения этого недостатка и расширения интервала питающего напряжения в программе микроконтроллера предусмотрены контроль напряжения источника питания и коррекция результатов измерений.
Коррекция основана на измерении напряжения еще одного встроенного в микроконтроллер источника образцового напряжения (1,3 В) и в сравнении измеренного значения с истинным (константа lowbat). Процедура измерения питающего напряжения выполняется перед началом каждого цикла измерения. При напряжении более 2,6 В измеренное значение совпадет со значением константы, при меньшем — оно превысит это значение, что и будет сигналом для выполнения процедуры коррекции. Коэффициент коррекции, на который умножается результат преобразования АЦП, определяется, как отношение значения константы lowbat к измеренному значению напряжения источника
При измерении переменного напряжения на одном из выбранных пределов микроконтроллер также выполняет измерение и сравнивает его с верхним порогом переключения предела. Если порог превышен, то осуществляются операции, как и при измерении постоянного напряжения. Число измерений задает константа midlcikl, после этого определяется среднее значение, которое умножается на 1,111 (перевод в действующее значение) и затем на 2 (выпрямление однополупериодное), при необходимости также выполняется программная коррекция.
В устройстве предусмотрены меры по снижению потребляемого тока. Так, модуль АЦП микроконтроллера включается только на время измерения и выполняет преобразование входного напряжения в код в режиме шумопонижения (ADC Noise Reduction), при котором вычислительное ядро и некоторые другие модули микроконтроллера отключены. Такая организация процесса измерения повышает точность преобразования. Предусмотрено также автоматическое выключение устройства по истечении заданного числа полных циклов отображения на индикаторе HG1 (константа offcikl) при этом потребляемый ток уменьшается до 20 мкА. Продолжительность одного полного цикла составляет 2,3…2,5 с. При указанном в программе значении этой константы выключение произойдет примерно через 15 мин, но только при выполнении одного из следующих условий:
— установлен предел 9,99 В;
— установлен предел 99,9 или 999 В, и входное напряжение равно нулю.
Такой порядок автоматического выключения применен для уменьшения вероятности повреждения выключенного прибора при не отключенном входном напряжении. Для предупреждения о предстоящем автоматическом выключении предусмотрено соответствующее сообщение — анимированное изображение часов. При указанном в программе значении константы message предупреждение появляется примерно за одну минуту до отключения.
Все детали смонтированы на печатной плате из двусторонне фольгированного стеклотекстолита толщиной 1 мм (рис. 3 и рис. 4). Применены резисторы МЛТ, оксидный конденсатор -импортный, остальные — К10-17, дроссель — ЕС24. Можно применить оптопару КР293КП4 с любым буквенным индексом, диод 1N4007 заменим на КД257Д, КД258Д, 1N4249, ERB12-10, КД102А — на КД102Б, КД103А, светодиодная матрица АЛС340А1 — на ЗЛС340А1. Переключатель SA1 — движковый EG1249 на два положения, SA2 — также движковый EG2308 на три положения, у них с корпуса удалены крепежные выводы.
Гнезда XS1, XS2 -одиночные цанговые зажимы от импортного разъема, с платой они соединены гибкими изолированными проводами, которые закреплены проволочным бандажом с последующей пайкой. Взамен низковольтного микроконтроллера ATmega8L можно применить микроконтроллер ATmega8, рассчитанный для работы с напряжением питания 4,5…5,5 В, но предварительно следует убедиться в его работоспособности при питании от напряжения 3 В. Микроконтроллер устанавливают в панель, при этом ее выводы 1,9,10, 13и19 удалены, а отверстия на плате для них не предусмотрены. Для гальванических элементов на плате смонтированы пружинящие металлические пластины. Внешний вид платы показан на рис. 5, она установлена в пластмассовый корпус с габаритными размерами 57x37x19 мм (рис. 6).
Загрузку кодов программы в память микроконтроллера можно выполнить программой PonyProg www. www.lancos.com . Разряды конфигурации устанавливают в соответствии с рис. 7. В исходном тексте программы предусмотрена константа koef, позволяющая задавать коэффициент перевода кода АЦП в напряжение, отображаемое на индикаторе HG1. Это, в свою очередь, позволяет использовать резисторы R1—R7, R9, R10 с номиналами, отличными от приведенных на схеме. Значение этой константы можно определить по формуле
koef = 100 Uo6p (R1+R2+R3+R4+R5+ +R6+R7)/(1024R7),
где Uобр — фактическое значение источника образцового напряжения (2,56 В), мВ. В исходном тексте koef =1000, что соответствует Uобр = 2,58 В. При выборе значений сопротивления резисторов R1—R7 и заданном значении 11обр должно выполняться условие 978 < koef <1000.
При налаживании устройство подключают к источнику напряжения, значение которого измеряют с высокой точностью эталонным вольтметром. На пределе 9,99 В подают напряжение около 9 В, и подборкой резисторов R3—R5 уравнивают показания. Затем увеличивают выходное напряжение до 90 В и сравнивают показания подборкой резистора R10. Аналогичную процедуру повторяют с резистором R9, подав на вход напряжение 200…300 В. Сопротивления резисторов R11 и R8 могут отличаться от приведенных на схеме, но неизменным должно остаться их отношение R11/R8 = = 0,5, поэтому их следует подобрать с отклонением не более 1 %.
Как было отмечено выше, для программной коррекции показаний предусмотрен контроль снижения напряжения питания . При налаживании необходимо выполнить измерение фактического значения напряжения встроенного образцового источника 1,3 В при питающем напряжении 2.6…3 В, а затем откорректировать константу lowbat в исходном тексте программы и откомпилировать ее заново. Поскольку источник образцового напряжения 1,3 В не имеет внешнего выхода, измерение его напряжения выполняется программно. Для этого при включенном устройстве вывод 13 микроконтроллера DD1 временно соединяют с общим проводом. При этом на индикаторе HG1 отобразится трехзначное число, соответствующее напряжению этого образцового источника. Значение константы lowbat в программе следует увеличить на одну-две единицы относительно измеренного значения.
Прилагаемые файлы: 12_27_44__13_05_2010.zip
В. КЕЛЕХСАШВИЛИ, г. Волгодонск
«Радио» №4 2009г.
Похожие статьи:
Частотомер на микроконтроллере
Восстановление конфигурации микроконтроллеров AVR
Миниатюрный импульсный источник питания
Лабораторный блок питания на микроконтроллере
Преобразователь USB-COM-LPT на микроконтроллере
Усовершенствованный термометр-термостат на микроконтроллере
Часы с термометром и барометром на микроконтроллере ATmega8
Автомат световых эффектов на микроконтроллере
Лабораторный источник питания с микроконтроллерным управлением
Универсальный таймер на PIC-контроллере
Post Views: 2 945
Цифровой вольтметр | Все своими руками
Цифровой вольтметр имеет два предела измерения, от 00,00… 10,23 В, второй предел измерения от 000,0… 102,3 В. Переключение пределов осуществляется при помощи переключателя. Основой схемы вольтметра является микроконтроллер PIC16F676.
Данные об измеряемом напряжении выводятся на однострочный жидкокристаллический индикатор. Электрическая схема вольтметра показана на рисунке 1.
В качестве источника опорного напряжения для модуля аналого-цифрового преобразования используется внешний источник с выходным напряжением 1,023 вольта. Такая величина опорного напряжения при десятиразрядном модуле АЦП данного микроконтроллера, позволяет производить оцифровку входного сигнала с точностью до 0,001 вольта. Десять разрядов АЦП, это в двоичной системе счисления — 11 1111 1111, а в десятичной – 1023, т.о. 1,023 вольта делим на 1023, получаем значение напряжения одного разряда, т.е. 0,001 вольта. В качестве стабилизатора напряжения питания применена микросхема К157ХП2, имеющая в своем составе внутренний ИОН с напряжением 1,3 В. И самое главное его внешний вывод 8. Такое же схемное решение применено в схеме милливольтметра, рассмотренной в статье «Милливольтметр на PIC16F676». Чтобы исключить влияние входа микроконтроллера на выход 8 DA1, в схему введен повторитель напряжения, выполненный на одном из двух ОУ микросхемы DA2 – DA2. 1. Конденсаторы С2 и С5, это конденсаторы фильтра напряжения ИОН. Величина напряжения ИОН на входе RA1 микроконтроллера DD1 регулируется резистором R6. Этим резистором производится калибровка показаний прибора по контрольному цифровому вольтметру.
Общее напряжение питания схемы можно регулировать подстроечным резистором R3. Резистор R8 включен последовательно со светодиодом подсветки LCD. Меняя его величину, можно изменять уровень освещенности индикатора. Контрастность выводимых символов на индикаторе зависит от напряжения, подаваемого на вывод V0 LCD. То есть от номиналов делителя напряжения, состоящего из резисторов R9 и R10. Конденсатор С8, это конденсатор фильтра питающего напряжения, его лучше впаивать непосредственно между выводами питания микроконтроллера 1 и 14.
Переключатель S1 служит для переключения измеряемого напряжения на тот или иной вход АЦП микроконтроллера. Если контакт переключателя находится в нижнем положении, то измеряемое напряжение через делитель напряжения 1:10, состоящий из резисторов R2 и R5, подается на еще один повторитель, собранный на втором ОУ микросхемы DA2. Применение ОУ, включенного по схеме повторителя со 100% отрицательной обратной связью, позволяет резко уменьшить шумовую составляющую измеряемого напряжения, еще не маловажное назначение данного повторителя, это защита входов микроконтроллера. По идее, такой же каскад надо ввести и в цепь измерения напряжения до 100 вольт. При верхнем положении переключателя, измеряемое напряжение через делитель 1:100, R1 и R4, подается на вход RA2 микроконтроллера DD1. В качестве стабилитронов VD1 и VD2 можно применить КС147А. Это защищающие элементы схемы и предназначены для защиты от повышенных напряжений при внештатных ситуациях. В случае применения вышеуказанных стабилитронов, напряжение на входе будет ограничиваться на уровне 4,7 вольта. Это напряжение безопасно, как для ОУ, так и для входов микроконтроллера DD1. При отсутствии этой марки стабилитронов, можно использовать КС133А. Вид устройства собранного на макетной плате показан на фото 1.
Скачать файл прошивки можно здесь. Успехов. К.В.Ю.
ciyfrovoi_voltmert (1034 Загрузки)
Просмотров:9 510
Метки: вольтметр, цифровой
Цифровой мультиметрСамодельный проект с использованием микроконтроллера
By EG Projects
Этот проект студента ливерпульского университета посвящен созданию цифрового мультиметра с использованием микроконтроллера mbed. Мультиметр может измерять три параметра: напряжение, сопротивление и емкость. Измеренное напряжение, емкость и сопротивление отображаются на ЖК-дисплее 16×2. Это небольшой и крутой проект встроенной электроники своими руками.
Как сделан мультиметр? Микроконтроллер MbedМикроконтроллерыMbed представляют собой маломощные и высокопроизводительные модули. Они обладают низкой задержкой и высокой пропускной способностью. Для этого конкретного проекта используется их вариант ARM Mbed NXP LPC1768 cortex-m3. Тактовая частота этого конкретного микроконтроллера/процессора составляет 96 МГц. Высокая тактовая частота и пропускная способность сделали этот микроконтроллер идеальным для применения в цифровых мультиметрах. Комплект микроконтроллера mbed работает от 3,3 вольта. |
Как мультиметр измеряет сопротивление, емкость и напряжение?
Принципиальная схема проекта приведена ниже. Моментальный снимок конструкции конечного оборудования показан на рисунке ниже. Небольшой источник питания установлен на плате, а питание подается на другие шины с помощью перемычек/соединительных проводов. Микроконтроллер Mbed размещен на другой плате вместе с ЖК-дисплеем 16×2. Для управления яркостью ЖК-дисплея рядом с ЖК-дисплеем устанавливается переменный резистор.
Три кнопки с обозначениями V, R и C, прикрепленные к плате, представляют собой напряжение, сопротивление и емкость. Каждая кнопка вычисляет параметр, указанный на ней.
Цифровой мультиметр со схемой микроконтроллера Mbed
Цифровой мультиметр для измерения напряжения
Для измерения напряжения на точечной схеме используется делитель напряжения. Например, мы хотим измерить напряжение в точке, и максимальное напряжение, которое может прийти в эту конкретную точку, составляет 12 вольт.
Делитель напряжения для фиксации напряжения | Микроконтроллер Mbed работает от 3,3 вольта. Его цифровые и аналоговые контакты могут потреблять 3,3 вольта. Любое напряжение выше 3,3 В может серьезно повредить контакты микроконтроллера. В этом случае мы используем схему делителя напряжения. Напряжение делится на два сопротивления. Схема делителя напряжения спроектирована таким образом, что напряжение на одном из резисторов никогда не превышает диапазон напряжения 3,3 В. В соответствии с ним нужно подобрать сопротивление. Схема делителя напряжения приведена слева. Если взять рассматриваемую картину по описанному выше сценарию. Тогда на Вине у нас 12 вольт. На Vr1 должно падать 8,7 вольт, а на Vr2 ни в коем случае не должно повышаться 3,3 вольта. |
Мы хотим измерить напряжение в точке Vin. Но так как напряжение в этой точке выше, то, чтобы его понизить, мы разделили напряжение. Теперь, как точно предсказать напряжение? Соотношение должно быть рассчитано между двумя сопротивлениями R1 и R2. Это отношение, умноженное на рассчитанное напряжение на R2 или Vr2, дает конечное напряжение на Vin.
Я сделал действительно хороший учебник по нему, используя Arduino, я предлагаю вам использовать его для лучшего понимания метода мониторинга напряжения батареи Arduino. Результат измерения напряжения отображается на ЖК-дисплее 16×2, показанном на рисунке ниже.
Цифровой мультиметр с микроконтроллером – результат измерения напряжения
Мультиметр измеряет сопротивление, как омметр
Измерение сопротивления аналогично измерению напряжения, но на этот раз вместо напряжения мы вычисляем сопротивление после измерения падения напряжения на R2.
В данном случае Vin фиксированный допустим 12 вольт. Мы также знаем сопротивление R1. Измеряем напряжение на R2. Теперь у нас три параметра Vin, Vout и R1. Подстановка этих параметров в формулу, приведенную справа, дает сопротивление R2. Примечание : Необходимо соблюдать осторожность при измерении сопротивления. Vr2 не должен увеличивать предел 3,3 вольта. Я бы посоветовал вам рассчитать диапазон сопротивления вручную, который можно измерить относительно R1. Расчет сопротивления и результат отображаются на ЖК-дисплее 16×2. Результат можно увидеть на картинке ниже. | Измерение сопротивления с использованием схемы резисторного делителя |
Цифровой мультиметр с микроконтроллером – результат измерения сопротивления
Измерение емкости мультиметром
Емкость — это способность дискретного электронного компонента накапливать в себе заряд и освобождаться по команде. Для этой цели широко используются конденсаторы. Конденсатору нужно время, чтобы зарядить себя. Это время заряда пропорционально сопротивлению нагрузки и емкости конденсатора. Уравнение времени заряда:
TC=RC
Где Tc — время заряда, а RC — произведение сопротивления нагрузки и емкости. Если мы изменим формулу и возьмем C в левой части, то TC/R дает емкость конденсатора. Постоянная времени конденсатора определяется как время, за которое напряжение на конденсаторе достигает 63,2% от его напряжения при полной зарядке.
Расчет емкости с помощью схемы микроконтроллера
Шаги расчета емкости
- Разрядите конденсатор. Лучшим методом является использование выходного цифрового вывода, который разряжает конденсатор, когда необходимо рассчитать емкость. Светодиод на выходе рекомендуется для разрядки конденсатора.
- Зарядите конденсатор после его разрядки. Когда вы начинаете заряжать, отметьте время начала или запустите счетчик в миллисекундах().
- Когда напряжение достигает 63% от общего напряжения на конденсаторе, остановите таймер и запишите отметку времени. Теперь вычтите время начала с временем остановки. Окончательное значение ТС. Разделив Tc на R, мы наконец получили значение емкости.
Цифровой мультиметр с микроконтроллером – результат измерения емкости
Рубрики: Arduino, Microcontroller Projects
Как создать простой интерактивный цифровой вольтметр
Скачать PDF
Abstract
В данных указаниях по применению используется оценочный комплект (EV) микроконтроллера MAXQ2010 Rev D для реализации цифрового вольтметра. В статье показано, как измерять напряжения с помощью АЦП и отображать их на ЖК-дисплее электромобиля. Встроенный 5-позиционный переключатель используется для выбора канала АЦП для отображения на ЖК-дисплее. Никаких дополнительных деталей, кроме комплекта электромобиля, не требуется.
Загрузите пример проекта с кодом, описанным в этом примечании по применению.
Введение
MAXQ2010-KIT демонстрирует микроконтроллер MAXQ2010. В комплекте есть универсальная плата со следующими функциями:
- Две кнопки для линий сброса и прерывания
- Один 5-позиционный переключатель
- 19 открытых контактов GPIO
- Восемь каналов АЦП
- Фотоэлемент А
- Термистор
- ЖК-экран
Встроенный АЦП MAXQ2010 принимает напряжение от 0 В до 3,3 В и преобразует его в битовое значение от 0 до 4095 (12-битная точность). Затем микроконтроллер масштабирует значение в диапазоне от 0 до 3,3000 и записывает его на ЖК-дисплей платы. Код приложения повторно производит выборку всех восьми каналов АЦП и использует 5-позиционный переключатель, чтобы определить, какой канал отображать.
Помимо комплекта EV, никаких дополнительных деталей не требуется. В комплект EV входит ограниченная версия программного обеспечения IAR Embedded Workbench®. Полную версию программного обеспечения можно приобрести на веб-сайте IAR™. Пример приложения был написан и скомпилирован для версии 2.20I.
Начало работы
Настройте плату в соответствии с документацией комплекта EV. Также необходимо установить перемычки J30 и J31, которые подключат фотоэлемент (R17) к входу 6 АЦП (AN6), а термистор (R20) к входу 7 АЦП (AN7). Вы также можете добавить напряжения на порты 0–5, пока напряжения остаются в диапазоне от 0 В до 3,3 В.
Затем запустите программное обеспечение IAR. В верхнем левом углу нажмите Файл Открыть рабочую область. Перейдите в каталог, содержащий проект вольтметра, и откройте файл voltmeter.eww. Настройки проекта уже будут установлены. Чтобы убедиться, что JTAG настроен на правильный COM-порт, щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, в левой части экрана и выберите «Параметры» (, рис. 1, ). Перейдите в «Категории», нажмите «JTAG» в разделе «Отладчик» и введите COM-порт, к которому подключен ваш программатор ( Рисунок 2 ). Чтобы проверить, какой COM-порт используется, откройте Диспетчер устройств. В документации комплекта EV подробно описано, как туда добраться.
Рис. 1. Чтобы убедиться, что JTAG настроен на правильный COM-порт, начните с меню «Параметры».
Рисунок 2. Найдите параметр JTAG и введите COM-порт, к которому подключен ваш программатор.
Затем нажмите «Отладка» в правой части панели инструментов ( Рисунок 3 ). Это скомпилирует, свяжет и запрограммирует вашу доску. На мгновение появится меню отладки. Зеленая стрелка будет указывать на основную функцию. Запустите программу, нажав F5 или кнопку на панели инструментов, которая выглядит как плоский лист бумаги с тремя стрелками над ним.
Рис. 3. Используйте команду «Отладка» для компиляции, компоновки и программирования платы комплекта электромобиля.
Результаты применения
На плате комплекта EV есть два аналоговых входа, термистор и фотоэлемент, которые непрерывно выводят сигналы напряжения. Оба этих входа подключены к контактам АЦП, чтобы можно было измерить их напряжение. Пример приложения считывает восемь значений АЦП (на каналах с 0 по 7) за раз. Значения отправляются на программный фильтр нижних частот, удаляющий высокочастотный шум. Выбранный канал АЦП отображается на ЖК-дисплее. В правом нижнем углу платы находится переключатель. Нажатие этого переключателя вниз или вправо увеличивает контролируемый канал АЦП. Если выбранный канал больше семи, программное обеспечение вместо этого выбирает нулевой канал. И наоборот, нажатие переключателя вверх или влево уменьшает канал АЦП; канал семь контролируется, если выбранный канал меньше нуля. Чтобы отобразить текущий отслеживаемый канал, нажмите на переключатель. Чтобы остановить выборку АЦП, удерживайте нажатой кнопку SW3. Пока SW3 удерживается, канал все еще можно изменить.
После сброса микроконтроллер отображает напряжение фотоэлемента на шестом канале. Чем больше света получает ячейка, тем ниже напряжение на ней. По сути, напряжение на выводе АЦП напрямую связано с количеством присутствующего света. Это связано с тем, что фотоэлемент является частью делителя напряжения на AN6 (см. , рис. 4 ). При люминесцентном освещении напряжение будет около 2В. Если вы заштрихуете угол платы, содержащий ячейку, напряжение немного упадет; полное закрытие фотоэлемента пальцем приведет к падению напряжения примерно до 0,5 В. Если убрать палец, напряжение вернется к 2 В.
Рис. 4. Делитель напряжения и уравнение, определяющее напряжение.
Примечание : вы можете заметить, что без какого-либо входа, подключенного к одному из контактов AN, отображаемое напряжение близко к 1,4 В. Это происходит из-за внутренней схемы смещения и не влияет на измерение.
Действие кода
Когда код начинает выполняться, инициализируются три элемента: ЖК-дисплей, контакты ввода-вывода для 5-позиционного переключателя и АЦП.
MAXQ2010 оснащен внутренним драйвером ЖК-дисплея, который имеет два регистра для управления его работой. Записанные в них значения устанавливают режим по умолчанию для этой платы.
LCRA = 0x1860; /* Рабочий режим 1/4, тактовая частота 32 кГц, внутреннее заземление VADJ */ ЛКФГ = 0x7F; /* Активировать сегменты на P0-P3, включить LCD, нормальный режим */В этом режиме по умолчанию сегменты настроены, как показано на Рисунок 5 .
Рис. 5. Конфигурация ЖК-дисплея.
Символ записывается путем отправки старшего байта шестнадцатеричного кода (CAfedabcDP) в регистр LCD, а младшего байта (ijklhgnm) в последовательный регистр LCD. Это приложение включает в себя таблицу символов констант, которую можно использовать для поиска шестнадцатеричных кодов десятичных цифр. Таблица символов позволяет очень легко отображать цифры на ЖК-дисплее.
В 5-позиционном переключателе (SW1) используются контакты порта с P4. 0 по P4.5. Общий контакт SW1 — P4.0, для которого установлен низкий уровень выходного сигнала. Остальные контакты подключаются к слабым подтягиваниям, задавая направление на вход и записывая 1 на выход. Таким образом, если на выводе есть логический 0, когда он сэмплируется, программа знает, что переключатель нажат. После каждой выборки АЦП микроконтроллер опрашивает переключатель и соответствующим образом меняет канал.
Важно знать, что доступ ко всем регистрам конфигурации и данных АЦП осуществляется через регистр адреса последовательности преобразования (ADDATA) и что регистр состояния (ADST) указывает на текущий регистр. Инструкции записи в ADDATA будут записывать в регистры конфигурации, а инструкции чтения будут считываться из регистров данных.
АЦП инициализируется путем настройки регистра управления АЦП (ADCN) и регистров конфигурации. Во-первых, мы должны загрузить ADST с регистром конфигурации, в который мы хотим записать первым. После записи в ADDATA ADST автоматически увеличится. Таким образом, восемь последовательных записей в ADDATA, когда начальным регистром является регистр конфигурации 0, будут выполнять запись в регистры с 0 по 7. Каждый регистр конфигурации управляет конфигурацией для этого канала. Запись 0x07 в ADADDR указывает микроконтроллеру начать последовательность преобразования с канала 0 и закончить с каналом 7. Это заставит АЦП производить выборку каждого канала один раз, прежде чем поднять флаг, сигнализирующий о том, что данные готовы.
Доступ к каждому результату, помещенному в регистр данных, осуществляется через ADDATA. Чтобы начать с регистра данных 0, ADST устанавливается в 0. Восемь операций чтения из ADDATA извлекают все восемь значений последовательности преобразования. Здесь регистр данных также увеличивается при последовательном чтении из ADDATA.
Каждое значение, считываемое из ADDATA, находится в диапазоне от 0 до 4095. Для MAXQ2010 4095 представляет опорное напряжение АЦП, AVDD, которое обычно составляет 3,3 В. Программа масштабирует 12-битное значение в диапазоне от 0 до 33000 вместо уменьшения до 3,3, поскольку целочисленное деление приведет к усечению. Например, значение ADC 2036 будет отображаться как 1,0000 вместо 1,6407.
беззнаковое целое напряжение = ADCvalue * 3,3 * 10000/4095;Результатом этого кода является значение от 0 до 33000. Цифры маскируются и отображаются на ЖК-дисплее с добавлением десятичной точки в правильном месте. По сути, преобразование значения бита в 10 -4 вольт. Добавление десятичного знака позже возвращает значение обратно к вольтам.
Заключение
В этих рекомендациях по применению показано, как реализовать цифровой вольтметр на микроконтроллере MAXQ2010. Используя периферийные устройства MAXQ2010-KIT, данные о напряжении от внутреннего АЦП легко выводятся на ЖК-дисплей. Для различных приложений ЖК-дисплей комплекта EV может отображать буквенно-цифровые символы. С помощью 5-позиционного переключателя можно создать расширенный интерфейс меню.