Измерение переменного тока avr схема. Замер сетевого напряжения. Подключение датчика тока к микроконтроллеру

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

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

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

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

Теперь подумаем, как эта теория поможет нам решить нашу задачу. В МК мы имеем дело с АЦП, которое (в некотором приближении) способно давать нам отдельные отсчеты напряжения, т.е. оно умеет определять мгновенные значения напряжения. Легко понять, что для определения действующего значения нам необходимо проинтегрировать (т.е. просуммировать ) квадраты результатов АЦП, взятых через равные промежутки в течение одного периода измеряемого напряжения. Почему я не говорю о необходимости делить сумму квадратов пополам, хотя теория вроде бы этого требует? Да потому, что АЦП дает нам результат в абстрактных числах, оторванных от реальности. Чтобы из этой абстракции получить реальное значение, нам все равно надо умножить их на какой-то размерный коэффициент, в котором может быть учтено то самое деление на 2. Поясню: если «один шаг» АЦП соответствует 0,02В напряжения, то для перевода в реальные вольты нам надо умножить результат АЦП на 0,02. Если же в процессе вычислений нам потом потребуется разделить эти значения на 2, так не проще ли умножать сразу на коэффициент 0,01В?!

Наметим алгоритм нашей программы. В общих чертах он будет таким:

  1. Получить через равные промежутки N отсчетов АЦП в течение одного периода измеряемого напряжения.
  2. Возвести результаты в квадрат и просуммировать.
  3. Извлечь квадратный корень из полученной суммы.
  4. Умножить полученный результат на масштабирующий коэффициент и вывести результат на индикатор.

Чтобы наш вольтметр показывал значение непрерывно, этот алгоритм надо выполнять циклически.

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

Прежде всего, есть ограничение на скорость работы АЦП. Atmel рекомендует использовать АЦП при работе от тактовой частоты не более 200 кГц , иначе будет увеличиваться погрешность результатов. Один цикл измерений АЦП длится (в установившемся режиме) 13 тактов, т.е. при любых ухищрениях мы не сможем использовать АЦП чаще, чем 15384 раза в секунду, если хотим получать все 10 бит результата верно. Прикинем, что же мы получаем в результате. Длительность периода сетевого напряжение 20 мс. При вышеобозначенной частоте семплов за один период мы просто не успеем получить более 307 отсчетов. Конечно, если немного пожертвовать точностью, можно увеличить скорость АЦП и соответственно, число отсчетов за период.

Другое важное ограничение - это быстродействие математических операций. Возведение в квадрат - процедура очень затратная по числу тактов работы микроконтроллера, и если выполнять интегрирование «на лету», т.е. по мере поступления результатов из АЦП, частота семплирования в 15К будет недостижима даже в теории. Выход один - быстро накапливать нужное количество данных в массиве, а потом неторопясь их обрабатывать. И тут мы наталкиваемся на третье ограничние - объем ОЗУ. Теоретически максимальное количество отсчетов из 307-и 10-битовых чисел потребует для хранения 614 байт ОЗУ, что уже больше всей имеющейся памяти во многих МК, а для, например, Atmega8 составляет больше половины. А ведь для работы нам еще нужно место под стек, под другие промежуточные переменные... Так что число отсчетов N=307 можно считать абсолютно максимальным для всех МК с объемом ОЗУ 1К и менее.

Для заполнения массива отсчетов используем прерывание по завершению цикла АЦП. То есть определим переменную-индекс, указывающую на очередной элемент нашего массива, а в обработчике этого прерывания будем сохранять по этому индексу результат АЦП в массиве и увеличивать индекс. Так как по нашим расчетам с момента первого семпла и до последнего (307-го) должно пройти 20 миллисекунд, можно считать, что задача получения мгновенных значений напряжения за период нами решена. Однако, надо же контролировать выход индекса за пределы допустимого значения, т.е. делать проверку - не больше ли 307-и семплов мы сделали? Естественно, нужно быть уверенным, что время всех дополнительных расчетов не увеличит периодичность поступления семплов, иначе не миновать больших ошибок.

Предположим, мы наконец-то получили наш массив отсчетов, и теперь необходимо провести его обработку. Вы себе представляете возведение в квадрат на ассемблере? А извлечение квадратного корня? Конечно, все решаемо, но гораздо проще применить встроенные функции языка Си square и sqrt . Отсюда 2 неизбежных вывода: программу мы делаем на Си и все предыдущие рассуждения требуют корректировки ... Этот ошарашивающий вывод следует понимать так: Си - язык высокого уровня, и потому существенно более медленный, чем ассемблер. Значит, процедуры обработки прерываний могут потребовать больше времени, чем мы рассчитывали, т.е. нарушить стройные расчеты количества и частоты семплов. Значит, надо обязательно проконтролировать время исполнения критических участков нашей программы (например, в той же AVR Studio ), и, если окажется, что период семплирования существенно больше расчетного, провести корректировку всех расчетов - от количества семплов до частоты АЦП. Но забудем на время об этом.

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

Надеюсь, принцип понятен. Теперь несколько слов о не затронутых проблемах. Прежде всего, все наши размышления относились к измерению сетевого напряжения, т.е. напряжения с частотой 50 Гц . При других частотах, наша программа будет давать результат с погрешностью. Величина этой погрешности будет минимальна, если в 20 мс будет укладываться целое число периодов напряжения (для симметричных форм сигнала - полупериодов ). Если число целых периодов (полупериодов) будет не целое, погрешность будет максимальна, причем характер показаний вольтметра будет иметь вид «биений». Так как напрасно ожидать высокой точности от численного интегрирования при числе семплов за период менее нескольких десятков, то верхнее значение частоты для измеряемого напряжения в реальности будет не больше 200 Гц. Короче говоря, мы все-таки сделаем прибор только на 50 Гц. Хотя на 25 он будет работать совсем не плохо. Разумеется, прибор покажет верное значение для любой формы переменного напряжения 50 Гц, а так же для постоянного тока.

Принципиальная схема проекта Proteus

В подтверждение всех изложенных выкладок (и для их проверки) привожу конкретный пример реализации вольтметра. Я не собирал реальную схему, ограничился проектом в протеусе . Однако полученные при моделировании результаты полностью подтвердили изложенное и позволяют утверждать, что реальная схема с минимальными доработками (источник питания и защитные цепи) будет работать. Предлагаемая прошивка для МК полностью работоспособна - дорабатывайте схему, делайте печатную плату и пользуйтесь. Однако, я делал ее по-своему, т.е. чуть-чуть иначе , чем только что рассказал. Самое главное, что в моей программе не так - это число семплов в массиве: у меня их 256 . Из-за этого мне пришлось отказаться от «естественной» частоты семплов и привязать их к таймеру, это в свою очередь потребовало поднять рабочую частоту АЦП до 250 кГц (при тактовой частоте МК в 8 мГц). Кстати, получить 250 кГц для АЦП от встроенного RC-генератора меги гораздо проще, чем 200, так что не исключаю, что при написании собственной программы вы тоже будете вынуждены пойти по моему пути...

Проект для Proteus 7.1 Pro SP2 и файл прошивки можно скачать в . В проекте штрих-пунктиром обведена часть, которая собственно вольтметр. А левее - это источник тестового сигнала. Входной мост и делитель напряжения должны быть с запасом рассчитаны на входное напряжение, лучше выбирать 1000-вольтовые диоды, они-то уж точно выдержат. Делитель лучше сделать именно как показано на схеме - из трех резисторов, т.к. один резистор соответствующего номинала может не выдержать высоких напряжений. Еще лучше взять больше резисторов, кстати, проще будет и коэффициент деления подобрать. На схеме не показаны многие нюансы, например, защитный стабили-трон на входе АЦП, но это именно нюансы. Моя прошивка обеспечивает измерение напряжений до 710В, при этом погрешность не более 2В для синусоидальной формы напряжения. Для других форм напряжения погрешность может увеличиться, но не сильно. Думаю, в 5% точно уложится. Для простого прибора со шкалой 10-700В неплохо, не так ли? Прошивка имеет особенность: если на вход подано напряжение с амплитудным значением более 1000В (примерно), прибор покажет символ «Е » - перегрузка. Это произойдет даже если действующее значение будет существенно меньше 700В.

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.

Как известно многие современные микроконтроллеры имеют встроенный многоканальный АЦП, как правило, физически АЦП всего один, а многоканальность обеспечивается с помощью мультиплексирования. Диапазон напряжений с которыми может работать АЦП определяют уровни опорных напряжений(+VREF и -VREF ), они не должны выходить за диапазон питания микроконтроллера. Диапазон напряжений, питающих микроконтроллер, может быть от 0 до 3.3, либо от 0 до 5 вольт. Отсюда становится понятно что измерять отрицательные напряжения АЦП не может, а это бывает необходимо.

