Схемы самодельных цифровых вольтметра и амперметра (СА3162, КР514ИД2). Цифровой вольтметр: виды, схема, описание Схемы цифровых вольтметров и амперметров своими руками

Цифровой вольтметр является довольно востребованным прибором. Предназначен он исключительно для определения напряжения, которое имеется в электрической цепи. Подключение цифрового вольтметра может осуществляться двумя способами. В первом варианте он устанавливается параллельно цепи. Второй способ подразумевает подсоединение прибора непосредственно к источнику электроэнергии. Особенность цифровых вольтметров заключается в удобстве использования. Дополнительно они имеют довольно большой показатель внутреннего сопротивления. Это крайне важно, поскольку данный параметр влияет на точность устройства.

Какие типы бывают?

Все вольтметры можно разделить по виду измеряемой величины. Основными типами считаются устройства постоянного, а также переменного тока. Первый вид, в свою очередь, делится на выпрямительные, а также квадратичные приборы. Дополнительно существуют импульсные вольтметры. Отличительной их особенностью является измерение радиоимпульсных сигналов. При этом замеры напряжения они могут проводить как постоянного, так и переменного тока.

Схема цифрового вольтметра

Обычная схема цифрового вольтметра основана на дискретных величинах. Важную роль в ней играет входное устройство. При этом управляющий прибор взаимодействует с цифровым отсчетным блоком через десятичные числа. Особенность входного устройства заключается в высоком делителе напряжения. Если работа сводится к определению переменного тока, то оно работает как обычный преобразователь. При этом на выходе получается постоянный ток.

В это время центральный блок занимается аналоговым сигналом. В данной системе он представлен в виде цифрового кода. Процесс преобразования свойственен не только вольтметрам, но и мультиметрам. В некоторых моделях устройств применяется двоичный код. В таком случае процесс получения сигнала значительно упрощается, и преобразование происходит значительно быстрее. Старые модели вольтметров работали исключительно с десятичными числами. При этом проводилась регистрация измерительной величины. Дополнительно схема цифрового вольтметра имеет в себе центральный блок, который отвечает за все важные узлы прибора.

Цифровые преобразователи вольтметров

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

Отличительной их особенностью от прочих устройств является возможность заниматься поразрядным уравновешиванием. В это время частотно-импульсные модели такой привилегии лишены. Однако с их помощью можно проводить пространственное кодирование, а это в некоторых исследованиях может быть крайне важным. Особенно это касается замеров напряжения в закрытых цепях электричества.

Самодельные вольтметры

Вольтметр (цифровой) своими руками сделать можно. В первую очередь подбирают детектор, который предназначен для определения средневыпрямленного значения. При этом устанавливается он, как правило, рядом с преобразователем переменного тока. Минимум-напряжение детектором определяется от 100 МВ, однако некоторые модели способны распознавать силу тока до 1000 МВ. Дополнительно, для того чтобы сделать вольтметр (цифровой) своими руками, потребуется транзистор, который влияет на чувствительность устройства, а именно его порог. Связан он с уровнем квантовой амплитуды напряжения. Еще на чувствительность влияет дискретность прибора. Если напряжение составляет менее 100 МВ, то уровень сопротивления непременно растет и может составить, в конечном счете, 10 Ом.

Сопротивление электрической схемы

Сопротивление, которое образуется в системе, зависит от количества знаков в цепи. В данном случае следует понимать, что шкалы вольтметров могут сильно отличаться. Отношение измеряемой величины прямо пропорционально напряжению. Дополнительно нужно учитывать помехозащищенность, которая также влияет на сопротивление устройства. Тут следует отметить, что именно цифровой встраиваемый вольтметр отличается большими амплитудами.

В данном случае это оказывает большое влияние на возникновения помех в цепи. Наиболее частой причиной резкого скачка считают неправильную работу блока питания. При этом средняя частота устройства может нарушаться. Таким образом, на входе в цепи имелось, к примеру, 50 Гц, а на выходе получилось 10 Гц. Как результат, в соединительном проводе образуется сопротивление. Постепенно это приводит к утечке, а происходит это в месте, где находятся клеммы. В данном случае проблема может быть решена путем заземления этого участка. В итоге помехи переходят на входную цепь и частота в приборе стабилизируется.

