Помогите с датчиком напряжения ZMPT101B!

SkyCatcher
SkyCatcher аватар
Offline
Зарегистрирован: 15.08.2018

Считаю, что, в целях научной работы, достаточно интересно изучить работу готового изделия и сопутствующего софта. Сделать свои выводы о плюсах и минусах выбранной схемотехники и элементной базы, алгоритмов обработки сигнала и экономической обоснованности этого выбора в разрезе серийного производства :)
Ещё интереснее было бы прикрутить к такой системе подходящий способ взаимодействия с "внешним миром". Вывод параметров по любому доступному протоколу : rs485, радиоканал, локальный или глобальный сервер по WiFi (что для меня будет вторым этапом проекта).

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

b707
Offline
Зарегистрирован: 26.05.2017

Керил  и SkyCatcher

Читаю вас и меня не оставляет ощущение, что вы каких-то чудес напридумывали себе об этом датчике. Как по мне - он простой. как электролампочка.

Может я и не прав... но какая там научная работа???

SkyCatcher
SkyCatcher аватар
Offline
Зарегистрирован: 15.08.2018

Ок, в рамках расширенной лабораторной работы :)

SkyCatcher
SkyCatcher аватар
Offline
Зарегистрирован: 15.08.2018

b707,
Не пытался разобраться с калибровкой по фазе? Как это могло бы выглядеть пошагово?

b707
Offline
Зарегистрирован: 26.05.2017

SkyCatcher пишет:
b707, Не пытался разобраться с калибровкой по фазе? Как это могло бы выглядеть пошагово?

нет, не пытался.

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

 

 

Керил
Offline
Зарегистрирован: 10.03.2018

Как вы считаете, на какой платформе можно реализовать устройство, подобное реле напряжения? Может ардуино не лучший выбор или можно использовать другой какой то датчик или обычный трансформатор для повышения точности и скорости работы?

Керил
Offline
Зарегистрирован: 10.03.2018

Мне пока не понятно, как всетаки пошагово колибровать его, но сигнал могу попытаться снять осциллографом. Правильно ли я понял, что снимать сигнал нужно переменный между контактами OUT и GND?  А между контактами VCC и GND будет постоянный сигнал в 5В?

SkyCatcher
SkyCatcher аватар
Offline
Зарегистрирован: 15.08.2018

На VCC и GND нужно подавать питание 5 В, причём максимально стабилизированое, от этого прямо зависит точность измерений. Снимать сигнал с Out и GND

b707
Offline
Зарегистрирован: 26.05.2017

Керил пишет:

Мне пока не понятно, как всетаки пошагово колибровать его, но сигнал могу попытаться снять осциллографом.

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

Nikita13
Offline
Зарегистрирован: 09.10.2017
#include "EmonLib.h"            
EnergyMonitor emon1;
   
void setup()
{  
  Serial.begin(115200);

  emon1.voltage(4, 510, 1.7);
}  

void loop()
{
   emon1.calcVI(20,100);
   float supplyVoltage   = emon1.Vrms;
   Serial.print(emon1.Vrms);
   Serial.println("");
  
}       

 

Nikita13
Offline
Зарегистрирован: 09.10.2017

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

dired
Offline
Зарегистрирован: 22.09.2019

SkyCatcher пишет:
Ребята, привет. Тоже планирую использовать этот датчик в приборе простого мониторинга трехфазных установок. Нашёл инфо по нему, на выходе он имеет нормализованную синусоиду с постоянной составляющей (VCC/2), т. е. оба полупериода смещены в положительный квадрант, в диапазон от 0 до VCC. Подстроечником изменяется амплитуда синусоиды. Таким образом, изначально грубо можно подсчитать поправочный коэффициент (Uвх / Uвых). А дальше уже калибровать, изменяя коэфф. Подстроечник стоит дешевый, термостабилизации, судя по доступным снимкам девайса, нет. Соответственно, корректно он будет работать только в "тепличных условиях". В данный момент пока что жду посылку из шанхая :) кста... датчик здорово просел в цене. Нашёл на али, поиском по названию, ценник 82 руб. Как получу, потестирую, отпишусь

Добрый день.

Интересен Ваш проект, есть успехи ? 

anshor
anshor аватар
Offline
Зарегистрирован: 21.06.2016

А у кого нибудь получилось подключить 3 датчика?

-NMi-
Offline
Зарегистрирован: 20.08.2018

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

Вопрос: а транс отдельно от этого датчика не продаётся???

anshor
anshor аватар
Offline
Зарегистрирован: 21.06.2016

да продается на али видел.

int i;
float a;
float b;
float c;

#include "EmonLib.h"            
EnergyMonitor emon1;
  
void setup()
{  
  Serial.begin(9600);
    i =0;
}  

void loop()
{   emon1.voltage(i, 510, 1.7);   
  emon1.calcVI(20,100);
         
    for (i = 0; i <3; i++)
       { if (i== 0) { a  = emon1.Vrms;}
         if (i== 1) { b  = emon1.Vrms;}
         if (i== 2) { c  = emon1.Vrms;}
 Serial.print("A = "); Serial.print(a); Serial.print("   B= "); Serial.print(b); Serial.print("  C= "); Serial.println(c);
       }
  } 