Для измерения отрицательных напряжений с помощью АЦП существует несколько способов, во всех примерах будем считать что -VREF = 0 , а +VREF = 5 вольт.

Необходимо измерять только отрицательные напряжения, например, от -5 до 0.
В таком случае можно применить инвертирующий усилитель, построенный на операционном усилителе(ОУ), с коэффициентом усиления равным -1.

Когда на вход схемы будет приходить -1 вольт, на вход АЦП будет поступать +1 вольт. Если же сигнал, который хотим измерить нужно усилить, достаточно изменить номиналы резисторов R1 и R2.

Необходимо измерять только отрицательные напряжения, например, от -15 до 0.
В таком случае можно применить сумматор построенный на ОУ


Номиналы резисторов R1 и R2 рассчитываются следующим образом, когда Uвх = -15 вольт, суммарное падение напряжение на резисторах R1 и R2 равно 20 вольт. В этом случае на прямом входе ОУ должно быть 0 вольт, отсюда становится понятно, что на R1 упадёт 5 вольт, а на R2 упадёт 15 вольт, из этого следует, что номиналы резисторов должны соотносится как R2/R1 = 3/1. С другой стороны, так как резисторы соединены последовательно и через них течёт один и тот же ток, можно записать формулу.


Идём дальше, так как в схеме присутствует отрицательная обратная связь, напряжение на прямом и инверсном выводе должны быть равны. Когда Uвх = 0 на выходе ОУ будет 5 вольт(в данном случае ноль на входе - максимальное значение, значит на выходе должно быть максимальное значение равное 5 вольтам). В это же время на прямом входе ОУ будет 3.75 вольта, и эти же 3.75 будут на инверсном входе. Так как на выходе ОУ 5 вольт, а на инверсном входе 3.75, легко рассчитать соотношение R3 к R4(обычный делитель напряжения).


Предположив, что R1 и R4 равны 10К, получаем


R1 = 10К

R2 = 30К

R3 = 30К

R4 = 10К

Необходимо измерить напряжение, которое может изменяться от -10 до 10 вольт.

Сделать это очень просто, для этого надо создать смещение, чтобы при подаче -10 вольт на вход схемы на входе АЦП было 0 вольт, тогда при подаче 10 вольт на входе АЦП будет 5 вольт.

Реализовать это можно несколькими способами:

  • на резисторах


Номиналы резисторов рассчитываются очень просто, когда мы подаём на левый вход R2 -10 вольт на его правом выводе должно быть 0 вольт, в таком случае ток через R3 не течёт, так как на его концах отсутствует разность потенциалов.

Ток, протекающий через R2, равен


Ток, протекающий через R1, равен


Так как резисторы R1 и R2 соединены последовательно, то и токи, протекающие через них равны.


Предположим R2 равен 10K, тогда R1 равен 5K.

Ток через R2 равен току через R3, получаем


получаем

R1 = 5К

R2 = 10К

R3 = 10К

Минус схемы на резисторах, это то что R2 ограничивает ток, поступающий на вход АЦП и то что любой шум в цепи питания будет попадать на вход АЦП. Хотелось бы обратить внимание на то, что у АЦП есть такой параметр, как входное сопротивление, которое, как правило, зависит от частоты сэмплирования , ниже изображена таблица в которой показано как зависит сопротивление входа от периода преобразования АЦП для STM32


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

Этот недостаток можно исправить, собрав схему, которая обладает низким выходным сопротивлением, то есть может отдать большой ток.

  • сумматор на операционном усилителе


И снова нам поможет сумматор на операционном усилителе, как рассчитываются номиналы резисторов описано выше, но суть одна, надо взять два крайних значения, поступающего напряжения, при минимальном значении на выходе ОУ должен быть ноль, при максимальном должно быть 5 вольт(не забываем, что -VREF = 0 , а +VREF = 5 вольт). Если необходимо измерять положительное и отрицательное напряжение, в качестве смещения удобно использовать половину опорного напряжения, то есть 2.5 вольта.
Вот что получилось в микрокапе, картинку можно увеличить кликнув по ней.


Схема на ОУ обладает низким выходным сопротивлением, то есть может отдавать большой ток и может быть пересчитана для измерения других напряжений, например, ±2.5 вольта.
мы рассмотрим ещё несколько способов измерения отрицательного напряжения с помощью АЦП.

Нередко требуется измерить мощность того или иного электрооборудования. Кроме того, иногда полезно знать одновременно и ток нагрузки I, и напряжение U, и не просто мощность (всё равно какую), а и полную P, и активную S (их нередко путают и не всегда уточняют, которая из них имеется в виду в том или ином случае). Также в ряде специфических случаев требуется знать коэффициент мощности сети, равный P/S (он же косинус φ (фи) - угла сдвига фаз между напряжением и током), реактивную мощность Q и сам φ.

Объяснение различных электрических терминов и глубоких теоретических основ выходит за рамки данной статьи, это всё можно найти в специализированных источниках, таких как учебники по ТОЭ (например, ) и ряд публикаций в интернете.

Обычный мультиметр в решении вышеозначенных задач не поможет, т.к. измерив, пусть даже одновременно (2-мя приборами), ток нагрузки и напряжение в сети мы сможем получить только S=UI, а все остальные параметры остаются недоступными, т.к. для их вычисления одних U и I недостаточно.

Имеющиеся решения

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

Фирма Atmel публикует в качестве одного из примера использования МК AVR описание конструкции некоего счётчика электроэнергии на доступной элементной базе – . Но в качестве измерительного прибора это изделие вряд ли годится, т.к. показывает только потреблённую мощность на электро-механическом счётчике с колёсиками с цифрами (подобно бытовым счётчикам электроэнергии).

Автору статьи удалось найти в интернете довольно универсальный прибор - . Это ваттметр, построенный на МК ATMega8, измеряющий все вышеозначенные параметры. Но при детальном анализе выяснилось, что у устройства немало недостатков, некоторые из которых обозначены в той статье. Подробнее об этом также сказано ниже.

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

В то же время все вышеописанные задачи вполне «по зубам» обычным МК AVR, которые гораздо более доступны и порой дешевле микросхем от AD. Тем более, что для создания универсального измерительного прибора без МК и прочих узлов всё равно не обойтись.

Способы измерения переменных напряжения/тока, мощностей и частоты

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

Любой сигнал перед измерением необходимо нормировать – т.е. привести его к допустимому диапазону и прочим параметрам используемого измерительного узла. В нашей схеме измерительный узел – интегрированный в МК AVR АЦП, способный измерять напряжение в диапазоне 0-5в. Подача на него других напряжений (отрицательных либо больших 5в) приведёт к выходу из строя в лучшем случае только АЦП, в худшем – всего МК.

Измерение сетевого переменного напряжения заключается в 2-х пунктах:

  1. «Куда-то деть» отрицательную полуволну синусоиды, т.к. она не попадает в диапазон АЦП.
  2. Сделать так, чтобы максимальное (амплитудное) значение положительной полуволны не превышало 5в.

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

Делитель уменьшает (масштабирует) напряжение до требуемого диапазона. Коэффициент деления следует подбирать исходя не из стандартных 220в, а хотя бы из 260в, т.к. напряжение в сети крайне редко бывает 220в, оно чаще колеблется в каких-то пределах и, кроме того, часто бывают кратковременные «выбросы» (высокое напряжение) и «провалы» (низкое напряжение).

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

Для получения реального напряжения необходимо измеренное напряжение на входе АЦП умножить на коэффициент деления делителя и на 2, для «компенсации» срезанной диодом отрицательной полуволны.
Недостатки такого подхода следующие:

  1. Только идеальный диод срезает отрицательную полуволну напряжения по нулевому уровню. Реальные диоды открываются несколько позже, при напряжении +0.4..+1в. Т.е. мы всегда теряем часть положительной полуволны.
  2. Умножение на 2 при расчёте реального действующего напряжения справедливо лишь для истинной синусоиды, т.е. когда отрицательная полуволна абсолютно симметрична положительной того же периода. В реальных электросетях, при наличии массы наводок, реактивных нагрузок и пр. факторов можно сказать, что половинки синусоиды вообще несимметричны. Поэтому умножение на 2 несёт в себе некоторую дополнительную ошибку, оценить (и учесть) которую достоверно невозможно.

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

Есть и другой способ измерения напряжения – «вписать» всю синусоиду в диапазон 0..+5в. Для этого её нужно «поднять» на полдиапазона АЦП (т.е. на +2.5 в) и подогнать делитель так, чтобы вся синусоида целиком лежала между 0 и +5в.

