Библиотека EmonLib используется для работы с датчиками тока и напряжения, например, с датчиком SCT-013.
Ссылки на скачивание: EmonLib — ZIP-архив GitHub
Описание библиотеки Emonlib
#include "EmonLib.h"
Подключение файла библиотеки EmonLib.
EnergyMonitor emon1;
Создание экземпляра объекта EnergyMonitor для работы с датчиками.
void voltage(unsigned int _inPinV, double _VCAL, double _PHASECAL);
Настройка датчика напряжения. Передаваемые параметры:
- _inPinV — контакт arduino, к которому подключен датчик напряжения;
- _VCAL — калибровочный коэффициент, поправка при расчете напряжения;
- _PHASECAL — калибровочный коэффициент смещения фазы.
void current(unsigned int _inPinI, double _ICAL);
Настройка датчика тока. Передаваемые параметры:
- _inPinI — контакт arduino, к которому подключен датчик тока;
- _ICAL — калибровочный коэффициент, поправка при расчете тока.
void calcVI(unsigned int crossings, unsigned int timeout);
Рассчитывает активную мощность realPower, полную мощность apparentPower, коэффициент мощности powerFactor, напряжение Vrms и ток Irms. Должны быть подключены два датчика: напряжения и тока. Передаваемые параметры:
- crossings — количество полуволн синусоиды, на протяжении которых будут проводиться измерения;
- timeout — ожидание между измерениями.
double calcIrms(unsigned int NUMBER_OF_SAMPLES);
Вычисляет значение тока. Должен быть подключен датчик тока. Передаваемые параметры:
- NUMBER_OF_SAMPLES — число выборок для усреднения при измерении тока.
void serialprint();
Выводит в порт значения активной мощности realPower, полной мощности apparentPower, напряжения Vrms, тока Irms, коэффициента мощности powerFactor.