не работает

-NMi-
Offline
Зарегистрирован: 20.08.2018

Нахрена так глупо-то???  Подключи каждый датчик к отдельному аналоговому входу и опрашивай эти входы НАПРЯМУЮ, без всяких библиотек. Чо сложного-то??? нипанимайу.

 

Да, ссылко на транс хде???

anshor
anshor аватар
Offline
Зарегистрирован: 21.06.2016

Так глупо потому что на выходе датчика синус, такой же как и на входе, только в амплитуде 5 вольт. Или я что то не понимаю?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Ну да, на выходе синус с постоянной составляющей = 1/2 питания + размах по потенциометру. Итого да, ~5В. ИЧо???

Да, трансы нашёл. Заказал. пока тя ждёшь НГ китайский наступит )_))

anshor
anshor аватар
Offline
Зарегистрирован: 21.06.2016

Научи если умеешь, без библиотеки правильно прочитать синус?

b707
Offline
Зарегистрирован: 26.05.2017

Anshor, а где в вашем коде 3 датчика? На каждый датчик нужен свой обьект Energymonitor, а вы пытаетесь все в один запихать.

anshor
anshor аватар
Offline
Зарегистрирован: 21.06.2016

да в один, но по очереди. Пробовал создавать 3 объекта то же не работает. Надо еще попытаться.

b707
Offline
Зарегистрирован: 26.05.2017

anshor пишет:

да в один, но по очереди. Пробовал создавать 3 объекта то же не работает. Надо еще попытаться.

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

при это регистрация на сайте более 3х лет... Чудеса.

-NMi-
Offline
Зарегистрирован: 20.08.2018

anshor пишет:

Научи если умеешь, без библиотеки правильно прочитать синус?

Ну без библиотеки скорее всего не получится, у меня в планах заменить её на функцию, что в принципе тоже и будет являться библиотекой. В протеусе прикинул транс, можно посчитать ZC, Hz и напругу в сети 220В. А если последовательно с шунтом (шунт параллельно трансу) зацепить в силовую часть схемы - я получаю тр-р тока, т.е. шо мне и нужно, ибо P=U*I. Наверно для переменки это не совсем так, но там посмотрю, вслучечО формулу можно и подправить. По итогу из двух трансов я получаю то, шо мне нужно: ZC, Hz, напругу и ток в 220В плюс мощность потребления и это за ~200р. Лепота, жду железяки.   )_))

nik182
Offline
Зарегистрирован: 04.05.2015

SkyCatcher пишет:
На VCC и GND нужно подавать питание 5 В, причём максимально стабилизированое, от этого прямо зависит точность измерений. Снимать сигнал с Out и GND

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

SLKH
Offline
Зарегистрирован: 17.08.2015

-NMi- пишет:

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

Вопрос: а транс отдельно от этого датчика не продаётся???

Продается. Цена почти такая же, как и у модуля (транс+ОУ+обвязка).

-NMi-
Offline
Зарегистрирован: 20.08.2018

SLKH пишет:

Продается. Цена почти такая же, как и у модуля (транс+ОУ+обвязка).

Уже заказал, ждёмС.  ОУ + сопли там нафиг не упали. Я "подсмотрел" у братьев наших очень классное и простое решение вообще с тремя резисторами и двумя диодами. Знающие люди ещё утверждают, что в режиме ZC транс вносит небольшие фазовые искажения, но они легко "правятся" софтварно. Кстати, мож кто знает, где в протеусе в модели трансформатора можно "покрутить" эти самые фазовые искажения??? Я нинашёл там такой "крутилки" )))

nik182
Offline
Зарегистрирован: 04.05.2015

Фазовое искажение в мануале на трансформатор 29 минут. Почти половина градуса. Оно кому то надо на 50 Гц?

-NMi-
Offline
Зарегистрирован: 20.08.2018

nik182 пишет:

Оно кому то надо на 50 Гц?

Мне "чуть-чуть" нужно, буду ШИМить нагрузку в 1.5-3 кВт.

nik182
Offline
Зарегистрирован: 04.05.2015

На ШИМ это вообще не влияет. Влияет на фазовый метод. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Ну дык Дет и подсказал мосфетом рулить. Всё-равно у меня ZC на Int0 аппаратно задействован. Если не получится так как я хочу, буду Деда спрашивать, как лучше. Ща вот железки все придут - начну "издеваться" над софтом.

bogdik
Offline
Зарегистрирован: 12.02.2020

Я понимаю что у меня датчик не с Ардуино но все же может вам поможет https://github.com/bogdik/NodeMCU-ZMPT101b

Так же советую изучить http://www.arpnjournals.org/jeas/research_papers/rp_2017/jeas_0217_5728.pdf

Qaazaaq
Offline
Зарегистрирован: 30.11.2016

В продолжении темы, может кто подсказать, использую библиотеку Emonlib меряю напряжение на каждой фазе в трехфазке. Без нагрузок откалибровал и всё идеально показывает напряжение. Но только стоит подключить нагрузку и напряжение растет по показаниям в esp32. Чем больше нагрузка тем больше повышается показание на соответствующей фазе. Уже всю голову поломал, Zmpt101b припаяна практически на esp32.

Выручите плиииииз.