В этом случае исключаются оба недостатка – не нужен диод и АЦП измеряет обе полуволны напряжения со всеми их «особенностями». При дальнейших расчётах также необходимо как-то учесть добавленные схемой +2.5в. Но с помощью программных (вычислительных) средств микроконтроллера это сделать очень легко.
Единственный зримый минус этого способа – коэффициент деления д.б. в 2 раза больше (т.к. мы вписываем обе полуволны, а не одну), что увеличивает ошибку измерений. Но опять же, в условиях постоянно меняющегося по амплитуде и по значению напряжения, к заметным погрешностям это не ведёт.

Схемных решений этого способа, по крайней мере, два – делители и конденсаторы, как в и использованный в схеме предлагаемого устройства формирователь средней точки (тех самых +2.5в) на ОУ.
Но делители не обеспечивают гальванической развязки измеряемой сети и нашего устройства. Это создаёт ряд неудобств.

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

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

В завершение приведём формулу для расчёта среднеквадратического значения напряжения: , где N – кол-во замеров за период (частота выборки), u i - мгновенные замеры напряжения. К – коэффициент, учитывающий делитель и трансформатор.
Замеры можно проводить как за период так и за несколько периодов с последующим усреднением. Если речь не идёт о построении конструкций типа осциллографа, то усреднение предпочтительнее, т.к. обычно интересны именно средние значения, а не мгновенные.

Измерение тока .
Ни один АЦП сам по себе ток как таковой измерять не может. АЦП измеряет только напряжение. Значит, необходимо преобразовать ток в напряжение, измерить это напряжение, и пересчитать его обратно в ток.
Самый простой способ преобразования тока в напряжение – шунт, по сути – мощный низкоомный резистор Rш. Протекаемый ток нагрузки Iн создаёт на резисторе падение напряжения Uш, прямопропорциональное величине Iн. Зная сопротивление шунта, по закону Ома мы можем вычислить ток нагрузки: Iн=Uш/Rш. На базе шунта устроено подавляющее большинство амперметров, как стрелочных, так и цифровых.

Такой способ очень прост, понятен и дёшев. Кроме того такой узел полностью линеен (равенство Iн=Uш/Rш соблюдается на всём диапазоне рабочих токов) и не имеет никаких реактивных составляющих, т.к. резистор – 100% активный элемент.
Но, наряду с простотой и дешевизной, у схем на базе шунта есть ряд недостатков:

Недостатки 2, 3 и 4 очень серьёзные, они могут привести к весьма плачевным последствиям (порча прибора, поражение электрическим током и пр.). Именно поэтому на всех амперметрах широкого потребления стоят предупреждающие надписи со смыслом «измерять большие токи (10А и выше) не более 10-20 секунд».
Конструкция построена на базе шунта, а, значит, обладает всеми четырьмя недостатками.

Другой способ измерения тока заключается в использовании токового трансформатора (ТТ). Такой трансформатор представляет собой катушку, через которую продевается несколько (1-3) витков провода, через который запитывается нагрузка. В мощных промышленных ТТ вместо витков провода применяется толстая металлическая шина (пластина). Принцип действия ТТ по сути такой же, как и у обычного трансформатора – электромагнитное поле тока проводника первичной обмотки (I1, ток нагрузки, Iн) наводит во вторичной обмотке ток (I2), пропорциональный Iн. Т.e. I2=Iн*K, K – коэффициент передачи тока (его значения стандартизованы – 1:500, 1:1000 и т.д.). Далее этот ток шунтом Rb превращается в напряжение, которое уже можно измерять обычным вольтметром (либо АЦП) и пересчитывать в напряжение. Т.к. ток вторичной обмотки всегда очень мал, то здесь не требуются очень мощные шунты и они не перегорают из-за того, что работают на предельной мощности.

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

Расчёт тока нагрузки при использовании ТТ имеет вид: Iн=I2/K. I2=U2/(Rb+R2), где U2 – напряжение на шунте Rb, R2 – сопротивление вторичной обмотки. Отсюда Iн= U2/(К*(Rb+R2)). По сути – тот же закон Ома.
Детальнее о ТТ и принципах их функционирования можно прочитать в специализированных статьях, например, в .

Основные преимущества ТТ перед шунтом:

  1. Гальваническая развязка.
  2. Возможность измерения огромных токов (например, промышленных 500А).
  3. Обрыв обмотки не ведёт к выгоранию всей остальной измерительной схемы.
  4. ТТ не вносит практически никаких искажений в измеряемую цепь в силу того, что первичная обмотка это несколько витков провода, и её индуктивность крайне мала. В мощных промышленных ТТ нет даже и этих считанных витков, там просто один толстый мощный провод, продетый сквозь обмотку, либо шина.

Но есть и ряд недостатков:

  1. ТТ гораздо дороже шунтовых резисторов.
  2. В ряде случаев ТТ дают некоторый фазовый сдвиг выходного тока относительно входного.
  3. Обрыв шунта вторичной обмотки ведёт к её перегоранию (по сути порче самого ТТ) и к искажению параметров измеряемой цепи.
  4. На большом диапазоне токов ТТ нелинейны, т.е. вышеупомянутый K не является константой. Это – прямое следствие магнитного гистерезиса сердечника трансформатора. Компенсировать это можно разбиением всего диапазона измеряемых токов на части (поддиапазоны) и применением для каждого поддиапазона своего К. Кроме того, существуют ТТ с сердечниками из разных специальных сплавов, обладающих малым гистерезисом.

Иные методы измерения тока и разновидности ТТ здесь не рассматриваются. Существует немало обзоров и статей на эту тему, например, .

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

Измерение активной и реактивной мощностей .
Из ТОЭ () известно, что активная мощность нагрузки вычисляется как интеграл произведения мгновенных напряжения и тока за один период частоты: . В цифровых измерительных устройствах интегралы не вычисляются, поэтому данная формула приобретает вид: , где u, i – мгновенные значения тока и напряжения, замеренные с помощью АЦП, N – кол-во замеров тока и напряжения за период. Аналогично напряжению и току, активную мощность можно измерять и за несколько периодов и соответствующей корректировкой N.
Полная (S), активная (P) и реактивная (Q) мощности связаны равенством . Поэтому, зная S и P, можно легко вычислить .

Измерение коэффициента мощности сети и угла сдвига фаз .
Эти два параметра строго однозначно взаимосвязаны, ибо коэффициент мощности – не что иное, как косинус угла сдвига фаз (φ) между напряжением и током (см. ТОЭ). Поэтому измерять можно любой из них, а второй вычисляется путём простейшей тригонометрии.

Первый способ (м.б. наиболее очевидный и простой) – засечь время между началом периода синусоиды напряжения и началом синусоиды тока, пересчитать его в φ и далее определить косинус. Так работает алгоритм определения угла в .

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

Поэтому, если, допустим, в квартире этот метод будет давать вполне нормальный результат, то на каком-нибудь заводе с массой станков, сварочных аппаратов и прочего мощного силового оборудования может получиться откровенная ерунда (например, постоянно меняющееся значение угла). Даже на «безобидных» нагрузках порой могут наблюдаться сильные искажения, например, синусоиды тока. У автора, например, есть колонки Sven BF-11R, форма тока через которые больше напоминает некую изуродованную пилу с многоступенчатыми пирамидальными полуволнами, нежели синусоиду. Хотя, справедливости ради, следует отметить, что масштабные исследования на эту тему автором не проводились в силу отсутствия у него технических возможностей.

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

Понятно, что вычислять все три мощности, угол и косинус следует только тогда, когда U<>0 и I<>0. В противном случае их можно просто обнулить без проведения каких-либо вычислений.

Схема устройства, детали

Схема электрическая принципиальная ваттметра приведена на рис. 1.


Рис. 1. Схема электрическая принципиальная

Схема устройства состоит из 2-х частей – аналоговой (слева от DIP выключателей SW1) и цифровой (справа).

Аналоговая часть состоит из измерительных трансформаторов напряжения (Т1), тока (Т2) и согласующих узлов.
Резистор R2 – потенциометр для точной настройки напряжения, поступающего на АЦП.
Т2 – токовый трансформатор Talema AC1025, нагруженный на шунт-резистор R1 номиналом 100 Ом мощностью 0.125Вт. Такие параметры резистора рекомендованы фирмой-производителем трансформатора. Кроме того, согласно исследованиям автора, такой резистор обеспечивает наилучшую линейность применяемого ТТ. Первичная обмотка – 2 витка обычного одножильного провода сечением 1-1.5 мм, этого вполне достаточно для бытовых нагрузок мощностью до 2 кВт и током до 10А. На характеристики и настройку схемы толщина этого провода не влияет.

Узел R3, C1, C3, DA1.1 – формирователь средней точки для «поднятия» синусоид на полдиапазона АЦП. ОУ DA1 – в принципе любой. Автор использовал и LM358, и rail-to-rail MCP601. По цоколёвке корпусов (по крайней мере DIP) они идентичны.