Погрешности измерений

Погрешность измерений вольтметра напрямую связана с При этом следует учитывать напряжение наводки на выходе. Чаще всего помехи общего вида изменяют параметры сопротивления. В результате данный показатель может значительно уменьшиться. На сегодняшний день имеется три проверенных способа борьбы с разного рода помехами в вольтметрах. Первый прием заключается в применении проводов экранированного типа. При этом вход электрической цепи очень важно изолировать от оборудования.

Второй способ заключается в наличие интегрирующего элемента. В результате период помехи можно значительно уменьшить. Наконец, последним приемом принято считать установку специальных фильтров на вольтметры. Основной их задачей является повышение сопротивления в электрической цепи. В результате амплитуда помехи на выходе после блока значительно уменьшается. Также следует отметить, что многие системы преобразователей способны значительно увеличить скорость измерений. Однако при повышении производительности снижается точность регистрации данных. В итоге такие преобразователи могут быть причиной больших помех в электрической цепи.

Кодоимпульсные вольтметры

Кодоимплульсный цифровой вольтметр переменного тока работает по принципу поразрядного уравновешивания. При этом к данным устройствам применим метод компенсационного измерения напряжения. Процесс расчета в свою очередь осуществляется при помощи прецизионного делителя. Дополнительно рассчитывается опорное напряжение в электрической цепи.

В целом, компенсированный ток имеет несколько уровней. Согласно квантовой теории, исчисления производят в двоично-десятичной системе. Если использовать двухразрядный цифровой вольтметр для автомобиля, то напряжение распознается до 100 В. Весь процесс при этом осуществляется по командам. Особого внимания в работе заслуживает сравнение напряжений. Основано оно на принципе управляющих импульсов, а происходят они в системе через определенные интервалы времени. При этом есть возможность проводить переключение сопротивления одного делителя.

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

Упрощенная схема кодоимпульсного вольтметра-амперметра

Цифровой вольтметр-амперметр постоянного тока схематически можно представить в виде взаимодействующих элементов электрической цепи. Наиболее важным является входное устройство, которое играет роль источника опорного напряжения. Таким образом, прецизионный делитель связан с прибором сравнения.

В свою очередь, механизмы цифрового отсчета показывают сопротивление электрической цепи. Далее управляющие устройства способны напрямую взаимодействовать с входным прибором и проводить сравнения показателей напряжения сети. Наиболее просто процесс измерения можно представить в виде весов. При этом в системе часто бывают сбои. Связаны они по большей мере из-за неправильного сравнения.

Точность измерений

Точность измерений вольтметра-амперметра напрямую связана со стабильностью опорного напряжения. Дополнительно должен быть учтен порог прецизионного делителя во входном устройстве. Защита от помех в цепочке также берется во внимание. Для этого в самом начале электрической цепи имеется фильтр. В результате качество проведений лабораторных работ можно значительно улучшить.

Вольтметры с времяимпульсными типами преобразователей

Данные типы вольтметров используют специальные преобразователи, которые измеряют напряжение только в определенных интервалах времени. При этом учитываются импульсные колебания в электрической цепи. Дополнительно просчитывается средняя частота напряжения в системе. Для ее стабилизации, как правило, применяется дискретный сигнал, который посылается с выхода преобразователя.

При этом счетные импульсы способны значительно сократиться. На погрешность измерения вольтметров влияет множество факторов. В первую очередь это касается дискретизации сигнала. Также проблема может заключаться в нестабильности частоты. Связана она с порогом чувствительности электрической цепи. В результате сравнение напряжения устройством осуществляется нелинейно.

Простая схема вольтметра-амперметра с преобразователем

Цифровой вольтметр-амперметр с частотным преобразователем включает в обязательном порядке генератор, который следит за изменениями напряжения в электрической цепи. При этом измерение осуществляется поэтапно с интервалами. Генератор в электрической цепи используется линейного типа. Для сравнения полученных данных в устройстве имеется триггер. В свою очередь, для расчета частоты важно использовать счетчик, который принимает дискретный сигнал. Происходит это на выходе преобразователя вольтметра-амперметра. При этом учитывается величина предельного напряжения.

