Представленный в статье ваттметр переменного тока позволяет измерять следующие параметры:
1. Действующее значение напряжения
2. Действующее значение тока
3. Активная мощность
4. Полная мощность
5. Коэффициент мощности
6. Среднюю мощность нагрузки (см. ниже)
Возможности и особенности данной реализации:
1. Измеряемый диапазон мощностей для повышения точности разбит на два диапазона, при этом переключение между ними происходит автоматически.
2. Для улучшения читабельности и упрощения снятия показаний реализованы два варианта отображения информации (на фото ниже)
3. Прибор позволяет определять выход напряжения и тока за установленные границы и управлять нагрузкой на основании этой информации.
4. Прибор также измеряет мощность за период, таким образом можно определить реальное потребление устройств с переменной мощностью (холодильник, утюг, компьютер).
Фото
Активная мощность. Ток. Напряжение.

То же и Полная мощность. Коэффициент мощности. Средняя мощность за период измерения.

Методика измерения:
Существует прекрасная статья Олега Артамонова https://www.fcenter.ru/online.shtml?articles/hardware/tower/6484
Именно в соответствии с ней (и с теорией) и построена программа.
Схема:
Построена на общедоступных компонентах и легка к повторению.

БП — любой блок питания на 5В с небольшими пульсациями.
Усилитель — LM2904 или подобный
Подстроечники Р1 и Р2 — многооборотные
Шунт Rш собран из резисторов 0,1 Ом 2Вт, соединенных параллельно. Выбирается из расчета примерно 1 резистор на 1 кВт максимальной измеряемой мощности. На плате есть место под 10шт. У меня установлено 4, примерно на 4 кВт.
ATMega8 сконфигурирована на работу от внутреннего генератора, 8МГц.
Внешний вид:
Обратите внимание на опторазвязку в левом верхнем углу.

Печатная плата:

Обратите внимание: не все элементы печатной платы использованы. В текущей версии нет необходимости в кварце с его обвязкой, кнопке К2 (рядом с К1, не обозначена).
В правом углу размещена опторазвязка, но я рекомендую сделать ее в виде отдельного устройства. Пригодится.
Настройка и работа схемы:
Внимание: схема находится под сетевым напряжением. Прошивку МК производить при отключенном напряжении, запитывать через программатор! Выход UART подключать лишь через опторазвязку!
Настройка делится на два этапа.
Этап 1. Настройка точки нуля.
— Зажать кнопку и включить прибор. Отпустить кнопку.
— На экране появится изображение вида:

Это значения напряжения и тока по шкале 0..1023.
Слева-направо: минимум за период, максимум за период, среднее.
С помощью подстроечников Р1 и Р2 выставляем среднее в 511.
Проверяем наличие запаса сверху и снизу от минимума и максимума.
Число после # обозначает количество семплов, взятых за период. Это число должно быть несколько менее 200.
Этап 2. Калибровка.
— Подключить переходник UART-USB. К примеру такой:

через опторазвязку. Ее плата находится в файле вместе с основной платой, на соседней вкладке.
— Запустить программу-терминал на скорости 4800.
— Подключить образцовые вольтметр и амперметр и активную нагрузку, к примеру 100Вт.
— Подключить прибор к сети. Во время загрузки, на изображении «термометра» зажать К1 и не отпускать до достижения «термометром» края экрана. На экране появится надпись (setup) .
— В терминале должно появится изображение вида:

Это диалоговое окно. Сохранение нового значения осуществляется так:
(пункт) (Enter) (значение) (Enter)
Расшифровка пунктов:
1, Константа для напряжения
2. Константа для тока 1 диапазона
3. Константа для тока 2 диапазона
4. Количество периодов измерения. Влияет на частоту обновления информации.
5,6,7 Установки для управления нагрузкой (предохранитель). Выходы управления LED1, LED2.
8. Управление выводом в терминал. См. ниже.
0. Выход
Для калибровки составить пропорцию вида: Х=(записанная константа)*(образцовое напряжение)/(отображаемое напряжение)
Записать в память. При необходимости повторить.
Повторить для тока, далее поменять нагрузку для попадания во второй диапазон (скажем 1000Вт) и ещё раз повторить.
Все, можно пользоваться.
Прочее:
1. В правом верхнем углу расположен индикатор. Его мигание подтверждает работоспособность устройства.
Точка внутри этого индикатора показывает включенный диапазон: меньше — 1 диапазон, больше — 2 диапазон.
2. Константа Disp, описанная во втором этапе калибровки управляет режимом вывода данных в терминал.
Disp=0 Ничего не выводится.
Disp=1 Дублирование данных дисплея в терминал:

Disp=2 Режим «осциллограф». В этом режиме сохраненные данные измерений мгновенных значений напряжения и тока выводятся в терминал, где их можно скопировать (к примеру) в Excel, проверить на адекватность, да и просто использовать для изучения формы тока и напряжения в сети. Файл-пример приложен к статье.
3. Фьюзы:

4. В рабочем режиме кнопка K1 переключает режимы отображения на дисплее.
Вот и все. Буду рад отзывам.

Скачать список элементов (PDF)
Прикрепленные файлы:
- PowerMeter14.bas (11 Кб)
- PowerMeter14.hex (20 Кб)
- data.xls (37 Кб)
- powermeter.lay (177 Кб)