Делитель R4, R5, R6 – цепочка для измерения больших (от 4-5А) токов.
Диодные пары VD1-VD2, VD3-VD4, VD5-VD6 и R7 – классическая защита входов АЦП от перенапряжения (точнее – от выхода синусоиды за границы 0..+5в). VD1-VD4 – желательно Шоттки. Можно также применить «специализированные» диодные сборки типа BAV199 (1 сборка содержит 1 пару диодов) или аналогичные.
Все потенциометры (R2, R3 и R5) желательно многооборотные. Они позволят провести наиболее точную настройку узлов схемы.

В схеме отсутствуют какие-либо фильтры на входах АЦП по той причине, что используемые трансформаторы рассчитаны на работу с токами частоты 50/60 Гц и плохо передают сигналы высоких частот. Но детальные исследования автором не проводились за неимением необходимого оборудования (генераторы разных частот и пр.).

Для измерения тока предусмотрено 2 канала – слаботочный (T2-R7-ADC2) и сильноточный (T2-R4-R5-R6-ADC3). Такое решение вызвано тем, что большие нагрузки (4-5А и выше) приводят к появлению на выходе ТТ напряжения, превышающего по амплитуде 4.5-5в. Вершины полуволн такого напряжения будут срезаны диодной парой VD3, VD4, что означает фактическую невозможность измерения тока выше указанных значений. Микропрограмма контроллера автоматически выбирает, который из двух сигналов использовать.

Цифровая часть схемы – микроконтроллер AtMega16, стандартный алфавитно-цифровой ЖК дисплей типа HD44780 и пр. элементы. Схемы включения – стандартные для этих компонентов. При подключении дисплея следует руководствоваться документацией на конкретную модель, т.к. существуют разные их цоколёвки (распиновки). Автору известны 2. На схеме приведена наиболее распространённая.
Единственное требование к дисплею – он должен быть русифицированным, т.к. все сообщения выдаются на русском языке.

Резистор R8 – обычный (не многооборотный), служит для установки желаемого уровня контрастности изображения на LCD.
R9 и SB5 – подсветка. Номинал R9 не указан, т.к. разные модели LCD имеют разный ток подсветки. Его можно вычислить по закону Ома, используя значение тока подсветки для конкретного дисплея. Если дисплей без подсветки, то R9 и SB5 вообще не нужны.

R11, VD6 – индикатор «Питание подано».
Никаких специальных настроек цифровой части не требуется. При исправных деталях, правильном монтаже и запрограммированном контроллере схема начинает работать сразу после подачи питания.

Сам МК может быть модификаций AtMega 16/16A. Модификацию буквой L использовать нельзя – штатно она не работает на частоте 16MHz. Вопросы разгона типа «как заставить AVRы c буквой L заставить работать на частоте 16 MHz» здесь не рассматриваются. Можно использовать и другие – Mega32, 64, 128, но под них необходимо будет перекомпилировать соответствующим образом микропрограмму.

При программировании (прошивке) кроме заливки в контроллер файла wattmetr.hex также необходимо:
1. выставить режим кварцевого резонатора (CKSEL3..0=1111)
2. выставить CKOPT=0 (обязательно, т.к. кварц 16MHz)
3. выставить JTAGEN=1. Если этого не сделать, то LCD не будет корректно работать, ибо JTAG контроллер (4 старших бита PC) программно не выключается.
4. прошить EEPROM первоначальной конфигурационной информацией (файл wattmetr.eep).

Автор использовал для программирования отдельный программатор PonyProg с LPT интерфейсом. В авторской конструкции использованы контроллер в корпусе DIP, и колодка под него, поэтому на схеме и на печатной плате отсутствует разъём для подключения ISP программатора, но ножки PB5-PB7 (к ним подключается программатор) специально оставлены свободными.

Все кнопки без фиксации. Их конструкция любая, в зависимости от предполагаемых условий эксплуатации. SB1-SB3 и VD5 используются только при настройке и калибровке прибора, поэтому их можно разместить непосредственно на плате, SB4 и SB2 используются ещё и для переключения режимов отображения информации на дисплее, поэтому её лучше вывести наружу либо для удобства калибровки продублировать (2 параллельно включённые кнопки – на плате и на корпусе). Для подключения дублирующих кнопок на плате сделаны специальные отводы для разъёмов.
Назначение кнопок и светодиода будет описано ниже, в разделах «Калибровка» и «Эксплуатация».

Следует отметить, что на схеме отсутствует какой-либо преобразователь уровней UART (ножки 14, 15 контроллера). Это связано с тем, что тип и само наличие либо отсутствие такого преобразователя сильно зависит от того, к чему будет подключаться прибор. Если COM-порт, то это микросхема MAX232, если USB – то что-то типа FT232BM, если к другому контроллеру, то, может быть, преобразователи вообще не нужны и т.д.

Авторская конструкция предполагает подключение к другому МК AVR, поэтому преобразователь в ней вообще отсутствует. Резистор R12 необходим для поддержания на входе Rx высокого уровня в отсутствие передачи (согласно правилам работы UART), либо когда этот интерфейс вообще не используется.

Схемы узлов на MAX232, FT232 и пр. здесь не приводятся, их можно найти в документации на эти микросхемы. Также можно использовать USB шнуры от старых мобильников с нативным интерфейсом UART (типа PL2303). Но перед этим следует убедиться, что на выходе шнура лог. уровни ТТЛ, а не RS232.
Для тестирования работы интерфейса автором использовался узел на MAX232, собранный на другой плате. Этот узел подключался к прибору стандартным аудиошлейфом от компьютерного CD/DVD привода.

Питание схемы осуществляется от любого источника постоянного тока напряжением 5в. Например, от классического блока питания на однокристальном стабилизаторе LM7805 – рис. 2. Можно также использовать любой другой БП, дающий 5в, батарейку, порт USB компьютера и т.п.


Рис. 2. Блок питания

Если предполагается запитывать схему от той же сети, куда включается измеряемая нагрузка (как, например, в быту, в квартире), то можно объединить трансформаторы T1 обеих схем. Т.е. использовать один, с двумя независимыми вторичными обмотками. Так, в авторском экземпляре использован один трансформатор с двумя вторичками по 15в каждая.

Схема собирается любым удобным способом.

К статье также прилагается чертёж печатной платы, созданный в широко известной программе . Она предполагает использование двухстороннего текстолита и реализацию небольшого количества переходных (металлизированных) отверстий. Однако, если сделать двухстороннюю разводку и металлизированные отверстия представляется невозможным (например, в домашних условиях, с использованием ), то:
1. развести на одностороннем текстолите только слой M2, содержащий основную массу всех дорожек;
2. вместо переходных металлизированных отверстий можно сделать обычные;
3. все дорожки слоя M1 (вместе с соответствующими переходными отверстиями) заменить проволочными перемычками. Очень удобно использовать для этого обрезки ножек радиодеталей, например, резисторов и конденсаторов.

Следует отметить также следующие особенности:

  • Измерительные трансформаторы T1 и Т2 на плате неразведены, т.к. они могут быть разной конструкции и габаритов. Авторский экземпляр, например, использует в качестве T1 вторую обмотку трансформатора блока питания. Обмотки трансформаторов подключаются к плате проводами с разъёмами.
  • R1 (шунт ТТ) на плате не разведен, его следует припаять непосредственно к выводам ТТ. Это снижает риск обрыва шунта.
  • Для подключения LCD на плате предусмотрен разъём, последовательность контактов которого соответствует наиболее часто встречающейся разводке дисплея, приведенной на рис.1. При сборке устройства обязательно сверяйтесь с описанием своего экземпляра LCD, т.к. на практике встречается немало отличий – нестандартный порядок контактов, расположение их на боковой стороне платы дисплея, SMD контакты и т.д.
  • На плате указан счетверённый DIP выключатель, т.к. найти в продаже тройной не всегда возможно. Если есть возможность использовать тройной, то вместо левого на плате (цепь 40-й ноги контроллера) выключателя следует запаять проволочную перемычку (либо проложить дорожку в слое M1 и сделать 2 дополнительных металлизированных отверстия).

Внимание! Автор собирал и отлаживал прибор на макетной плате, т.к. предполагается его использования в составе другого устройства. Поэтому предлагаемый чертёж п/п лишь теоретический и на практике не проверен.
БП по рис. 2 был собран на готовой п/п заводского изготовления. Её чертёж также прилагается.

Настройка схемы