Непосредственно информация поступает на вход вольтметра-амперметра. На этом этапе осуществляется процесс сравнения, а когда возникает импульс, то система фиксирует нулевой уровень. Непосредственно сигнал в вольтметре-амперметре попадает на триггер, и в результате на выходе получается положительное напряжение. Возвращается импульс в исходное положение только после проведения устройством сравнения. При этом учитываются любые изменения предельной частоты, которые сформировались в данном промежутке времени. Также принимается во внимание коэффициент преобразования. Рассчитывается он исходя из показателя силы сигнала.

Дополнительно в формуле имеется счетный импульс, который появляется на выходе генератора. В результате напряжение может отображаться только при наличии определенных колебаний, которые возникают в электрической цепи. В конечном счете, сигнал должен дойти до выхода триггера и там считаться. При этом количество импульсов фиксируется в вольтметре-амперметре. Как результат, срабатывает индикатор, который оповещает о наличии напряжения.

Вольтметры двойного интегрирования

Цифровой вольтметр постоянного тока двойного интегрирования работает по принципу периодического повторения. При этом возврат исходного кода в цепи осуществляется автоматически. Работает данная система исключительно с постоянным током. При этом частота предварительно выпрямляется и подается на выходное устройство.

Погрешности дискретизации в вольтметрах не учитываются. Таким образом, могут возникнуть моменты несовпадений счетных импульсов. В результате на начало и конец интервала один параметр может сильно отличаться. Однако, как правило, погрешность не является критичной из-за работы преобразователя.

Особая проблема состоит именно в шумовой помехе. В результате она способна значительно искривить показатель напряжения. В конечном счете, это находит свое отображение в величине импульса, а именно его длительности. Таким образом, среди цифровых вольтметров данные типы не пользуются большой популярностью.

Многие начинающие радиолюбители, собирая себе, сначала, простой , без наворотов, в дальнейшем, думаю, захотят расширения его функциональности. Здесь есть два варианта, можно собрать новый блок питания, идущий сразу с защитой, с регулировкой тока, и возможно какими-либо другими, расширенными возможностями. Либо пойти тем путем, каким пошел я, произведя апгрейд или говоря по другому, усовершенствование существующего, проверенного временем блока питания.

В свое время собрал, для своего простого регулируемого блока питания, плату регулировки тока и плату защиты от КЗ, дополнив, таким образом, его схему. Но при пользовании этим блоком питания, напряжение на выходе, по прежнему, приходилось выставлять ориентируясь по показаниям мультиметра, включенным как вольтметр. Также и ток, при включенной регулировке выходного тока, приходилось выставлять по показаниям миллиамперметра тестера. Это показалось мне неудобным, хотелось, чтобы была цифровая индикация тока и напряжения, и тогда начал уже было подыскивать схему ампер-вольтметра на микроконтроллере AVR Меге 8 и подобную. Как при просмотре одного из видео на Ю-тубе, увидел в блоке питания такой встраиваемый в различные электронные приборы ампер - вольтметр, как на фото ниже:

Под видео была приведена ссылка на китайский интернет магазин Али - экспресс. У меня уже имелся опыт заказа с Али, для тех, кто еще не пользовался их услугами, скажу, что если в лоте указана бесплатная доставка, то доставка действительно бесплатная, без подвоха. Товар приходит в Россию в течении 45 дней.

Причем в случае недоставки или подобных неприятностей, покупатель получает всю уплаченную сумму целиком, возвращают оперативно, был опыт. Стоимость такого ампер-вольт метра всего 3,6 доллара, что составляет даже с учетом роста долларов, небольшую сумму. Поэтому колебался я недолго, и подыскав наиболее выгодное предложение, заказал. Проводки с разъемами для подключения, идут в комплекте с прибором.

Подключается к измеряемому устройству ампер-вольт метр с помощью трех-пинового разъема. С помощью второго двух пинового разъема на ампер - вольтметр подается питание, которое может быть в диапазоне от 4.5 до 30 вольт. Более подробно со всеми характеристиками можно ознакомиться, посмотрев рисунок, находящийся выше. Поначалу вызвало затруднение подключение разъема 3 Pin, на странице заказа была лишь путаная схема. Впоследствии, на странице другого продавца, аналогичного товара, нашел следующий рисунок - схему подключения:

На практике все выглядит проще, плюс питания у нас идет на красный провод и на нагрузку. Минус питания идет на черный провод, а оставшийся синий провод (на рисунке желтый) идет на минус нагрузки. Таким образом, у нас амперметр включается в разрыв цепи минуса. Если нам амперметр не нужен при пользовании, мы подключаем только черный и красный провода, синий (желтый) провод просто никуда не подключаем, возможно, это не совсем правильно, но все работает. Мой ампер-вольт метр работал немного неточно, как по току, так и по напряжению, и был мной откалиброван сверяясь с показаниями двух мультиметров, на случай если на одном из них подсела батарея, и он начал врать.

В устройстве предусмотрена калибровка по току и напряжению, путем вращения двух головок под крестовую отвертку. Крепится ампер - вольтметр с помощью четырех пластмассовых распорок находящихся попарно сверху и снизу. Аналогично крепятся малогабаритные клавишные выключатели. Единственный недостаток, выявленный при пользовании ампер-вольт метром это то, что он, несмотря на заявленное разрешение 0.01 А. показывает ток не от нуля, а примерно от 30 - 50 миллиампер, поэтому выставлять по нему небольшие токи может быть проблематично.

В целом прибором остался доволен, если бы стал собирать ампер-вольт метр сам, на МК, наверняка и размеры были бы больше, и по стоимости выше. Разумеется, сфера применения этого прибора не ограничивается одними регулируемыми блоками питания, его можно встроить в любое устройство, где важен контроль тока и напряжения. А/В-метр идет со встроенным шунтом и позволяет измерять токи до 10 Ампер, при напряжении до 100 Вольт. Если необходимо самому собрать подобное устройство - принципиальная схема и прошивка есть в .

Придумать все самому не получается – пока знаний программирования микропроцессоров не достаточно (только учусь), а отставать не хочется. Серфинг Интернета дал несколько разных вариантов как по сложности схемотехники и выполняемых функций, так и самих процессоров. Анализ ситуации на местных радиорынках и трезвый подход (покупать то что по карману; делать то, что реально сможешь, а процесс изготовления да время настройки не затянется на неограниченное время) остановил мой выбор на схеме вольтметра описанного на www.CoolCircuit.com.

Итак, нижеприведенная принципиальная схема уже исправлена . Прошивка осталась родная (main.HEX - приобщаю).

Те, кто процессоры «держит в руках часто» дальше могут не читать, а остальным, особенно кто в первый раз, расскажу, как все сделать хоть и не оптимально (да простят мне профессионалы стиль изложения), но в итоге правильно.
Итак, для справки: семейство процессоров РІC на 14 ножек имеют разную распиновку поэтому нужно проверить подходит ли имеющийся у Вас программатор с панельками под этот чип. Обратите внимание именно на 8-пиновую панельку, как правило, именно она и подходит, а крайние справа выводы просто висят. Я пользовался обычным программатором «PonyProg» .

Следует учесть при пограммировании РІС важно не затереть калибровочную константу внутреннего генератора чипа ибо внешний кварц здесь не используется. Она записана в последней ячейке (адресе) памяти процессора. Если использовать IcProg, выбрав тип МК, то в окне – «Адрес программного кода» в последней строке обозначенной адресом - 03F8 крайние справа четыре символа и есть указанная индивидуальная константа. (Если микросхема новая и ни разу не программированная то после кучи символов 3FFF – последним будет что то типа 3454 – это самое то).

Чтобы расчет показаний вольтметра соответствовал истине, все сделать правильно и понять процесс происходящего предлагаю хоть не оптимальный но надеюсь понятный алгоритм:

Перед программированием МК, необходимо в IcProg сначала дать команду «Читать все» и посмотреть на вышеуказанную ячейку памяти – там будет значится индивидуальная константа этого чипа. Ее надо переписать на бумажку (в памяти не держать!- забудешь).
- загрузить программный файл прошивки МК – с расширением *.hex (в даном случае -"main.hex") и проверить какая константа записана в той же ячейке в данном программном продукте. Если она отличается – поставить курсор и ввести туда данные, ранее записанные на бумажке.
- нажимаем команду программировать - после появившегося вопроса типа: «использовать ли данные осцилятора из файла» – соглашаетесь. Ибо Вы уже проверили, что там то что надо.