Внимание! Перед настройкой схемы следует разомкнуть все 3 DIP выключателя SW1 (либо удалить МК из схемы). Если используется счетверённый выключатель, то линию 40-й ноги контроллера размыкать не нужно.
В общем случае, манипуляции DIP выключателями предпочтительнее, т.к. есть информация, что некоторые экземпляры (или модели) LCD сгорают, если сразу же по включении их не инициализировать, хотя автору такие не встречались. Если контроллер убрать, то инциализировать его будет некому.

Настройка схемы сводится к регулировке потенциометров R2, R3 и R5 в следующем порядке:
1. При отключенной нагрузке выставить с помощью R3 в точке А напряжение +2.5в относительно земли схемы.
2. Подать на T1 напряжение и выставить на выходе R2 1в относительно точки А. При наличии осциллографа проконтролировать синусоиду на выходе R2, чтобы она лежала в пределах +1..+4.5в (т.е. не обрезалась диодами VD1-VD2). Если есть лабораторный автотрансформатор, либо стабилизатор с возможностью некоторого повышения напряжения, то можно подать на вход T1 завышенное напряжение (например 260-270в) и отрегулировать синусоиду по нему, чтобы был некоторый запас по диапазону входного напряжения.
3. Подключить мощную нагрузку (4-5А – например, утюг 1 кВт) и выставить с помощью R5 на выходе делителя напряжение примерно в 5 раз меньшее, чем на его входе. Если обычным вольтметром, то относительно точки А. Если есть осциллограф, то убедиться, что синусоида с выхода делителя не обрезается диодами.

Замеры осциллографом всегда проводить относительно земли.
Если синусоида будет где-то обрезаться, то показания прибора будут неверны.
После настройки восстанавливаем связь аналоговой части схемы с МК (включаем все DIP выключатели).
Калибровка прибора описана ниже.

Микропрограмма

Микрокод контроллера написан на языке Си с использованием компилятора CvAVR.
Он постоянно опрашивает каналы АЦП, пересчитывает напряжение на его входах в реальные измеряемые величины и выводит полученные значения на дисплей.

Каждый цикл замеров длится 0.5 сек, после чего данные обрабатываются (рассчитываются измеряемые параметры) и выводятся на дисплей. Каждый замер включает в себя измерение напряжений на входах ADC1-ADC3 и расчёт предварительных величин, на основании которых вычисляются искомые напряжение, ток и пр. Подробнее этот подход описан ниже.

Замеры проводятся по прерываниям таймера TC0 с частотой 5 кГц.
Т.е. 100 раз за период (20 мс), в прерывании таймера, снимаются замеры со всех 3-х каналов АЦП (ADC1-ADC3). По истечении 0.5 сек таймер выключается и проводятся расчёты. Замер напряжения средней точки (ADC0) проводится каждый раз перед запуском таймера. Эти позволяет снизить влияние случайных пульсаций напряжения средней точки на показания прибора.

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

Дело в том, что все они всегда подразумевают, что все входящие в них величины (например, мгновенные напряжение и ток) – вещественные (с плавающей точкой, если говорить языком программирования) числа. Но в микроконтроллерах вообще, и в AVR в частности, нет арифметического сопроцессора, способного пусть даже за 10 тактов сложить или перемножить два таких числа. Такие действия проводятся путём программной эмуляции, которая работает очень медленно. Не говоря уж о длительных, итерационных алгоритмах извлечения квадратного корня и вычисления тригонометрической функции arccos (арккосинус), используемой при вычислении φ.

Иными словами, если реализовать подобные действия в обработчике прерывания, вызывающемся даже раз в миллисекунду, то такой обработчик не сумеет завершиться в течении 1 мс, что в лучшем случае приведёт к жутким «тормозам», а скорее всего – к полному зависанию контроллера. И то, и другое фактически означает полную неработоспособность прибора.

Можно использовать другие способы их вычисления, такие как табличные алгоритмы (для квадратного корня и арккосинуса) и манипулирование «масштабированными» величинами (например, ток можно вычислять не в дробных амперах, а в целочисленных миллиамперах – 1.253A=1253mA) и т.п. Но у них немало своих недостатков – программный код «раздувается» лишними операциями, делая и без того достаточно непростые алгоритмы путаными и малопонятными. Кроме того, при этом возрастает и расход памяти (и RAM и Flash), которой в МК и без того порой очень не хватает. Также нередко страдает и точность таких расчётов.
В то же время, несложные математические преобразования теоретических формул позволяют полностью уйти от всех этих проблем при сохранении возможности использования плавающей точки и функций sqrt и arccos из стандартной библиотеки языка Си.

Рассмотрим этот способ на примере вычисления напряжения.
В теоретической части статьи приведена формула (1), где u i – мгновенное значение напряжения, которое, в свою очередь, вычисляется как u=K*u adc (2), где u adc - напряжение на входе АЦП, K – константа, учитывающая общий коэффициент деления трансформатора T1 и делителя R2. Согласно документации на МК (3). Подставляя (3) в (2), а затем в (1), получим , где ADC i - значение, считываемое из регистра данных АЦП по завершении измерения. А это – величина сугубо целочисленная и даже беззнаковая.
Отсюда следует, что возведение в квадрат (по сути умножение) и суммирование (которые необходимо проводить в теле обработчика прерываний таймера TC0) – целочисленные операции, с которыми МК (не забудем, что в его составе есть аппаратный целочисленный умножитель) справляется без труда за 1-2 такта. А имея на руках целочисленную сумму квадратов мгновенных отсчётов АЦП за какое-то кол-во периодов частоты и зная их кол-во (N в вышеприведенных формулах), можно прекратить замеры и проводить все дальнейшие расчёты уже с использованием плавающей точки и стандартных математических функций языка Си.

Также, непосредственно после замера каждого канала из считанного кода АЦП вычитается код с канала ADC0 (средняя точка), компенсируя тем самым поднятие синусоид вверх на 2.5в.

Родственные утверждения справедливы и для тока (там только другой коэффициент K, учитывающий связь ток нагрузки – напряжение на шунте R1) и для активной мощности.

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

Существенным недостатком предлагаемой прошивки является практически полное отсутствие механизмов компенсации нелинейности ТТ. Причин тому две.

Первая и основная – отсутствие у автора некоего испытательного стенда для создания различных токов нагрузки с целью построения точного графика зависимости напряжения на выходе ТТ от тока нагрузки. Бытовые приборы для этого слабо подходят, т.к. они не позволяют равномерно исследовать полностью весь диапазон токов. Графики, приведенные в ДШ на ТТ, также не годятся, т.к. они слишком мелкие и слишком грубые для подобного рода задачи. Этим недостатком страдают ДШ на многие модели ТТ.

Вторая – возможная нехватка у использованного МК оперативной памяти RAM для реализации подобного алгоритма. Возможно, необходима замена на другой МК с большим объёмом памяти, например, на AtMega32. Однако детальные исследования в этом направлении не проводились в силу первой причины.
Этот недостаток отчасти компенсируется наличием 2-х каналов измерения тока и управляемым порогом переключения между ними, т.к. для каждого канала используется свой калибровочный коэффициент. Т.е. можно добиться приемлемых показаний для наиболее часто измеряемых нагрузок.

Ещё один недостаток – прибор иногда показывает отрицательную активную мощность P (чего быть не может, если, конечно, не воткнуть в розетку электрогенератор J). Это происходит из-за несихронизиванности измерений с сетью – т.е. измерения надо начинать с началом периода, но в предлагаемых схеме и микрокоде подобная синхронизация.

Т.к. ошибка касается только знака мощности, то данный недостаток отчасти можно «скомпенсировать» использованием P по модулю, что задаётся в настройках.

Калибровка/настройка прибора

Т.к. прибор измерительный, то перед эксплуатацией его необходимо откалибровать.
Калибровка производится с помощью кнопок SB1-SB4. Вход в режим настроек/калибровки и переключение этапов калибровки осуществляется кнопкой SB1. В некоторых случаях на экране может отображаться несколько значений, но изменяемое на каждом этапе значение всегда одно, оно заключено в угловые скобки "<", ">". Остальные приводятся для справки и общей информации.

Редактируемые значения можно изменять кнопками SB2, SB3 – уменьшить/увеличить соответственно. Все значения (если не указано иное), следует задавать с точностью до сотых. Режим точности задаётся кнопкой SB4 и отображается светодиодом VD5. Если VD5 включён – шаг изменения равен 0.01 (повышенная точность), иначе – 0.1.

Ход калибровки/настройки:

  1. Подать питание на схему.
  2. Нажать SB1. Прибор перейдёт в режим настроек, на дисплее появится надпись «Настройки», затем, спустя примерно 1 сек, «U питания (опоры)». Здесь следует указать напряжение питания схемы, либо напряжение опоры (ножка AREF контроллера).
  3. Нажать SB1. Появится надпись «Вольтметр». Число справа от неё – действующее переменное напряжение на входе ADC1 (относительно точки A), во 2-й строке – коэффициент пересчёта напряжения ADC1 в результирующее напряжение и редактируемое, т.н. «желаемое» напряжение – какое мы хотим видеть на дисплее. Здесь следует выставить желаемое напряжение (по эталонному вольтметру). Коэффициент пересчёта вычисляется автоматически.

Далее аналогичным образом калибруются оба канала амперметра, задаётся порог переключения каналов измерения тока и режим использования активной мощности – как есть либо по модулю.. Далее можно сохранить настройки в EEPROM контроллера либо восстановить умолчания (т.н. «заводские» настройки).
Каналы тока обозначаются как Lo (ADC2) и Hi (ADC3). Их калибровать необходимо с подключенным последовательно с нагрузкой эталонным амперметром.

Канал высокого тока (Hi) следует калибровать на мощной (1 кВт и выше) нагрузке. Это связано в тем, что низкие токи нагрузки дают низкое напряжение на выходе ТТ, которое, будучи ещё и уменьшенным делителем R4-R6, может уйти в область шумов и погрешностей АЦП. В итоге показания м.б. неверны.
Порог переключения задаётся в амперах с точностью до десятых. Используя эту величину контроллер выбирает, какой канал тока использовать для отображения на дисплее и дальнейших вычислений S, P, Q и пр. Подбирать порог следует так, чтобы контроллер измерял неискажённую диодами VD3, VD4 синусоиду. По результатам исследования автора вполне приемлемой является величина в 4А. Это обычно чуть меньше тока потребления утюга в 1 кВт. Для диагностики работы порога можно использовать ножку 19 (PD5) контроллера. Лог. 0 на ней формируется, если прибор использует канал Lo, 1 – Hi. При желании можно подключить к этой ножке диагностический светодиод.

«Заводские» установки:
Опора АЦП (напряжение питания) – 5в.
Коэффициент пересчёта напряжения – 150.
Коэффициент пересчёта канала низкого тока – 1.30.
Коэффициент пересчёта канала высокого тока – 6.50.
Порог переключения каналов тока – 4.00 А.
Профиль отображения – 1.
Режим активной мощности – «как есть».

Эксплуатация прибора

Пользоваться предлагаемым устройством очень легко.
Сразу же после включения питания появляется приветственное сообщение, спустя 1 секунду прибор переходит в рабочее состояние и начинает отображать измеренные параметры на дисплее. Показания обновляются примерно раз в секунду.
Устройство имеет два т.н. «профилей отображения» - наборов одновременно отображаемых параметров:

  1. 1-я строка дисплея – U, I, S; 2-я – P, cos(φ),φ.
  2. 1-я - U, I, S; 2-я – P, Q, φ.

Набор профилей и их состав фиксированы, никаких средств модификации не предусмотрено.
Для смены профиля необходимо нажать кнопку SB4 и держать её до появления на дисплее надписи «Профиль изменён». После появления этой надписи кнопку отпустить.

«Заводские» настройки содержат активным 1-й профиль. Запомнить текущий профиль, чтобы прибор при включении сразу его использовал, можно кнопкой SB2. Кнопку SB2 необходимо держать до появления надписи «Профиль запомнен». При калибровке прибора текущий профиль не меняется, однако при сбросе настроек в заводские, текущим становится профиль 1.

Автоматически выбор профиля не сохраняется. Это сделано с целью экономии ресурса EEPROM.
На состав информации, выдаваемой по UART выбор профиля никак не влияет.

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

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

Интерфейс обмена данными по UART

Предлагаемый прибор имеет возможность выдачи результатов измерений через стандартный последовательный интерфейс UART. Т.о. можно использовать его в составе более сложных устройств либо подключать его к компьютеру для автоматизированного сбора информации.
Параметры обмена данными – 38400, 8N1.
Протокол обмена очень прост – по однобайтовой команде 0xAA контроллер выдаёт блок информации размером 15 байт следующего формата – табл. 1.

Таблица 1.

Следует отметить следующую особенность протокола – все величины передаются в целочисленном формате (токи в миллиамперах, косинус, который всегда меньше 1, умноженным на 100). Это сделано по следующим причинам:
- целые числа занимают меньше места – 1 или 2 байта. Числа с плавающей точкой в используемом диалекте языка Си – всегда 4 байта. Кроме того, все выдаваемые величины укладываются в целочисленный формат без каких-либо значимых потерь точности.
- т.к. заранее неизвестно, вычислительная система какой архитектуры будет подключена к прибору, то формат плавающих чисел может оказаться совершенно иным, чем применяемый в приборе, что внесёт дополнительные сложности в декодирование блока данных.

Двухбайтовые числа передаются в формате т.н. маленького индейца – т.е. сперва идёт младший байт, затем старший.
Также имеют место особенности:
- возможность калибровки и считывания калибровочной информации через UART отсутствует;
- в режиме калибровки интерфейс UART недоступен (МК не реагирует на него). Запросы данных, присланные в то время, пока шла калибровка теряются;
- МК может отсылать информацию примерно раз в секунду (после оконцания замеров и вычисления всех измеряемых величин), это следует учитывать при разработке системы опроса прибора. Поэтому не стоит «заваливать» его запросами данных, это может помешать работе измеряющего модуля.

Для иллюстрации работы с прибором автором разработано демонстрационное Windows приложение WinAppWattmeter.exe для ПК. Оно написано на C# и работает в среде WinXP и выше. Также необходимо наличие платформы.NET 2.0 и одного COM-порта (физического либо виртуального USB), куда следует подключить прибор. Исходники этого приложения компилируются в среде VS.NET 2005 и выше. Версии VS Express и.NET Compact не проверялись.

Технические характеристики, достоинства и недостатки прибора

Достоинства:

  1. Полная гальваническая развязка от измеряемой сети.
  2. Возможность питания от любого источника – БП, батарейки, USB порт компьютера и т.п.
  3. Широкий диапазон настроек.
  4. Доступная элементная база.
  5. Большой спектр измеряемых величин.
  6. Возможность передачи результатов измерений в другие вычислительные системы (например, в ПК).

Недостатки:

  1. Нелинейность ТТ ведёт к погрешностям измерения тока на всём диапазоне. Это существенно затрудняет оценку точности измерений (какие-то диапазоны токов измеряются точно, остальная часть с погрешностями, причём разными). Эти диапазоны сильно зависят от коэффициентов, регулируемых в режиме калибровки прибора, поэтому не являются фиксированными. Например, можно откалибровать так, что на малых нагрузках типа зарядок для мобильников, паяльников или квартирных лампочек показания будут правильными, а более мощные (утюги, фены, электрические плиты, духовки, микроволновки, стиральные машины) будут измеряться с ошибками.
  2. Сам ТТ может оказаться труднодобываемой и дорогостоящей деталью.
  3. При отсутствии нагрузки прибор иногда показывает какой-то ток, наведенный в первичной обмотках ТТ и, как следствие, какие-то мощности и пр. параметры.

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

Используемая модель ТТ потенциально позволяет измерять токи до 25А, но для полного использования этого диапазона необходимо дорабатывать входной (аналоговый) каскад схемы и микрокод.
Диапазон измеряемых напряжений также зависит от используемого трансформатора. Если обычный, «из блока питания», то это «стандартный» диапазон порядка 180-250в, а если взять какой-то специально изготовленный трансформатор, то можно измерять и 380 вольт.

Диапазоны значений величин, обусловленные используемыми типами данных и алгоритмическими особенностями микрокода – U=1..999в, I=1мА..65А, S/P/Q – каждая 1..999 соответствующих единиц.
Ток потребления схемы составляет 28-30 mA без учёта тока подсветки дисплея. Этот ток разный у разных моделей LCD. Его типовое значение – 100-120 мА.
Также, ток может немного отличаться от приведенных значений при использовании разных моделей LCD и ОУ.

Фотографии

В завершение несколько фотографий устройства.

Блок питания. Трансформатор физически один, с двумя независимыми обмотками. Одна обслуживает сам БП, 2-я (2 жёлтых провода справа) – измерительный Т1.

Макетная плата устройства. Замечание (ещё раз): это – макетный экземпляр. По чертежу Sprint п/п не изготавливалась, т.к. планируется эксплуатация прибора в составе другого изделия, которое пока в разработке. Поэтому на две колодки, второй дисплей и светодиод слева просьба внимание не обращать. К описываемому прибору они отношения не имеют.

Паяльник на 25W. Профиль отображения 2.

Без нагрузки. Профиль отображения 2. Ловим наводки и глюки на обмотку ТТ. Результат – «левый» ток 68 мА со всеми вытекающими.

То же самое, что и выше, но без наводок. Профиль отображения 2.