Еще раз прошу прощения у тех, кто программирует много и так не делает, но я пытаюсь донести до начинающих информацию о достаточно важном программном элементе данного микропроцессора и не потерять его из-за разных иногда совсем непонятных, а то и необъяснимых потом ситуаций. Особенно если дрожащими от волнения руками воткнул чип в только что сооруженный и впервые соединенный с компом программатор и, волнуясь, нажимаешь кнопку программировать, а оное чудо техники начинает еще и непонятные вопросы задавать – вот тут то все неприятности и начинаются.

Итак, если все этапы пройдены верно, – микросхема МК готова к использованию. Дальше дело техники.
От себя хочу добавить, что транзисторы здесь не критичные – подходят любые р-n-р структуры, в т.ч. советские, в пластмассовом корпусе. Я использовал выпаянные из импортной бытовой техники после проверки на соответствие структуры проводимости. В этом случае присущ еще один нюанс – расположение вывода базы транзистора может быть по середине корпуса или с краю. Для работы схемы это безразлично, нужно только соответственно формировать выводы при пайке. Постоянные резисторы для делителя напряжения – именно указанного номинала. Если найти импортный подстроечный резистор на 50 кОм не удастся, то советского производства желательно взять чуточку больше - 68 кОм, а 47 кОм брать не рекомендую ибо в случае одновременного совпадения пониженных номиналов - потеряется расчетное соотношение сопротивлений делителя напряжения, которое может быть трудно исправить подстоечником.

Как я уже писал у моего блока питания два плеча – поэтому сделал сразу два вольтметра на одной плате, а индикаторы вывел на отдельную плату для экономии места на лицевой панели. Развел под обычные элементы. Файлы с разводкой плат, исходник и hex прилагаются в архиве. У Вас - SMD, то переделать ее не трудно, если надо обращайтесь.

Для тех, кто захочет повторить этот вольтметр и имеет, как у меня, двухполярный блок питания с общей средней точкой - напоминаю о необходимости питания обоих вольтметров от двух отдельных (гальванически разделенных) источников. Скажем - отдельных обмоток сылового трансформатора или, как вариант – импульсный преобразователь, но обязательно с двумя обмотками по 7 Вольт (нестабилизированных). Для тех, кто будет делать «импульсник»: ток потребления вольтметра от 70 до 100 мА в зависимости от размера и цвета индикатора. Иначе никак ибо на порт МК нельзя подавать отрицательное напряжение.
Если кому понадобится и схема преобразователя, спрашивайте на форуме, я сейчас над этим вопросом работаю.

Архив с нужными даными и печатками в SLayout-5rus:

В сегодняшнем занятии мы рассмотрим вариант изготовления самодельного цифрового вольтметра для измерения напряжения на одиночном элементе питания. Пределы измерения напряжения 1-4.5 Вольт. Внешнее дополнительное питание, кроме измеряемого, не требуется.

25 лет назад у меня был кассетный плеер. Питал я его Ni-Cd аккумуляторами НКГЦ-0.45 ёмкостью 450мА/ч. Чтобы в дороге определять какие аккумуляторы уже сели, а какие ещё поработают было сделано простое устройство.


Батарейно-аккумуляторный диагностическо-измерительный комплекс.


Он собран по схеме преобразователя напряжения на двух транзисторах. На выход включен светодиод. Параллельно входу, подключаемому к аккумулятору включен резистор, намотанный из нихрома. Таким образом, если аккумулятор способен отдавать около 200мА, то светодиод загорается.

Из недостатков - размеры контактов жестко выгнуты на длину АА элемента, все прочие типоразмеры подключать не удобно. Ну и напряжение не видно. Поэтому в век цифровых технологий захотелось сделать более высокотехнологичное устройство. И конечно на микроконтроллере, куда без него:)

Итак, схема проектируемого устройства.

Используемые детали:
1. OLED дисплей с диагональю 0.91 дюйм и разрешением 128x32 (около $3)
2. Микроконтроллер ATtiny85 в корпусе SOIC (около $1)
3. Boost DC/DC Converter LT1308 от компании Linear Technology. ($2.74 за 5 штук)
4. Конденсаторы керамические, выпаяны из неисправной видеокарты.
5. Индуктивность COILTRONICS CTX5-1 или COILCRAFT DO3316-472.
6. Диод Шоттки, я использовал MBR0520 (0.5A, 20V)

Преобразователь напряжения LT1308

Характеристики из описания LT1308:

Обещают 300мА 3.3В с одного элемента NiCd, нам подходит. Выходное напряжение устанавливается делителем, резисторы 330кОм и 120кОм, при указанных номиналах выходное напряжение преобразователя получается около 4.5В. Выходное напряжение выбиралось достаточным для питания контроллера и дисплея, чуть выше максимального измеряемого напряжения на литиевом аккумуляторе.

Для раскрытия всего потенциала преобразователя напряжения нужна индуктивность, которой у меня нет (см. пункт 5 выше), поэтому собираемый мной преобразователь имеет заведомо худшие параметры. Но и нагрузка у меня совсем небольшая. При подключении реальной нагрузки из микроконтроллера и OLED дисплея получается такая нагрузочная таблица.

Прекрасно, идём дальше.

Особенности измерения напряжения микроконтроллером

Микроконтроллер ATtiny85 имеет АЦП разрядностью 10 бит. Поэтому считываемый уровень лежит в диапазоне 0-1023 (2^10). Для перевода в напряжение используется код:
float Vcc = 5.0; int value = analogRead(4); / читаем показания с А2 float volt = (value / 1023.0) * Vcc;
Т.е. предполагается, что напряжение питания строго 5В. Если напряжение питания микроконтроллера изменится, то измеренное напряжение тоже изменится. Поэтому нам нужно узнать точное значение напряжения питания!
Многие чипы AVR включая серию ATmega и ATtiny обеспечивают средства для измерения внутреннего опорного напряжения. Путем измерения внутреннего опорного напряжения, мы можем определить значение Vcc. Вот как:
  • Установить источник опорного напряжения analogReference(INTERNAL).
  • Снять показания АЦП для внутреннего источника 1.1 В.
  • Расчитать значение Vcc основываясь на измерении 1.1 В по формуле:
Vcc * (Показания АЦП) / 1023 = 1.1 В
Из чего следует:
Vcc = 1.1 В * 1023 / (Показания АЦП)
На просторах интернета была найдена функция для измерения напряжения питания контроллера:

Функция readVcc()

long readVcc() { // Read 1.1V reference against AVcc // set the reference to Vcc and the measurement to the internal 1.1V reference #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) ADMUX = _BV(MUX5) | _BV(MUX0); #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif delay(75); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Start conversion while (bit_is_set(ADCSRA,ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both long result = (high<<8) | low; result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000 return result; // Vcc in millivolts }


Для вывода на экран используется библиотека Tiny4kOLED с включенным шрифтом 16х32. Из шрифта, для уменьшения размера библиотеки, удалены 2 не используемых символа (, и -) и нарисована отсутствующая буква «В». Код библиотеки соответственно изменен.
Так-же для стабилизации выводимых измерений использована функция с , спасибо автору dimax , работает хорошо.

Код я отлаживал на платке Digispark в среде arduino IDE. После чего ATtiny85 была выпаяна и припаяна на макетку. Собираем макетную плату, подстроечным резистором выставляем напряжение на выходе преобразователя (сначала я выставлял на выходе 5В, при этом ток на входе преобразователя был под 170мА, уменьшил напряжение до 4.5В, ток снизился до 100мА). Когда ATtiny85 припаяна на макетку код приходится заливать с помощью программатора, у меня обычный USBash ISP.


Код программы

// НАСТРОЙКА /* * Ставим #define NASTROYKA 1 * Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741 * Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ) * Считаем (4979/5741)*1.1=0.953997 * Считаем 0.953997*1023*1000 = 975939 * Записываем результат в строку 100 в виде result = 975939L * Ставим #define NASTROYKA 0 * Компилируем, заливаем код, запускаем, готово. */ #define NASTROYKA 0 #include #include long Vcc; float Vbat; // тонкая настройка алгоритма сглаживания shumodav() #define ts 5 // *table size* количество строк массива для хранения данных, для девиации ± 2 отсчёта оптимально 4 строки и одна в запас. #define ns 25 // *number samples*, от 10..до 50 максимальное количество выборок для анализа 1й части алгоритма #define ain A2 // какой аналоговый вход читать (А2 это P4) #define mw 50 // *max wait* от 15..до 200 ms ожидать повтора отсчёта для 2 части алгоритма unsigned int myArray, aread, firstsample, oldfirstsample, numbersamples, rezult; unsigned long prevmillis = 0; boolean waitbegin = false; //флаг включённого счётчика ожидания повтора отсчёта void setup() { oled.begin(); oled.clear(); oled.on(); oled.setFont(FONT16X32_sega); } void loop() { for (byte i = 0; i < 5; i++) { Vcc += readVcc(); } Vcc /= 5; shumodav(); Vbat = ((rezult / 1023.0) * Vcc) / 1000; if (Vbat >= 0.95) { oled.setCursor(16, 0);#if NASTROYKA oled.print(rezult); #else oled.print(Vbat, 2); oled.print("/"); #endif } Vcc = 0; } long readVcc() { // чтение реального напряжения питания // Read 1.1V reference against AVcc // set the reference to Vcc and the measurement to the internal 1.1V reference #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) ADMUX = _BV(MUX5) | _BV(MUX0); #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) ADMUX = _BV(MUX3) | _BV(MUX2); #else ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); #endif delay(75); // Wait for Vref to settle ADCSRA |= _BV(ADSC); // Start conversion while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both long result = (high << 8) | low; // result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000 // индикатор показывал 4990, вольтметр 4576мВ (4576/4990)*1.1=1.008737 result = 1031938L / result; // Calculate Vcc (in mV); 1031938 = 1.008737*1023*1000 return result; // Vcc in millivolts } void shumodav() { // главная функция //заполнить таблицу нолями в начале цикла for (int s = 0; s < ts; s++) { for (int e = 0; e < 2; e++) { myArray[s][e] = 0; } } // основной цикл накопления данных for (numbersamples = 0; numbersamples < ns; numbersamples++) { #if NASTROYKA aread = readVcc(); #else aread = analogRead(ain); #endif // уходим работать с таблицей//// tablework(); } // заполнен массив, вычисляем максимально повторяющееся значение int max1 = 0; // временная переменная для хранения максимумов for (byte n = 0; n < ts ; n++) { if (myArray[n] > max1) { //перебор 2-х элементов строк max1 = myArray[n]; // запомним куда больше всего попало firstsample = myArray[n]; // его 1 элемент = промежуточный результат. } } //*****вторая фаза алгоритма *********///// // если старый отсчёт не равен новому, //и флага включения счёта времени небыло, то if (oldfirstsample != firstsample && waitbegin == false) { prevmillis = millis(); // скидываем счётчик времени на начало waitbegin = true; } // активируем флаг ожидания // если до истечения лимита времени отсчёт сравнялся //со старым, то снимаем флаг if (waitbegin == true && oldfirstsample == firstsample) { waitbegin = false; rezult = firstsample; } // если всё таки отсчёт не сравнялся, а время ожидания вышло if (waitbegin == true && millis() - prevmillis >= mw) { oldfirstsample = firstsample; waitbegin = false; rezult = firstsample; } //то признаём новый отсчёт конечным результатом функции. } // конец главной функции void tablework() { // функция внесения данных в таблицу // если в таблице совпадает отсчёт, то инкрименировать //его счётчик во втором элементе for (byte n = 0; n < ts; n++) { if (myArray[n] == aread) { myArray[n] ++; return; } } // перебираем ячейки что б записать значение aread в таблицу for (byte n = 0; n < ts; n++) { if (myArray[n] == 0) { //если есть пустая строка myArray[n] = aread; return; } } // если вдруг вся таблица заполнена раньше чем кончился цикл, numbersamples = ns; } // то счётчик циклов на максимум


Как упоминалось выше, в контроллерах есть внутренний источник опорного напряжения 1.1В. Он стабильный, но не точный. Поэтому его реальное напряжение скорее всего отличается от 1.1В. Чтобы узнать, сколько на самом деле, необходимо провести калибровку:

* Ставим #define NASTROYKA 1
* Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741
* Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ)
* Считаем (4979/5741)*1.1=0.953997 - это реальное напряжение источника опорного напряжения
* Считаем 0.953997*1023*1000 = 975939
* Записываем результат в строку 100 в виде result = 975939L;
* Ставим #define NASTROYKA 0
* Компилируем, заливаем код, запускаем, готово.

В программе DipTrace разводим плату, размером с OLED дисплей 37х12мм


Полчаса нелюбимого занятия ЛУТом.


Найдите 10 отличий

Первый раз я облажался и протравил зеркальную плату, причем заметил это только когда начал паять элементы.



Припаиваем. SMD индуктивность 4,7мкГн была мне любезно предоставлена , большое спасибо, Сергей.


Собираем бутерброд из платы и экрана. На концах проводов я припаял небольшие магниты, вольтметр сам прищелкивается к измеряемому аккумулятору. Неодимовые магниты при нагреве выше 80 градусов теряют магнитные свойства, поэтому паять нужно легкоплавким сплавом Вуда или Розе очень быстро. Еще раз проводим калибровку и проверяем точность измерения:






Обзор понравился +126 +189

На рисунке 1 представлена схема цифрового амперметра и вольтметра, которая может быть использована, как дополнение к схемам блоков питания, преобразователей, зарядных устройств и т.д. Цифровая часть схемы выполнена на микроконтроллере PIC16F873A. Программа обеспечивает измерение напряжения 0... 50 В, измеряемый ток — 0... 5 А.

Для отображения информации используются светодиодные индикаторы с общим катодом. Один из операционных усилителей микросхемы LM358 используется в качестве повторителя напряжения и служит для защиты контроллера при внештатных ситуациях. Все-таки цена контроллера не так уж и мала. Измерение тока производится косвенным образом, при помощи преобразователя ток-напряжение, выполненного операционном усилителе DA1.2 микросхемы LM358 и транзисторе VT1 – КТ515В. Почитать о таком преобразователе еще можно и . Датчиком тока в этой схеме служит резистор R3. Преимуществом такой схемы измерения тока состоит в том, что здесь отпадает необходимость точной подгонки миллиомного резистора. Скорректировать показания амперметра можно просто триммером R1 и в довольно широких пределах. Сигнал тока нагрузки для дальнейшей оцифровки снимается с нагрузочного резистора преобразователя R2. Напряжение на конденсаторе фильтра стоящем после выпрямителя вашего блока (вход стабилизатора, точка 3 на схеме)питания не должно быть более 32 вольт, это обусловлено максимальным напряжением питания ОУ. Максимальное входное напряжение микросхемного стабилизатора КР142ЕН12А – тридцать семь вольт.

Регулировка вольтамперметра заключается в следующем. После всех процедур — сборки, программирования, проверки на соответствие на собранное вами произведение подают напряжение питания. Резистором R8 выставляют на выходе стабилизатора КР142ЕН12А напряжение 5,12 В. После этого вставляют в панельку запрограммированный микроконтроллер. Измеряют напряжение в точке 2 мультиметром, которому вы доверяете, и резистором R7 добиваются одинаковых показаний. После этого к выходу (точка 2) подключают нагрузку с контрольным амперметром. Равенства показаний обоих приборов в данном случае добиваются при помощи резистора R1.

Резистор-датчик тока можно изготовить самому, используя для этого, например, стальную проволоку. Для расчета параметров этого резистора можно использовать программу « » Программу скачали? Открыли? Значит так, нам нужен резистор номиналом в 0,05 Ом. Для его изготовления выберем стальную проволоку диаметром 0,7мм – у меня она такая, да еще и не ржавеющая. С помощью программы вычисляем необходимую длину отрезка, имеющего такое сопротивление. Смотрим скрин окна данной программы.

И так нам нужен отрезок стальной нержавеющей проволоки диаметром 0,7мм и длиной всего 11 сантиметров. Не надо этот отрезок свивать в спираль и концентрировать все тепло в одной точке. Вроде все. Что не понятно, прошу на форум. Успехов. К.В.Ю. Чуть не забыл про файлы.

Loading...Loading...