Утюг 1кВт. Профиль отображения 1. Отрицательная активная мощность J - режим «коррекции» отключен. Светится второй слева светодиод – признак использования канала высокого тока (ножка 19 (PD5) контроллера). Задан порог – 4А

Список прилагаемых материалов

Wattmetr-Mega16-16MHz.zip – микропрограмма контроллера с исходниками . Также в архиве есть готовый файл микрокода wattmetr.hex и файл заводских установок (EEPROM) - wattmetr.eep.
WinAppWattmeter.zip – демонстрационное приложение с исходниками (.NET 2.0, С# под VS.NET 2005+). Там же готовый exe файл (без вирусов).
Plata\*.* - чертежи печатных плат в формате.lay (Sprint 5).

  1. Л.А. Бессонов, Теоретические основы электротехники, изд. 9, в 2-х томах. Москва, «Высшая школа», 1996.
  2. Электронный фазометр - http://kazus.ru/shemes/showpage/0/104/1.html Он же - Радио №5, 1990 г., стр.56
  3. Atmel AVR465: Single-Phase Power/Energy Meter with Tamper Detection.
  4. Цифровой ваттметр на МК - http://radiokot.ru/circuit/digital/measure/23/
  5. Трансформатор тока - http://bsvi.ru/transformator-toka/
  6. Современные промышленные датчики тока. «Современная электроника», октябрь, 2004 г.
  7. Измерение действующего значения напряжения - http://arv.radioliga.com/content/view/107/43/

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Схема устройства
DD1 МК AVR 8-бит

ATmega16

1 В блокнот
DA1 Операционный усилитель

LM358

1 В блокнот
VD1-VD4 Диод Шоттки

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

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

Стандартами стран СНГ допускается разброс сетевого напряжения в диапазоне 187...242 В и изменение частоты в пределах 49...51 Гц. Однако эти параметры варьируются в зависимости от страны и континента (Табл. 3.1), что надо учитывать при разработке продукции на экспорт.

Таблица 3.1. Стандарты электрических сетей в разных странах

Для адаптации напряжения сети 220 В к низковольтным входам МК используют резистивные делители (Рис. 3.1, а...з), оптическую (Рис. 3.2, а...ж) и трансформаторную (Рис. 3.3, а...з) развязку. В двух последних случаях гарантируется гальваническая изоляция первичных и вторичных цепей, что повышает безопасность.

Рис. 3.1. Схемы неизолированных датчиков сетевого напряжения 220 В {начало):

а) диод VD1 отсекает отрицательную полуволну напряжения, резистором R2 регулируется амплитуда сигнала на входе МК (частота 50 Гц), конденсатор С1 устраняет помехи;

б) на вход МК поступает сигнал удвоенной частоты 100 Гц от мостового выпрямителя;

в) провод питания МК +5 В гальванически связан с сетыо 220 В. Резистор R1 ограничивает ток через внутренние защитные диоды МК (0.1...0.3 мА). Частота сигнала 50 Гц;

г) транзисторы VTI, VT2 образуют двухсторонний ограничитель напряжения с нагрузкой в виде резистора R2. Транзистор VT3 — усилитель-инвертор. Конденсатор С1 защищает МК от коммутационных помех, которые могут возникать в сети 220 В при работе тиристоров;

д) МК проверяет исправность симистора VS1 и отсутствие обрыва в нагрузке Конденсатор С1 имеет большую ёмкость, поэтому на входе МК напряжение усредняется. Резистором R2 устанавливается порог напряжения, ниже которого считается, что произошла авария;

е) для устройств, которые критичны к полярности включения вилки в сетевую розетку, «нуль» (N) и «фазу» (L) определяют стандартным прибором электрика «светящаяся отвёртка»;

ж) двухстороннее ограничение сетевого напряжения внутренними диодами МК. Конденсатор С1 высоковольтный (250 В переменного напряжения) на случай обрыва резистора R3.

Рис. 3.2. Схемы датчиков сетевого напряжения 220 В с оптической изоляцией (начало):

а) фототранзисторы оптопары VU1 закрываются на 0.1...0.2 мс в момент перехода сетевого напряжения через нуль. Точная длительность подбирается резистором R2, частота 100 Гц;

б) формирователь импульсов с частотой 50 Гц. Двойная гальваническая развязка: на оптопа-ре VU1 и на трансформаторе 77. Коллекторной нагрузкой оптопары служит внутренний резистор МК. Диод Шоттки VD1 защищает излучатель оптопары VU1 от обратного напряжения;

в) аналогично Рис. 3.2, а, но на двух отдельных оптопарах и без транзисторного ключа;

г) МК проверяет отсутствие обрыва в нагрузке по наличию импульсных сигналов с частотой 50 Гц. Диоды VD1... VD6 запараллелены (встречно) для максимальной симметрии схемы;

Рис. 3.2. Схемы датчиков сетевого напряжения 220 В с оптической изоляцией (окончание)".

д) двухкаскадный формирователь сетевых импульсов на транзисторах VTI, VT2. Частота сигнала на входе МК 100 Гц. Питание первичной стороны формирователя осуществляется от параметрического стабилизатора, собранного на элементах R3, VD2, VD3, С1. Диодный мост VD1 должен быть рассчитан на обратное напряжение не менее 400 В;

е) индикатор наличия сетевого напряжения с гальванической развязкой на оптопаре VU1. Элементы С1, R2 служат соответственно реактивным и активным балластом для стабилитрона VD5. При отключении сети 220 В конденсатор С1 быстро разряжается через резистор R1 (доли секунды). Это повышает безопасность, иначе конденсатор может разрядиться через тело человека, если случайно прикоснуться к обесточенной сетевой вилке руками;

ж) светодиод HL1 индицирует наличие сетевого питания и защищает излучатель оптопа-ры VU1 от обратного напряжения. Резистор RI при положительной полуволне задаёт ток через оптопару, а при отрицательной — через светодиод HL1. Частота импульсов на входе МК 50 Гц.

Рис. 3.3. Схемы датчиков сетевого напряжения 220 В с трансформаторной развязкой {начало):

а) транзисторный формирователь импульсов с частотой 100 Гц. Конденсатор С2 подавляет импульсные помехи. Резистор RI подбирается так, чтобы транзистор VT1 был гарантированно открыт при самом низком сетевом напряжении. Оно, в свою очередь, определяется коэффициентом передачи трансформатора 77. Напряжение с диодного моста VD1...VD4 поступает также в систему основного питания, которая формирует напряжение +5 В для МК;

б) детектор перехода сетевого напряжения через нуль. Компаратор DA1 увеличивает крутизну фронтов сигнала и повышает помехоустойчивость. Выход компаратора (открытый коллектор) нагружен на «pull-up» резистор R3. Диоды VD5, VD6 ограничивают напряжение на входах компаратора на уровне 0.6...0.7 В при положительной полуволне сетевого напряжения, а диоды, входящие в мост VDI...VD4, — при отрицательной полуволне;

в) на резисторе R2 выделяется пульсирующее напряжение частотой 100 Гц. Конденсатор С1 подавляет ВЧ-помехи. Элементы VD3, R1 защищают МК от всплесков сетевого напряжения. Диоды VD1, VD2должны соединяться с адаптером А1 отдельными проводами;

г) с диодного моста VDI... VD4 пульсирующее напряжения частотой 100 Гц поступает на входы аналогового компаратора МК. Стабилитроны VD5, VD6 должны иметь пороговое напряжение ниже, чем напряжение питания М К (в данном случае это+5 В). Диоды VD7, VD8защищают М К от большого разбаланса напряжений на входах компаратора;

Рис. 3.3. Схемы датчиков сетевого напряжения 220 В с трансформаторной развязкой (окончание):

д) формирователь прямоугольных импульсов ТТЛ-уровня из переменного сетевого напряжения 9... 12 В. Задействуется свободный канал микросхемы DA1 (драйвер интерфейса RS-232), имеющий на входе триггер Шмитта. Цепочка RI, С2служит фильтром ВЧ-помех;

е) резисторы R2, R3 образуют делитель с уровнем +2.5 В, чтобы АЦП МК работал в линейном режиме. Частота импульсов, снимаемых с диодного ограничителя VD3, VD4, — 50 Гц;

ж) аналогично Рис.3.3, г, но с двумя парами ограничительных диодов Шоттки VD2...VD5. Это, очевидно, перестраховка на случай выхода из строя диодов, находящихся в мосту VDI;

з) амплитуда входного напряжения МК с частотой пульсаций 100 Гц регулируется резистором R2. Конденсатор большой ёмкости С1 при отключении сети поддерживает некоторое время напряжение питания +5 В, чтобы МК успел корректно закончить программные процедуры.

Предисловие

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

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

Зато в лабораториях, особенно в Госповерке, имелись стрелочники с зеркальной шкалой и класом точности много лучше 0,5.

И практически все из нас были довольны и счастливы. А если не были довольны, то приобретали более точные приборы, конечно по-возможности!

Но вот настал цифровой век. Все мы ему обрадовались, — теперь видим на индикаторах сразу числа и счастливы от предлагаемой нам «точности». Причем в нынешние времена эти вездесущие «цифровики» стоят на порядок меньше ставших раритетом «неточных стрелочников». Однако мало кто задумывается, что показываемые нам в цифре величины по-прежнему остались аналоговыми, будь это вес или сила тока – значения не имеет. А это значит, что измеряются эти величины по-прежнему аналогово! И лишь для обработки и представления преобразуются в цифровую величину. Вот тут-то и скрываются погрешности, приводящие нас к удивлению, когда два различных комнатных термометра в одном и том же месте показывают разные значения!

Путь от измеряемой величины к индикатору

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

Для начала я выбираю силу тока!

Мне придется повторить банальность, что для получения цифрового представления аналоговой величины необходим аналогово-цифровой преобразователь (АЦП). Но поскольку сам по себе он нам еще мало пригоден, то понадобятся и другие узлы для завершения всего задуманного. А именно:

  1. перед самим АЦП нужно нормирующее устройство, скажем: нормирующий усилитель или ослабитель, в зависимости от соотношения входной величины к диапазону преобразования АЦП;
  2. декодер после АЦП, для представления преобразованного числового эквивалента в цифровой код соответствующего индикатора.

Существуют готовые микросхемы, объединяющие в себе и АЦП и декодер. Например, ICL7136 или подобные, применяемые в мультиметрах.

По существу, все эти узлы в том или ином виде просто необходимы. Я еще не назвал самого датчика – в данном случае – преобразователь тока в напряжение, или просто шунт.

Итак, пробежимся вкратце по всей цепочке. Ток, протекающий через шунт (мощный резистор с очень низким сопротивлением), создает на его полюсах разность потенциалов. Guten Tag, Herr Ohm! Но эта разность довольно мала и не каждый АЦП способен эту величину в полной мере преобразовать, поэтому сигнал (напряжение) с шунта необходимо усилить до приемлемой величины. Для этого и нужен нормирующий усилитель. Теперь АЦП, получив на вход удобоперевариваемое напряжение, выполнит преобразование с минимально возможной погрешностью. На выходе из него получим число, соответствующее текущему значению измеренного тока в выбранном диапазоне, которое для вывода на индикатор нужно соответствующим образом декодировать. К примеру, преобразовать в код семисегментного индикатора.

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

Конкретика

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

Мой встроенный амперметр собран и запрограммирован на МК Tiny26L. Частью этого амперметра является второй (свободный) ОУ микросхемы LM358, входящей в составбазовой схемы балласта. Т.е. это мой нормирующий усилитель, поскольку максимальное падение напряжения на шунте (5 А х 0,1 ом) составляет всего 0,5 вольта, что явно недостаточно для полного диапазона преобразования с внутренним опорным напряжением.

Согласно Т.О. (англ.= Datasheet) номинальное напряжение встроенного опорного источника (ИОН) составляет 2,56 вольта. Очень удобная величина! Однако, на практике получается не так уж и здорово: выверенное напряжение ИОН-а моего МК оказалось 2,86 вольта! Каким образом я это определил – отдельная тема. Давайте все-таки вернемся к удобным 2,56 вольтам. Смотрите, что получается: на шунте падает максимально 0,5 вольта, АЦП преобразует максимально 2,56 вольта. Напрашивается нормирующий усилитель с коэффициентом усиления 5, тогда и полученное при преобразовании число не потребует какой-либо развитой арифметики для представления результата: 5 ампер = 2,5 вольта = 250 единиц (для 8-битного преобразования). Придется всего лишь умножить результат на два и поставить десятичную точку между сотнями и десятками, чтобы получить совсем удобное представление: единицы, десятые и сотые доли ампера. Конечное преобразование в семисегментные знаки – дело техники. Всё прекрасно, можно воплощать в «железо»!

Однако, как я уже показал на примере встроенного ИОН-а, приемлемой (я уже не говорю – высокой!) точности на используемых компонентах получить так легко не получится. Можно пойти по пути компенсации погрешностей математически, с помощью программы в МК, хотя для этого придется производить градуировку. Этот путь довольно просто реализуется на Си и других языках высокого уровня. Но мне, упертому ассемблерщику, разводить математику инструкциями RISC – лишняя головная боль!

Я выбрал другой путь, — коррекцию коеффициента усиления нормирующего усилителя (НУ). Много для этого не потребуется – один подстроечный резистор! Значение его нужно правильно выбрать, чтобы диапазон подстройки был достаточным, но не преувеличенным.

Подбор элементов нормирующего усилителя

Итак, необходимо определить диапазон подстройки. Первым делом нужно определиться с допусками компонентов. Например, мой шунт имеет допустимую погрешность 1%. Прочие резисторы в схеме нормирующего усилителя могут имеют допуск до10%. И не забываем неточность нашего ИОН-а, которая составила в моем случае почти +12%! Это значит, что реально преобразованное число будет меньше почти на 12%. Но поскольку эта погрешность у меня уже известна, то я учитываю ее в коэффициенте усиления НУ, который должен составить 5,72. А поскольку реальные погрешности прочих компонентов не известны, то остается найти максимально возможную суммарную погрешность, чтобы расчитать диапазон подстройки.

Напрашивается простая сумма этих вот «процентов»: 1% шунта плюс 2 раза по 10% резистороров обратной связи ОУ. Итого: 21%.

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

Как видно, имеет место неинвертирующий усилитель с перестраиваемым коэффициентом передачи, теоретически регулируемым от 4,979 до 6,735 при указанных на схеме номиналах. Но, если учесть наши ±10% возможной погрешности каждого из резисторов, то получим при найхудшем сочетании Ку = 5,864 – 8,009 , что явно превышает необходимый коэффициент! Если это сочетание будет иметь место, то придется взять другие номиналы. А лучше сразу увеличить номинал подстроечного резистора, например, до 39к. Тогда нижняя граница Ку будет 5,454 , что уже приемлемо.

Ну, мне – «настоящему радиохламеру» — пришлось выбирать подстроечник из того, что было, и просто повезло вложиться в диапазон! Был бы подстроечник другого номинала – не беда, пересчитал бы R2 и R3, которые в моем случае имеют допуск 5%, поэтому мне не пришлось брать другой подстроечник.

Преодоление своих недочетов и упущений

Казалось бы, всё продумано и расчитано – разводи плату. А давай-ка испытаем эту конструкцию сперва на макетке! Сказано – сделано! Ку перестраивается не совсем как ожидалось, но в пределах необходимого. Однако индикатор не собирался показывать 0.00 при отсутствии тока нагрузки! Первым делом я заподозрил программу в МК, но при закорачивании входа АЦП на общий провод заветные нолики появлялись. Значит, что-то таки приходит на вход МК, отличное от нуля вольт. Проверка мультиметром подтвердила это предположение и поставила очередную задачу. Не вдаваясь в подробности моих изысканий, опишу лишь их результат.

Причина оказалась в следующем: я совершенно не учел, что примененный мною ОУ далеко не лучшего качества. Он даже не т.н. «rail-to-rail». Это означает, что его выходной потенциал никогда не достигнет ни одного из полюсов питания, т.е. в моем случае никогда не будет равен 0 вольт! Вот если бы он питался от двуполярного источника, тогда бы на выходе получился ожидаемый ноль. Но у меня источник питания однополярный и усложнять схему каким-либо преобразователем я не намеревался. Выход был найден в создании «виртуальной земли», т.е. благодаря отдельному источнику питания (в отличие от базовой схемы) мне удалось с помошью диода сдвинуть потенциал общего провода относительно минусового полюса батареи.

Итак, плата вытравлена и спаяна. Пора бы эту конструкцию упаковать в корпус. Что, собственно, и было сделано. Однако, во время эксплуатации вылез еще один маленький недочет – дрейф входных цепей ОУ. Это выражалось в отрицательном сдвиге показаний, т.е. при токе в пару десятков миллиампер на индикаторе по-прежнему были нули, что меня не устраивало! Я бы допустил сдвиг в несколько мА – все равно единицы миллиампер не отображаются. Пришлось вводить схему смещения на вход НУ.

Номиналы R4 и RZ подобраны так, что бы обеспечить смещение плюс/минус несколько десятков милливольт относительно «виртуальной земли». У меня не было желания переделывать готовую плату и я довесил необходимый подстраиваемый делитель на место подстроечника Ку.

В общем и целом получившийся приборчик удовлетворяет мои потребности. Усовершенствовать его, конечно же, можно еще долго, но пока нет необходимости!

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

Читайте также: