Трансформатор тока (ТТ) всегда работает в режиме близком к КЗ вторички. Поэтому должен быть нагружен сопротивлением не более чем приведено в даташите. При КЗ в первичке ток во вторичке поднимается не так радикально, ТТ просто мощности не хватит. Выпрямитель в вторичку ТТ надо осторожно рассматривать, как правило напряжения с ТТ снимаются маленькие, падение напряжения на диодах сильно портить будет. Просто делитель на номиналах в десяток КОм решит согласование с АЦП МК. Отрицательные полуволны и броски тока при КЗ ограничатся за счет тока в пин.
Для трансформатора тока, в варианте измерения тока , входящего в дом, первичной обмоткой является сам провод фазы. На него одевается вторичная обмотка в виде катушки. Сейчас рассматриваю именно катушку , а не магнитопровод с обмоткой и датчиком Холла в разрые магнитопровода, вроде WCS1800 ( есть готовые сборки на этом модуле , но не нашёл их тестов/описаний).
Напряжение/ток во вторичной обмотке зависит от количества витков и сечения провода. Допустимое напряжение от изоляции проводов.
Изначально , я взял SCT-013-000 YHDC 30A , на корпусе написано 30А/1В т.е. на встроенном резисторе ( там внутри резистор и диод ), при токе проводника, на который повешен датчик, выход будет 1В (наверное , считается от нуля и амплитуда может быть 2В). Для выпрямления, такое напряжение мало.Т.е. число витков катушки мало.
У ZMCT103C витков , как понимаю, больше и на 5А проходящей через отверстие датчика, уже идёт 5В на выходе, нагруженном на резистор. Я снял резистор с выходов катушки, подключил диодный мост с конденсатором и уже к нему подключил нагрузочный резистор. Этим теряется возможность измерения малых проходящих токов, когда диоды выпрямителя ещё не могут открыться , что для моих задач допустимо. Грубо говоря, получился сетевой блок питания на малый ток. Более того, постоянное напряжение легко передать на 10м по проводу, от возможных помех поставить на том конце дроссель и резистивный делитель. В теории, всё должно нормально работать.
Что на практике, пока не знаю т.к. лишний раз переделывать щиток не хочется ,да и нагрузки 25А у меня пока нет.
Почему может выйти из строя катушка, намотанная вокруг провода фазы.
1. Без нагрузки ( для этого ставят резистор ) , напряжение холостого хода может сильно вырасти и пробить изоляцию провода катушки.
2. Если число витков катушки велико и с неё снимается ток больше допустимого, катушка может перегреться.
Мне понравился вариант ZMCT103C / DL-CT08CL5-20A/10mA с последующим выпрямлением и нагрузкой на резистивный делитель. Это позволит передать по витой паре 15-25В на нужные мне 10м, на том конце разделить и подать на АЦП.
откуда вы там собрались найти 15-25В, переведя ТТ в режим ТН?
зачем в витой паре 15-25В? витая пара это согласованная линия на 110 Ом
откуда вы там собрались найти 15-25В, переведя ТТ в режим ТН?
зачем в витой паре 15-25В? витая пара это согласованная линия на 110 Ом
Да. И напряжение будет зависеть от тока в проводе фазы. Эту зависимость можно откалибровать и по ней оценивать пороговое значение тока для отключения и , с какой-то точностью, измерять ток меньше порогового.
25В получилось из эксперимента с ZMCT103C , нагруженной на выпрямитель из обычных выпрямительных диодов, конденсатор и резистор. Экспериментально получилось 1В напряжения на 1А измеряемого тока. На 25А будет 25В на этой катушке. DL-CT08CL5-20A/10mA пока нет, с ней может меньше получиться.
Витая пара - это 8 медных жил в общем кабеле, попарно сплетённые, что снижает восприимчивость к наводками. Удобно и не дорого. В одном из вариантов схемы умного дома, собираюсь пускать по ней 9В питания от перепаянного коммутатора к Ардуинам по 2м свободным парам.
про трансформатор тока все сплошная ошибка, ТТ на ток выдает ТОК, а не напряжение, и потому так и называется.
Хорошо. Пусть называется. Что мне мешает, с катушки снять ток и преобразовать его в напряжение? АЦП по-любому напряжение измеряет и оцифровывает. С катушки трансформатора тока это преобразование идёт так или иначе.
Сколько еще человек вам должно написать, чтобы вы поняли, что нельзя ставить произвольную нагрузку ТТ.
Откройте даташит на любой ТТ и там прописано, при какой нагрузке верны его параметры.
ваши 10к отличаются от 50 Ом в ДВЕСТИ раз, машину так заправлять не пробовали? хоть в + хоть в - шикарный результат гарантирован.
Почему нельзя? Точность снизится - мне это допустимо.
Расскажите физический смысл отличия катушки вторичной обмотки на магнитопроводе трансформатора напряжения от катушки вокруг силового провода в трансформаторе тока. Может быть, я действительно не понимаю. И там и там катушка, которая воспринимает электромагнитное поле. И там и там нагружена. Только одна силовая, другая измерительная. На маломощных ТН провод мотают тот-же т.к. выпускается он серийно. Снимаемая мощность задаётся резистором нагрузки, ещё от выпрямительных диодов зависит. Напряжение на катушке не растёт бесконечно и не приводит к пробою. Снимаемая мощность, с той катушкой что экспериментировал, на 5А была 25мВт, на 25А будет 125мВт , перегреваться не должна. Выходное напряжение имеет хорошую зависимость от тока, проходящего по измеряемому проводу.
Расскажите физический смысл отличия катушки вторичной обмотки на магнитопроводе трансформатора напряжения от катушки вокруг силового провода в трансформаторе тока. Может быть, я действительно не понимаю.
самыми простыми словами смысл отличия в том, что постоянная времени L/R у ТТ много больше периода частоты,а у ТН много меньше. где L - это индуктивность обмотки. а R - сопротивление нагрузки.
Про высокое на ненагруженном ТТ вам уже дважды писали, толку - ноль.
Не желаете ни учиться, ни даже просто слушать. но Ваши тараканы - сугубо ваши проблемы.
Читаю про время и ток отключения автомата серии С . При 2х кратном превышении номинала, он сработает через 10 секунд.
Т.е. доли секунды мне могут быть не критичны для отключения нагрузки. Можно поставить SCT-013-000 YHDC 30A с библиотекой производителя и не переживать. Более стандартно , хоть и не так красиво, в сравнении с катушкой ТТ , применяемоей как ТН. Посмотрим на чём остановлюсь.
Расскажите физический смысл отличия катушки вторичной обмотки на магнитопроводе трансформатора напряжения от катушки вокруг силового провода в трансформаторе тока. Может быть, я действительно не понимаю.
самыми простыми словами смысл отличия в том, что постоянная времени L/R у ТТ много больше периода частоты,а у ТН много меньше. где L - это индуктивность обмотки. а R - сопротивление нагрузки.
Про высокое на ненагруженном ТТ вам уже дважды писали, толку - ноль.
Не желаете ни учиться, ни даже просто слушать. но Ваши тараканы - сугубо ваши проблемы.
Думаю, эти цифры вовсе не имеют ничего общего с реальностью.
Во первых - вы не настроили частоту таймера. Вы вычисляете время из расчета, что таймер считает на 16 МГц - но так ли это? В стандартных настройках ардуино частота Таймера1 - 128 или 256 Кгц
В-вторых - и это важнее - вы не проверяете счетчик на переполнение. Например, для 16 Мгц это означает, что счетчик отсчитает примерно 4 мс и обнулится, таким образом у вас нималейшей возможности узнать, занимает ли ваш код 1 мс или 5 мс. или 9мс... во всех случаях вы будете получать только остаток от деления на 4 - то есть 1 мс
Кстати - обратите внимание, про это написано и по той ссылке, откуда вы взяли этот код. И еще там есть информация, что analogRead() занимает примерно 100мкс. Вы в своем коде выполняете сотни считываний, из чело следует что этот код никак не может занимать 700 мкс
Думаю, эти цифры вовсе не имеют ничего общего с реальностью.
Во первых - вы не настроили частоту таймера. Вы вычисляете время из расчета, что таймер считает на 16 МГц - но так ли это? В стандартных настройках ардуино частота Таймера1 - 128 или 256 Кгц
В-вторых - и это важнее - вы не проверяете счетчик на переполнение. Например, для 16 Мгц это означает, что счетчик отсчитает примерно 4 мс и обнулится, таким образом у вас нималейшей возможности узнать, занимает ли ваш код 1 мс или 5 мс. или 9мс... во всех случаях вы будете получать только остаток от деления на 4 - то есть 1 мс
Кстати - обратите внимание, про это написано и по той ссылке, откуда вы взяли этот код. И еще там есть информация, что analogRead() занимает примерно 100мкс. Вы в своем коде выполняете сотни считываний, из чело следует что этот код никак не может занимать 700 мкс
На базе кода из статьи и примера из библиотеки EmonLib
Т.е. справляется за 0.5-1мс , а период 50Гц = 20мс
ну так она справляется с единичным измерением мгновенного значения (достоверность программы сейчас не рассматриваем). ну измерили, что в какой-то произвольный момент ток около 0 - что это нам дает? возможно, через 5 ms там 50А будет.
нужно знать эффективное значение тока, как минимум, за 1 период, а лучше (для исключения ложных срабатываний), за несколько. Так что время будет n*20 ms при самой быстродействующем процессоре.
нужно знать эффективное значение тока, как минимум, за 1 период, а лучше (для исключения ложных срабатываний), за несколько. Так что время будет n*20 ms при самой быстродействующем процессоре.
ну да, из этого следует, что расчет Irms менее чем за 20мс вообще смысла не имеет и поэтому все прикидки ТС полностью неверные
1480 ( параметр в emon1.calcIrms() из библиотеки ) / 80 ( то сколько поставил в измерения ) = 18.5 . 2.9мс *18.5 = 53.65 мс т.е. примерно 2.5-3 периода ( 1с/50= 20мс ) синусоиды в электрической сети.
3 канала emon1.calcIrms(1480) будут работать примерно 180мс т.е. 8-9 периодов сети. Время реакции контроллера может быть 200-250мс + время реакции реле ( не знаю сколько , но щёлкает быстро), в итоге можно уложиться в 0.5с , что сравнимо с временем пусковых токов.
#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance
// определение времени выполнения программного блока Ардуино
void setup()
{
Serial.begin(9600); // инициализируем последовательный порт, скорость 9600
emon1.current(0, 111.1); // Current: input pin, calibration.
}
void loop()
{
unsigned long irms_time = micros();
// ---------- исследуемый программный блок ---------
double Irms = emon1.calcIrms(1480); // Calculate Irms only
// -------------------------------------------------
irms_time = micros() - irms_time;
// вывод на компьютер
Serial.print( irms_time);
Serial.print(" mks ");
Serial.println(Irms);
delay(500);
}
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше. Получается, время реакции , когда 3 датчика на 1 ардуине + время срабатывания механического реле = около 1с. 1 датчик на ардуино + реле , около 0.5с.
Нравится мне когда из домыслов в цифры переходит, чётче и яснее становится.
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше.
Вот именно. А никакие не 700 мкс...
Но мне совершенно непонятно, как вы получаете настолько разные оценки - то у вас 60 мс на 1480 измерений, то 250... Ошибка в 4 раза - это не называется "стало точнее"... будьте аккуратнее с цифрами.
Если почитать документацию к библиотеке Emon - функция calcRms() делает примерно 100 - 110 измерений на один цикл переменного тока. Таким образом, 1480 измерений это примерно 14 -15 циклов, и соответвенно, они должны занимать 20 * 14 - порядка 280 мс.
Кроме того, обратите внимание, что если вы задаете число измерений - а) малое и б) не равное целому числу периодов - ток будет измерен с большой ошибкй. Так что ваше измерение 80 циклов - вообще ни о чем
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше.
Вот именно. А никакие не 700 мкс...
Но мне совершенно непонятно, как вы получаете настолько разные оценки - то у вас 60 мс на 1480 измерений, то 250... Ошибка в 4 раза - это не называется "стало точнее"... будьте аккуратнее с цифрами.
Если почитать документацию к библиотеке Emon - функция calcRms() делает примерно 100 - 110 измерений на один цикл переменного тока. Таким образом, 1480 измерений это примерно 14 -15 циклов, и соответвенно, они должны занимать 20 * 14 - порядка 280 мс.
Кроме того, обратите внимание, что если вы задаете число измерений - а) малое и б) не равное целому числу периодов - ток будет измерен с большой ошибкй. Так что ваше измерение 80 циклов - вообще ни о чем
80 циклов я взял из стабильности отображения времени, из-за переполнения таймера. Больше циклов уже значения времени разнятся. Просто чтобы оценить время выполнения имеющимся способом.
1. Распределённая . На каждой функциональной единице не зависимая Ардуино с экраном, функционирующая самостоятельно.
2. Гибридная, к ардуинам добавляются ethernet ( W5100 / W5500 ) web сервер , центральный сервер на NodeJS опрашивает ардуины , раздаёт команды и красиво отображает в HTML5 .
3. Централизованная. Raspberry pi с расширителями цифровых и аналоговых интерфейсов по i2c ( ардуины или расширители портов ) и 1-wire датчики, реле расположены вблии Raspberry pi , тот же NodeJS для управления/отображения.
C++ почти не знаю, даже что-то простое вызывает трудности, хочется минимизировать и упростить код для Ардуино. Приоретизатор нагрузок сейчас - краеугольный камень в выборе варианта.
C++ почти не знаю, даже что-то простое вызывает трудности, хочется минимизировать и упростить код для Ардуино. Приоретизатор нагрузок сейчас - краеугольный камень в выборе варианта.
не ясно, как от ПН зависит выбор варианта.
Но в целом пп 1, 2, 3 с последним абзацем не сочетается никак. Не зная С++ - как вы собрались осуществлять эти варианты? Минимизировать и упростить код может тот, кто в нем разбирается. У новичков, наоборот, обычно даже самые простые вещи выливаются в сотни и тысячи строк.
1, 2, 3 с последним абзацем не сочетается никак. Не зная С++ - как вы собрались осуществлять эти варианты? Минимизировать и упростить код может тот, кто в нем разбирается. У новичков, наоборот, обычно даже самые простые вещи выливаются в сотни и тысячи строк.
Предлагаю вариант 4 - покупная.
Поэтому Ардуино, а не ESP32. Здесь библиотеки просто работают и куча примеров. Поэтому ethernet, а не RS-485 или 1-wire slave . На ESP32 у меня , без особых усилий заработал web и webcsocket сервер, просто из примеров собрал чуть осмыслив, чтобы скомпоновать код. Но EmonLib выдавала не пойми что и i2c датчик ESP32 не увидела ( возможно я не так что-то сделал), а на Ардуине это заработало сразу.
b707 пишет:
не ясно, как от ПН зависит выбор варианта.
Очень просто. :-)
Если выход с датчика тока ( после выпрямления )идёт 1В на 1А измеряемого тока, я передаю на 10м постоянный ток 5-25В , который не боится помех ( можно и дроссель поставить будет ) , делю резисторами, измеряю на АЦП . Централизованный вариант очень хорошо реализуется, дальше Linux ( Raspberry pi ) и NodeJS + HTML5. Если в щитке стоит Ардуина, мне надо делать web- сервер для отображения, и тогда уже гибридная схема предпочтительна ( в ней экраны надо ставить к ардуинам, а это красивые корпуса, хотя есть варианты и без корпусов ).
Если выход с датчика тока ( после выпрямления )идёт 1В на 1А измеряемого тока, я передаю на 10м постоянный ток 5-25В , который не боится помех ( можно и дроссель поставить будет ) , делю резисторами, измеряю на АЦП . Централизованный вариант очень хорошо реализуется, дальше Linux ( Raspberry pi ) и NodeJS + HTML5. Если в щитке стоит Ардуина, мне надо делать web- сервер для отображения, и тогда уже гибридная схема предпочтительна ( в ней экраны надо ставить к ардуинам, а это красивые корпуса, хотя есть варианты и без корпусов ).
начал писать и потом все стер. Вы же все равно никого не слушаете. На общие темы с вами дискутировать бесполезно.
Только два конкретных замечания.
1. RS485 легче интернета. И для ардуины и для программиста. Вы даже не представляете, насколько.
2. Ардуина Уно-Нано экран, интернет и монитор тока одновременно не потянет. Если выберете этот вариант - берите как минимум Мегу на каждый выносной датчик
Вообще, когда вы года через четыре... соберете более-менее рабочий прототип - вы поймете, почему в фирмах за это берут такие деньги.
начал писать и потом все стер. Вы же все равно никого не слушаете. На общие темы с вами дискутировать бесполезно.
Только два конкретных замечания.
1. RS485 легче интернета. И для ардуины и для программиста. Вы даже не представляете, насколько.
2. Ардуина Уно-Нано экран, интернет и монитор тока одновременно не потянет. Если выберете этот вариант - берите как минимум Мегу на каждый выносной датчик
Вообще, когда вы года через четыре... соберете более-менее рабочий прототип - вы поймете, почему в фирмах за это берут такие деньги.
Дом построил в 2 руки ( одноэтажный каркас 170м2 ) , 3 бака под ТА сварил ( тоже говорили что только профессионалы это могут сделать ), потому , уверенность в своих силах есть. А вот практического опыта нет, а без него на мелочах бывает спотыкаюсь.
Вот например, 5 вольтовая сборка на G3MB-202P ( семисторная сборка на 5В питания и 2А тока ) на 3.3В работает нормально, а сборка на SRD-05VDC ( механическое реле с обвязкой ) от 3.3В не работает. Это вчера попробовал.
Или экранчик 1602 , при работе RS-485 проседает яркость при питании ардуины от USB зарядки 2А . Т.е. такой экранчик уже не поставишь в комнаты со связью ардуин по RS-485 т.к. это незначительное мигание будет раздражать и вызывать впечатление некачественности.
На SCT-013-000 YHDC 30A и EmonLib , вариант с web следующий: по 1 ардуина на фазу ( SCT-013-000 , реле на ТЭНы , отдача показаний по i2c ), 4я ардуино ( приём показаний от 3х фазных ардуин , RTC для ночного тарифа , web-сервер или клиент, что проще будет). Ардуине через http надо отдать показания датчиков ( строка в http ), может быть, получить более точное время раз в сутки. Так вот, сможет ли 1-2-5 раз в секунду делать это? По-идее, да, а что на практике? Подскажите из опыта?
В варианте с подключением Ардуин к серверу через ethernet , получаются стандартные технологии, готовые отлаженные библиотеки, недорогой роутер, топология звезда и всё это уже сделано и отработано, только применить. Только что посмотрел код примера web-клиента , всё не сложно совсем.
RS-485 требует модуль интерфейса на стороне сервера, драйверы, программную реализацию. В компьютер, который будет сервером, надо будет включать USB переходник, который может зависнуть или потерять контакт , его надо будет не задеть, не оторвать провода и прочие сложности, которых нет ( или уже решены ) в ethernet. Получается, в итоге, RS-485 сложнее в моей реализации.
1. Цитата из себя, любимого: "измерения в 3 фазах последовательно дают величину, близкую к секунде." (#27)
2. Если отказаться от чудесной библиотеки, то ардуина измерит токи в трёх фазах за то же самое время, что и в одной. (см. п.3 в том же #27).
Зависит оно только от числа периодов, в которых измеряем токи.
Думал сегодня над алгоритмом как это сделать. Если есть статься об этом, дайте ссылку пожалуйста.
analogRead() работает около работает около 100мкс ( 110мкс из теста с кодом выше ). 180 чтений за 1/50 секунды =20мс , на 3 контакта , по 60 чтений на контакт. Читаем 50-60 раз последовательно 3 канала , результаты заносим в массив, либо сразу ищем максимум и минимум среди значений каждого канала. Вычитаем из максимума минимум, получаем амплитуду, делим на корень из 2 , получаем действенное значение , дальше подбираем поправочный коэффициент и получаем ток. Смотрим что получилось. возможно, берём среднее из нескольких одно-периодных опросов. Это первое что пришло в голову.
Если на одной ардуине и датчики тока, и RTC и управление реле, и web ( клиент или сервер ), всё проще будет в реализации. Нет сейчас ethernet модуля проверить.
это сущая глупость, ток в амперах напряжение в вольтах.
Не надо стремиться передавать напряжение на 10м, помехи в линии зависят от сопротивления нагрузки и согласовании линии, а вовсе не от вольтов сигнала. Эта истерия прекратилась уже давным- давно, когда был похерен RS-232 c его +-15в и ударной дальностью в 10-15м.
Или экранчик 1602 , при работе RS-485 проседает яркость при питании ардуины от USB зарядки 2А . Т.е. такой экранчик уже не поставишь в комнаты со связью ардуин по RS-485
Я вижу Вы никогда не сомневаетесь, что все делаете правильно. И когда "экранчик 1602 , при работе RS-485 проседает яркость" - вы уверены, что это потому что RS485 плохой, а вовсе не потому. что у вас кривые руки. Хотя даю вам 100% , что это все-таки руки, потому для работы экрана 1602 и RS485 более чем достаточно БП в полампера.
Точно так же, когда ЕСП32 не заработал с датчиком тока - вы сразу решили, что проблема в ЕСП, а вовсе не в том, что вы полгный профан в микроконтроллерах и программировании.
И главное, даже когда у вас типа "получается" - нет никакой гарантии что результат хоть чем-то ценен. Как в случае с измерением длительности работы библиотеки Emon сегодня. Взяли код, в котором не понимаете ни буквы, намерили какие-то цифры и даже не подумали хоть как-то прикинуть, похожа ли она на правду?
Так что собрать-то вы может и соберете - и даже наверно быстрее других, потому что делаете тяп-ляп как придется - но вот чем это закончится, дай бог если не пожаром.
Страшусь даже представить, что вы там наварили в своих баках ТА.
То что я профан в контроллерах - да. Совсем недавно начал эксперименты с ними. Нужно ли мне становиться специалистом в них - нет. Более того, мне нужно сделать всё так, чтобы не специалист смог обслуживать мою систему ( как запущу и отлажу систему, выкину микроконтроллеры из головы), потому всё максимально просто, стандартно, логично и прямолинейно.
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того? За счёт индуктивности катушка будет накапливать энергию, за счёт сопротивления провода , сбрасывая её, нагреваться? Пусть. Можно подобрать катушку и снимаемую мощность так, чтобы перегрева не происходило.
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
Пишу это в благодарность за ценные подсказки, которые мне здесь дали, но ни как не в обиду.
Сейчас рабочий вариант : на каждую фазу по SCT-013-000 с библиотекой производителя , BTA41-600B через MOC3041 ( нет понимания о размере радиатора и компоновке в щитке для отвода тепла ), возможно, ещё трансформатор напряжения для измерения напряжения в сети. Включение только ночью, пока не знаю, ставить экранчики, кнопки и RTC на каждую, как-то не очень. Возможно будет просто 0/1 от внешнего управления.
Передача показаний на сервер. Смотрю библиотеку OneWireHub , там есть пример DS18B20_asInterface.ino , вроде не сложно, передают показания разных датчиков как температуру DS18B20 . DS18B20 очень распространён, везде есть простые примеры применения.
Т.е. сейчас централизованный вариант - основной. Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
опять сплошная каша в голове у вас. Процитированное выше - наполовину бред.
Вы, похоже, абсолютно все так в жизни делаете - "я профан и разбираться не собираюсь".
подключить три фазы к одной ардуине мозгов так и не хватило? смирились? А как же "у меня все получается, я бачки для ТА сам сварил"?
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того?
.....
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
имхо, после таких заявлений все, кто вам до того помогал - должны бы послать вас в Ж.
Зачем спрашивать советов, если потом гордо заявлять - а все равно буду делать какмоя левая нога захочет
Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
опять сплошная каша в голове у вас. Процитированное выше - наполовину бред.
Вы, похоже, абсолютно все так в жизни делаете - "я профан и разбираться не собираюсь".
подключить три фазы к одной ардуине мозгов так и не хватило? смирились? А как же "у меня все получается, я бачки для ТА сам сварил"?
Это да. Абревиатуру названия не так написал. По-смыслу всё понятно, а с придирками и агрессией нет.
Raspberry pi в стандарте - SD карта с малым количеством перезаписи.
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того?
.....
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
имхо, после таких заявлений все, кто вам до того помогал - должны бы послать вас в Ж.
Зачем спрашивать советов, если потом гордо заявлять - а все равно буду делать какмоя левая нога захочет
Коллеги, по-моему эта тема - троллинг чистой воды
Слушайте, если у Вас в жизни что-то не удалось, я тут не при чём. И ругаться я ни с кем не хочу, не нужно оно мне.
Коэффициент 0.2743 подобрал для одного из датчиков по выводу EmonLib и ваттметра. Датчики переключал между разными каналами платы с резисторами и конденсаторами , показания без изменений. Возможно датчики немного отличаются, но это решается подбором коэффициентов под каждый датчик. Для моих целей, наверное, то что надо.
NodeJS ( на компьютере запущен ) компьютер и NodeJS по одному wifi , метров 20 до роутера:
var http = require('http');
var url = require('url');
var port = 8082;
var s = http.createServer();
s.on('request', function(request, response) {
response.writeHead(200);
console.log(request.method);
console.log(request.headers);
console.log(request.url);
var url_parts = url.parse(request.url, true);
var qdata = url_parts.query;
console.log(qdata.temp);
console.log(qdata.hum);
let str = "hi , temp+hum: " + qdata.temp + "+" + qdata.hum;
var data = '';
request.on('data', function(chunk) {
data += chunk.toString();
});
request.on('end', function() {
console.log(data);
response.write(str);
response.end();
});
});
s.listen(port);
console.log('Browse to http://127.0.0.1:' + port);
Выдача в консоли ESP32:
Temp: 21.35 C Humidity: 42.37 %
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
hi , temp+hum: 21.35+42.37
37564 mks
Temp: 21.33 C Humidity: 42.32 %
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
hi , temp+hum: 21.33+42.32
40656 mks
Temp: 21.35 C Humidity: 42.33 %
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
hi , temp+hum: 21.35+42.33
29864 mks
Temp: 21.33 C Humidity: 42.35 %
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
hi , temp+hum: 21.33+42.35
25512 mks
Temp: 21.34 C Humidity: 42.42 %
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
hi , temp+hum: 21.34+42.42
35763 mks
Иногда 80мс бывает.
Вяло экспериментирую и думаю как проще и лучше сделать, пока тёплые полы растягиваю. Если отправлять на сервер данные между измерениями тока на фазах ( измерения->реакция -> отправка ), 80мс вполне нормально.
Р.S. Ещё раз повторюсь, что не являюсь специалистом в микроконтроллерах и не хочу им становиться, так-же не хочу здесь ни с кем ругаться. Нет цели сделать оптимальную систему, надо чтобы работало и было просто для моего понимания. Если кому-то нравится самоутверждаться, мне и ладно, мелко это всё.
Датчик тока SCT-013-000 30А , разобрал, внутри плата с диодом и резистором, отпаял их, получился прямой выход катушки датчика на провод. К проводу датчика подключил резистор R1 = 2.2кОм , дальше диодный мост ( входной выпрямитель блока питания телефона ) , к выходу диодного моста электролитический конденсатор C1 = 1мкФх50В ( какой был ) и резистор R2 = 1кОм.
Подключаю нагрузку ( обогреватель , его мощность не ровно, а примерно 500-1000-1500Вт ):
- 500Вт : На R2 постоянное напряжение 0.37В , на R1 переменное напряжение 1.47В , ( Получается, диодный мост съедает 1.1В )
- 1000Вт : На R2 постоянное напряжение 1.05В
- 1500Вт : На R2 постоянное напряжение 1.75В
Получается 0.7В увеличивается напряжение на 500Вт увеличения мощности нагрузки. Подбираем поправочный коэффициент и получаем измеряемый ток.
Дальше взял моток витой пары 20-30м ( какой был ) , подключил 2 жилы к R2 и измерял напряжение на другом конце:
- 500Вт : На R2 постоянное напряжение 0.36В
- 1000Вт : На R2 постоянное напряжение 1.04В
- 1500Вт : На R2 постоянное напряжение 1.75В
Собственно, те мысли, которые здесь называли бредом, подтверждены на практике.
Дальше вопрос: Зачем некоторые "знатоки" писали такое и в такой фореме мне здесь?
Я вижу 2 варианта: 1. Эти люди искренне заблуждаются. 2. Эти люди всё понимают и пытаются превысить себя за счёт новичка ( очень не красиво ).
Похоже на хождение по кругу, как обмотка в трансформаторе))) ТС, не надоело ещё воду фступе перемалывать? До полупроводниковых ДТ , видимо, ваш прогресс ещё не дошёл?
Узнал о существовании удлинителя I2C P82B715 , который на моих расстояниях будет работать.
Сейчас думаю на сколько мне нужно измерять влажность и CO2 по комнатам. Как альтернатива, сделать одну коробочку с экраном и CJMCU-8128 ( CCS811 + SI7021 + BMP280 ) и по ней откалибровать свои ощущения влажности и духоты. Если решу что достаточно только температуру изменять для управления отоплением, думаю отказаться от ds18b20 ( сложности с разводкой 1-wire звездой или пускать петлю, в случае замены датчика, придётся узнавать его адрес, снова вникать и т.д. ) в пользу терморезисторов ( всё очень просто и надёжно ).
Остаётся вопрос в аппаратной части.
- 2 или 3 Ардуино Мега с ethernet ( функциональные ядра ), обмен по http и NodeJS ( html5 с websjcket ) на постоянно включенном компьютере для удобного отображения и настройки.
- Raspberry pi с расширителями цифровых портов и АЦП по i2c . На JavaScript писать гораздо проще чем на C++, выдачу получилось обработать и отобразить через websocket с помощью NodeJS без особых усилий.
Похоже на хождение по кругу, как обмотка в трансформаторе))) ТС, не надоело ещё воду фступе перемалывать? До полупроводниковых ДТ , видимо, ваш прогресс ещё не дошёл?
Приведите пожалуйста пример полупроводникового надёжного датчика на 220В 25А . Возможно есть хорошие варианты за стоимость, сопоставимую с тем что получается на датчике тока в виде катушки.
Хождение по кругу - поиск оптимального варианта. Познаю - пробую - осмысливаю - познаю и т.д.
Тему создал чтобы не делать этого, а применить решение, к которому кто-то пришёл, реализовал и опробовал на практике. Такое мне не подсказали, приходится раскапывать самому.
Реализовывал отслеживание нагрузки на приводах (50гц).
Все элементарно. Трансформатор тока 1:1000 с нагрузочным резистором, через делитель сигнал заводим на аналоговый вход.
Замеры достаточно делать 50раз/сек.
Подстроечный резистором регулируем порог срабатывания.
В электрическом щитке 4 Arduino Nano c CJMCU-758 ( ток ) и ZMPT101B ( напряжение ), 3 фазы и резервный генератор. Экран 2004 i2c .
Управление реле - Arduino Mega.
Датчики температуры DS18B20 через DS2482-800 , управление, алгоритмы работы и web-интерфейс - Raspberry Pi 4 8G .
Для упрощения, связь между ардуинами и распбери идёт по i2c через повторитель P82B715 , расстояние у меня максимум 15м, на 5В должно работать, судя по отзывам.
Принцип работы приоретизатора нагрузок:
Arduino Nano измеряет напряжения с CJMCU-758 и ZMPT101B за 1 период , ищет максимум и минимум , вычисляет ток/напряжение и помещает в переменную. Один из цифровых выходов Nano идёт к Mega, к которой подключены исполнительные реле . Если ток превышен, Nano ( в щитке) устанавливает 0 и Mega ( с исполнительными реле ) , отключает один из 3х ТЭНов на фазе.
Nano ( в щитке ) отвечает на запрос Raspberry током и напряжением своей фазы по i2c . Raspberry анализирует и отдаёт команду Mega как включать или отключать ТЭНы. Т.е. есть быстрая и умная реакции.
Сейчас собрал стенд из 2х SCT-013-000 30A подключенных по стандартной схеме, рекомендованной произовдителем , Arduino Mega , LCD2004 i2c и Raspberry Pi 4 . Жду когда приедет остальное .
Вопрос в том, как передавать данные между Arduino и Raspberry Pi по i2c и обрабатывать их Node JS. Байты одиночные и группами передаются. Но у меня пока не получилось правильно интерпретировать их в Node JS. Задача стандартная, но решения я пока не нашёл. Как это сделать?
Хочу поблагодарить форумчан за подказки по интегрированному датчику тока и за разъяснения по применению трансформатора тока. В трансформаторе тока, при коротком замыкании, 1 период синусоиды ( 1/50 секунды, пока не сработает автомат ), будет большой ток ( по моим оценкам, сопротивление провода от трансформатора до моего щитка около 1Ом, ток около 200А ). Есть катушки на 200/5А , можно как-то сделать и рабочую схему с трансформатором тока в виде трансформатора напряжения, но проще поставить по ардуине на фазу и обойтись стандартными решениями.
Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.
Трансформатор тока (ТТ) всегда работает в режиме близком к КЗ вторички. Поэтому должен быть нагружен сопротивлением не более чем приведено в даташите. При КЗ в первичке ток во вторичке поднимается не так радикально, ТТ просто мощности не хватит. Выпрямитель в вторичку ТТ надо осторожно рассматривать, как правило напряжения с ТТ снимаются маленькие, падение напряжения на диодах сильно портить будет. Просто делитель на номиналах в десяток КОм решит согласование с АЦП МК. Отрицательные полуволны и броски тока при КЗ ограничатся за счет тока в пин.
Мне понравился вариант ZMCT103C / DL-CT08CL5-20A/10mA с последующим выпрямлением и нагрузкой на резистивный делитель. Это позволит передать по витой паре 15-25В на нужные мне 10м, на том конце разделить и подать на АЦП.
откуда вы там собрались найти 15-25В, переведя ТТ в режим ТН?
зачем в витой паре 15-25В? витая пара это согласованная линия на 110 Ом
для выпрямителя желательны такие диоды https://aliexpress.ru/item/32854110199.html
https://static.chipdip.ru/lib/204/DOC000204821.pdf
откуда вы там собрались найти 15-25В, переведя ТТ в режим ТН?
зачем в витой паре 15-25В? витая пара это согласованная линия на 110 Ом
Да. И напряжение будет зависеть от тока в проводе фазы. Эту зависимость можно откалибровать и по ней оценивать пороговое значение тока для отключения и , с какой-то точностью, измерять ток меньше порогового.
25В получилось из эксперимента с ZMCT103C , нагруженной на выпрямитель из обычных выпрямительных диодов, конденсатор и резистор. Экспериментально получилось 1В напряжения на 1А измеряемого тока. На 25А будет 25В на этой катушке. DL-CT08CL5-20A/10mA пока нет, с ней может меньше получиться.
Витая пара - это 8 медных жил в общем кабеле, попарно сплетённые, что снижает восприимчивость к наводками. Удобно и не дорого. В одном из вариантов схемы умного дома, собираюсь пускать по ней 9В питания от перепаянного коммутатора к Ардуинам по 2м свободным парам.
про трансформатор тока все сплошная ошибка, ТТ на ток выдает ТОК, а не напряжение, и потому так и называется.
Хорошо. Пусть называется. Что мне мешает, с катушки снять ток и преобразовать его в напряжение? АЦП по-любому напряжение измеряет и оцифровывает. С катушки трансформатора тока это преобразование идёт так или иначе.
Сколько еще человек вам должно написать, чтобы вы поняли, что нельзя ставить произвольную нагрузку ТТ.
Откройте даташит на любой ТТ и там прописано, при какой нагрузке верны его параметры.
ваши 10к отличаются от 50 Ом в ДВЕСТИ раз, машину так заправлять не пробовали? хоть в + хоть в - шикарный результат гарантирован.
Сколько еще человек вам должно написать, чтобы вы поняли, что нельзя ставить произвольную нагрузку ТТ.
Откройте даташит на любой ТТ и там прописано, при какой нагрузке верны его параметры.
ваши 10к отличаются от 50 Ом в ДВЕСТИ раз, машину так заправлять не пробовали? хоть в + хоть в - шикарный результат гарантирован.
Почему нельзя? Точность снизится - мне это допустимо.
Расскажите физический смысл отличия катушки вторичной обмотки на магнитопроводе трансформатора напряжения от катушки вокруг силового провода в трансформаторе тока. Может быть, я действительно не понимаю. И там и там катушка, которая воспринимает электромагнитное поле. И там и там нагружена. Только одна силовая, другая измерительная. На маломощных ТН провод мотают тот-же т.к. выпускается он серийно. Снимаемая мощность задаётся резистором нагрузки, ещё от выпрямительных диодов зависит. Напряжение на катушке не растёт бесконечно и не приводит к пробою. Снимаемая мощность, с той катушкой что экспериментировал, на 5А была 25мВт, на 25А будет 125мВт , перегреваться не должна. Выходное напряжение имеет хорошую зависимость от тока, проходящего по измеряемому проводу.
Вот такое ещё измеритель тока есть WCS1800 модуль датчика тока холла DC AC Модуль обнаружения 30A серийный выход защита от перегрузки по току , пороговое реле и цифровой выход. Вот не нашёл только описания к нему с тестами.
самыми простыми словами смысл отличия в том, что постоянная времени L/R у ТТ много больше периода частоты,а у ТН много меньше. где L - это индуктивность обмотки. а R - сопротивление нагрузки.
Про высокое на ненагруженном ТТ вам уже дважды писали, толку - ноль.
Не желаете ни учиться, ни даже просто слушать. но Ваши тараканы - сугубо ваши проблемы.
Читаю про время и ток отключения автомата серии С . При 2х кратном превышении номинала, он сработает через 10 секунд.
Т.е. доли секунды мне могут быть не критичны для отключения нагрузки. Можно поставить SCT-013-000 YHDC 30A с библиотекой производителя и не переживать. Более стандартно , хоть и не так красиво, в сравнении с катушкой ТТ , применяемоей как ТН. Посмотрим на чём остановлюсь.
Спасибо за подсказки.
самыми простыми словами смысл отличия в том, что постоянная времени L/R у ТТ много больше периода частоты,а у ТН много меньше. где L - это индуктивность обмотки. а R - сопротивление нагрузки.
Про высокое на ненагруженном ТТ вам уже дважды писали, толку - ноль.
Не желаете ни учиться, ни даже просто слушать. но Ваши тараканы - сугубо ваши проблемы.
Спасибо. Этого я действительно не понял.
Нашёл Измерение времени выполнения функций и команд Ардуино.
На базе кода из статьи и примера из библиотеки EmonLib
Результаты с момента запуска:
Т.е. справляется за 0.5-1мс , а период 50Гц = 20мс
цифры времени однозначно говорят, что в коде ошибка.
Это компьютер, тут не может быть разброса от 750 до 1150 мкс при выполнении однотипных операций.
У вас период времени примерно 1 мс - это означает что никакие пляски с таймером не нужны, воспользуйтесь функцией микрос.
Добавка.
Думаю, эти цифры вовсе не имеют ничего общего с реальностью.
Во первых - вы не настроили частоту таймера. Вы вычисляете время из расчета, что таймер считает на 16 МГц - но так ли это? В стандартных настройках ардуино частота Таймера1 - 128 или 256 Кгц
В-вторых - и это важнее - вы не проверяете счетчик на переполнение. Например, для 16 Мгц это означает, что счетчик отсчитает примерно 4 мс и обнулится, таким образом у вас нималейшей возможности узнать, занимает ли ваш код 1 мс или 5 мс. или 9мс... во всех случаях вы будете получать только остаток от деления на 4 - то есть 1 мс
Кстати - обратите внимание, про это написано и по той ссылке, откуда вы взяли этот код. И еще там есть информация, что analogRead() занимает примерно 100мкс. Вы в своем коде выполняете сотни считываний, из чело следует что этот код никак не может занимать 700 мкс
Добавка.
Думаю, эти цифры вовсе не имеют ничего общего с реальностью.
Во первых - вы не настроили частоту таймера. Вы вычисляете время из расчета, что таймер считает на 16 МГц - но так ли это? В стандартных настройках ардуино частота Таймера1 - 128 или 256 Кгц
В-вторых - и это важнее - вы не проверяете счетчик на переполнение. Например, для 16 Мгц это означает, что счетчик отсчитает примерно 4 мс и обнулится, таким образом у вас нималейшей возможности узнать, занимает ли ваш код 1 мс или 5 мс. или 9мс... во всех случаях вы будете получать только остаток от деления на 4 - то есть 1 мс
Кстати - обратите внимание, про это написано и по той ссылке, откуда вы взяли этот код. И еще там есть информация, что analogRead() занимает примерно 100мкс. Вы в своем коде выполняете сотни считываний, из чело следует что этот код никак не может занимать 700 мкс
Спасибо.
попробуйте вот этот код:
Нашёл Измерение времени выполнения функций и команд Ардуино.
На базе кода из статьи и примера из библиотеки EmonLib
Т.е. справляется за 0.5-1мс , а период 50Гц = 20мс
нужно знать эффективное значение тока, как минимум, за 1 период, а лучше (для исключения ложных срабатываний), за несколько. Так что время будет n*20 ms при самой быстродействующем процессоре.
нужно знать эффективное значение тока, как минимум, за 1 период, а лучше (для исключения ложных срабатываний), за несколько. Так что время будет n*20 ms при самой быстродействующем процессоре.
ну да, из этого следует, что расчет Irms менее чем за 20мс вообще смысла не имеет и поэтому все прикидки ТС полностью неверные
Выдаёт :
1480 ( параметр в emon1.calcIrms() из библиотеки ) / 80 ( то сколько поставил в измерения ) = 18.5 . 2.9мс *18.5 = 53.65 мс т.е. примерно 2.5-3 периода ( 1с/50= 20мс ) синусоиды в электрической сети.
3 канала emon1.calcIrms(1480) будут работать примерно 180мс т.е. 8-9 периодов сети. Время реакции контроллера может быть 200-250мс + время реакции реле ( не знаю сколько , но щёлкает быстро), в итоге можно уложиться в 0.5с , что сравнимо с временем пусковых токов.
попробуйте вот этот код:
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше. Получается, время реакции , когда 3 датчика на 1 ардуине + время срабатывания механического реле = около 1с. 1 датчик на ардуино + реле , около 0.5с.
Нравится мне когда из домыслов в цифры переходит, чётче и яснее становится.
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше.
Вот именно. А никакие не 700 мкс...
Но мне совершенно непонятно, как вы получаете настолько разные оценки - то у вас 60 мс на 1480 измерений, то 250... Ошибка в 4 раза - это не называется "стало точнее"... будьте аккуратнее с цифрами.
Если почитать документацию к библиотеке Emon - функция calcRms() делает примерно 100 - 110 измерений на один цикл переменного тока. Таким образом, 1480 измерений это примерно 14 -15 циклов, и соответвенно, они должны занимать 20 * 14 - порядка 280 мс.
Кроме того, обратите внимание, что если вы задаете число измерений - а) малое и б) не равное целому числу периодов - ток будет измерен с большой ошибкй. Так что ваше измерение 80 циклов - вообще ни о чем
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах. И это точнее чем то что я примерно-приблизительно в посте выше.
Вот именно. А никакие не 700 мкс...
Но мне совершенно непонятно, как вы получаете настолько разные оценки - то у вас 60 мс на 1480 измерений, то 250... Ошибка в 4 раза - это не называется "стало точнее"... будьте аккуратнее с цифрами.
Если почитать документацию к библиотеке Emon - функция calcRms() делает примерно 100 - 110 измерений на один цикл переменного тока. Таким образом, 1480 измерений это примерно 14 -15 циклов, и соответвенно, они должны занимать 20 * 14 - порядка 280 мс.
Кроме того, обратите внимание, что если вы задаете число измерений - а) малое и б) не равное целому числу периодов - ток будет измерен с большой ошибкй. Так что ваше измерение 80 циклов - вообще ни о чем
80 циклов я взял из стабильности отображения времени, из-за переполнения таймера. Больше циклов уже значения времени разнятся. Просто чтобы оценить время выполнения имеющимся способом.
не ясно, как от ПН зависит выбор варианта.
Но в целом пп 1, 2, 3 с последним абзацем не сочетается никак. Не зная С++ - как вы собрались осуществлять эти варианты? Минимизировать и упростить код может тот, кто в нем разбирается. У новичков, наоборот, обычно даже самые простые вещи выливаются в сотни и тысячи строк.
1, 2, 3 с последним абзацем не сочетается никак. Не зная С++ - как вы собрались осуществлять эти варианты? Минимизировать и упростить код может тот, кто в нем разбирается. У новичков, наоборот, обычно даже самые простые вещи выливаются в сотни и тысячи строк.
Предлагаю вариант 4 - покупная.
Поэтому Ардуино, а не ESP32. Здесь библиотеки просто работают и куча примеров. Поэтому ethernet, а не RS-485 или 1-wire slave . На ESP32 у меня , без особых усилий заработал web и webcsocket сервер, просто из примеров собрал чуть осмыслив, чтобы скомпоновать код. Но EmonLib выдавала не пойми что и i2c датчик ESP32 не увидела ( возможно я не так что-то сделал), а на Ардуине это заработало сразу.
не ясно, как от ПН зависит выбор варианта.
Очень просто. :-)
Если выход с датчика тока ( после выпрямления )идёт 1В на 1А измеряемого тока, я передаю на 10м постоянный ток 5-25В , который не боится помех ( можно и дроссель поставить будет ) , делю резисторами, измеряю на АЦП . Централизованный вариант очень хорошо реализуется, дальше Linux ( Raspberry pi ) и NodeJS + HTML5. Если в щитке стоит Ардуина, мне надо делать web- сервер для отображения, и тогда уже гибридная схема предпочтительна ( в ней экраны надо ставить к ардуинам, а это красивые корпуса, хотя есть варианты и без корпусов ).
не ясно, как от ПН зависит выбор варианта.
Очень просто. :-)
Если выход с датчика тока ( после выпрямления )идёт 1В на 1А измеряемого тока, я передаю на 10м постоянный ток 5-25В , который не боится помех ( можно и дроссель поставить будет ) , делю резисторами, измеряю на АЦП . Централизованный вариант очень хорошо реализуется, дальше Linux ( Raspberry pi ) и NodeJS + HTML5. Если в щитке стоит Ардуина, мне надо делать web- сервер для отображения, и тогда уже гибридная схема предпочтительна ( в ней экраны надо ставить к ардуинам, а это красивые корпуса, хотя есть варианты и без корпусов ).
начал писать и потом все стер. Вы же все равно никого не слушаете. На общие темы с вами дискутировать бесполезно.
Только два конкретных замечания.
1. RS485 легче интернета. И для ардуины и для программиста. Вы даже не представляете, насколько.
2. Ардуина Уно-Нано экран, интернет и монитор тока одновременно не потянет. Если выберете этот вариант - берите как минимум Мегу на каждый выносной датчик
Вообще, когда вы года через четыре... соберете более-менее рабочий прототип - вы поймете, почему в фирмах за это берут такие деньги.
начал писать и потом все стер. Вы же все равно никого не слушаете. На общие темы с вами дискутировать бесполезно.
Только два конкретных замечания.
1. RS485 легче интернета. И для ардуины и для программиста. Вы даже не представляете, насколько.
2. Ардуина Уно-Нано экран, интернет и монитор тока одновременно не потянет. Если выберете этот вариант - берите как минимум Мегу на каждый выносной датчик
Вообще, когда вы года через четыре... соберете более-менее рабочий прототип - вы поймете, почему в фирмах за это берут такие деньги.
Дом построил в 2 руки ( одноэтажный каркас 170м2 ) , 3 бака под ТА сварил ( тоже говорили что только профессионалы это могут сделать ), потому , уверенность в своих силах есть. А вот практического опыта нет, а без него на мелочах бывает спотыкаюсь.
Вот например, 5 вольтовая сборка на G3MB-202P ( семисторная сборка на 5В питания и 2А тока ) на 3.3В работает нормально, а сборка на SRD-05VDC ( механическое реле с обвязкой ) от 3.3В не работает. Это вчера попробовал.
Или экранчик 1602 , при работе RS-485 проседает яркость при питании ардуины от USB зарядки 2А . Т.е. такой экранчик уже не поставишь в комнаты со связью ардуин по RS-485 т.к. это незначительное мигание будет раздражать и вызывать впечатление некачественности.
На SCT-013-000 YHDC 30A и EmonLib , вариант с web следующий: по 1 ардуина на фазу ( SCT-013-000 , реле на ТЭНы , отдача показаний по i2c ), 4я ардуино ( приём показаний от 3х фазных ардуин , RTC для ночного тарифа , web-сервер или клиент, что проще будет). Ардуине через http надо отдать показания датчиков ( строка в http ), может быть, получить более точное время раз в сутки. Так вот, сможет ли 1-2-5 раз в секунду делать это? По-идее, да, а что на практике? Подскажите из опыта?
В варианте с подключением Ардуин к серверу через ethernet , получаются стандартные технологии, готовые отлаженные библиотеки, недорогой роутер, топология звезда и всё это уже сделано и отработано, только применить. Только что посмотрел код примера web-клиента , всё не сложно совсем.
RS-485 требует модуль интерфейса на стороне сервера, драйверы, программную реализацию. В компьютер, который будет сервером, надо будет включать USB переходник, который может зависнуть или потерять контакт , его надо будет не задеть, не оторвать провода и прочие сложности, которых нет ( или уже решены ) в ethernet. Получается, в итоге, RS-485 сложнее в моей реализации.
попробуйте вот этот код:
Спасибо. Выдаёт 250мс на 1 канале, 750мс на 3х каналах.
1. Цитата из себя, любимого: "измерения в 3 фазах последовательно дают величину, близкую к секунде." (#27)
2. Если отказаться от чудесной библиотеки, то ардуина измерит токи в трёх фазах за то же самое время, что и в одной. (см. п.3 в том же #27).
Зависит оно только от числа периодов, в которых измеряем токи.
1. Цитата из себя, любимого: "измерения в 3 фазах последовательно дают величину, близкую к секунде." (#27)
2. Если отказаться от чудесной библиотеки, то ардуина измерит токи в трёх фазах за то же самое время, что и в одной. (см. п.3 в том же #27).
Зависит оно только от числа периодов, в которых измеряем токи.
Думал сегодня над алгоритмом как это сделать. Если есть статься об этом, дайте ссылку пожалуйста.
analogRead() работает около работает около 100мкс ( 110мкс из теста с кодом выше ). 180 чтений за 1/50 секунды =20мс , на 3 контакта , по 60 чтений на контакт. Читаем 50-60 раз последовательно 3 канала , результаты заносим в массив, либо сразу ищем максимум и минимум среди значений каждого канала. Вычитаем из максимума минимум, получаем амплитуду, делим на корень из 2 , получаем действенное значение , дальше подбираем поправочный коэффициент и получаем ток. Смотрим что получилось. возможно, берём среднее из нескольких одно-периодных опросов. Это первое что пришло в голову.
Если на одной ардуине и датчики тока, и RTC и управление реле, и web ( клиент или сервер ), всё проще будет в реализации. Нет сейчас ethernet модуля проверить.
... я передаю на 10м постоянный ток 5-25В ...
это сущая глупость, ток в амперах напряжение в вольтах.
Не надо стремиться передавать напряжение на 10м, помехи в линии зависят от сопротивления нагрузки и согласовании линии, а вовсе не от вольтов сигнала. Эта истерия прекратилась уже давным- давно, когда был похерен RS-232 c его +-15в и ударной дальностью в 10-15м.
Или экранчик 1602 , при работе RS-485 проседает яркость при питании ардуины от USB зарядки 2А . Т.е. такой экранчик уже не поставишь в комнаты со связью ардуин по RS-485
Я вижу Вы никогда не сомневаетесь, что все делаете правильно. И когда "экранчик 1602 , при работе RS-485 проседает яркость" - вы уверены, что это потому что RS485 плохой, а вовсе не потому. что у вас кривые руки. Хотя даю вам 100% , что это все-таки руки, потому для работы экрана 1602 и RS485 более чем достаточно БП в полампера.
Точно так же, когда ЕСП32 не заработал с датчиком тока - вы сразу решили, что проблема в ЕСП, а вовсе не в том, что вы полгный профан в микроконтроллерах и программировании.
И главное, даже когда у вас типа "получается" - нет никакой гарантии что результат хоть чем-то ценен. Как в случае с измерением длительности работы библиотеки Emon сегодня. Взяли код, в котором не понимаете ни буквы, намерили какие-то цифры и даже не подумали хоть как-то прикинуть, похожа ли она на правду?
Так что собрать-то вы может и соберете - и даже наверно быстрее других, потому что делаете тяп-ляп как придется - но вот чем это закончится, дай бог если не пожаром.
Страшусь даже представить, что вы там наварили в своих баках ТА.
То что я профан в контроллерах - да. Совсем недавно начал эксперименты с ними. Нужно ли мне становиться специалистом в них - нет. Более того, мне нужно сделать всё так, чтобы не специалист смог обслуживать мою систему ( как запущу и отлажу систему, выкину микроконтроллеры из головы), потому всё максимально просто, стандартно, логично и прямолинейно.
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того? За счёт индуктивности катушка будет накапливать энергию, за счёт сопротивления провода , сбрасывая её, нагреваться? Пусть. Можно подобрать катушку и снимаемую мощность так, чтобы перегрева не происходило.
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
Пишу это в благодарность за ценные подсказки, которые мне здесь дали, но ни как не в обиду.
Сейчас рабочий вариант : на каждую фазу по SCT-013-000 с библиотекой производителя , BTA41-600B через MOC3041 ( нет понимания о размере радиатора и компоновке в щитке для отвода тепла ), возможно, ещё трансформатор напряжения для измерения напряжения в сети. Включение только ночью, пока не знаю, ставить экранчики, кнопки и RTC на каждую, как-то не очень. Возможно будет просто 0/1 от внешнего управления.
Передача показаний на сервер. Смотрю библиотеку OneWireHub , там есть пример DS18B20_asInterface.ino , вроде не сложно, передают показания разных датчиков как температуру DS18B20 . DS18B20 очень распространён, везде есть простые примеры применения.
Т.е. сейчас централизованный вариант - основной. Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
Такой сайт нашёл: The Single Board Computer Database
Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
опять сплошная каша в голове у вас. Процитированное выше - наполовину бред.
Вы, похоже, абсолютно все так в жизни делаете - "я профан и разбираться не собираюсь".
подключить три фазы к одной ардуине мозгов так и не хватило? смирились? А как же "у меня все получается, я бачки для ТА сам сварил"?
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того?
.....
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
имхо, после таких заявлений все, кто вам до того помогал - должны бы послать вас в Ж.
Зачем спрашивать советов, если потом гордо заявлять - а все равно буду делать какмоя левая нога захочет
Коллеги, по-моему эта тема - троллинг чистой воды
Проблема в Raspberry pi , которая в базе работает с SSD ( сдыхает через год от исчерпания ресурса перезаписи ). Есть инструкции как перенести всё в RAM и перевести SSD в режим "только чтение" , но это усложнение. Было бы проще пустить всё с SSD через SATA , но пока не нашёл такой одноплатный компьютер , недорогой и с хорошими отзывами.
опять сплошная каша в голове у вас. Процитированное выше - наполовину бред.
Вы, похоже, абсолютно все так в жизни делаете - "я профан и разбираться не собираюсь".
подключить три фазы к одной ардуине мозгов так и не хватило? смирились? А как же "у меня все получается, я бачки для ТА сам сварил"?
Это да. Абревиатуру названия не так написал. По-смыслу всё понятно, а с придирками и агрессией нет.
Raspberry pi в стандарте - SD карта с малым количеством перезаписи.
То что мне говорят что нельзя использовать катушку ТТ как катушку ТН , мотивируя тем что она разрабатывалась для другого, и ладно. L/R катушки... L определяет количество витков и сердечник , R - толщина провода. Если внутри катушки много витков тонкого провода и R = десятки Ом , и что с того?
.....
Нельзя передавать постоянный ток по проводу, мотивируя отказом от импульсного интерфейса? Ну да, яблоко может быть и тёплым и зелёным, оставаясь яблоком.
имхо, после таких заявлений все, кто вам до того помогал - должны бы послать вас в Ж.
Зачем спрашивать советов, если потом гордо заявлять - а все равно буду делать какмоя левая нога захочет
Коллеги, по-моему эта тема - троллинг чистой воды
Слушайте, если у Вас в жизни что-то не удалось, я тут не при чём. И ругаться я ни с кем не хочу, не нужно оно мне.
Коллеги, по-моему эта тема - троллинг чистой воды
Правдин. Дверь, например, какое имя: существительное или прилагательное?
Митрофан. Дверь? Котора дверь?
Правдин. Котора дверь! Вот эта.
Митрофан. Эта? Прилагательна.
Правдин. Почему ж?
Митрофан. Потому что она приложена к своему месту. Вон у чулана шеста неделя дверь стоит еще не навешена: так та покамест существительна.
Удачных ваяний ТС! Электроника сама все расставит по местам.
На базе статьи : Амперметр на ардуино для умного дома сделал:
Выдаёт на разной мощности обогревателя:
Подключены 2 датчика SCT-013-000 30А , входы А0 и А1 соединены.
Коэффициент 0.2743 подобрал для одного из датчиков по выводу EmonLib и ваттметра. Датчики переключал между разными каналами платы с резисторами и конденсаторами , показания без изменений. Возможно датчики немного отличаются, но это решается подбором коэффициентов под каждый датчик. Для моих целей, наверное, то что надо.
Удачных ваяний ТС! Электроника сама все расставит по местам.
Спасибо. Иногда, найти то о чём не знаешь, очень сложно. Удача, как и подсказки тех кто знает, очень помогают.
В Ардуины записал не то, через USB не пишутся, а ещё одной нет.
Сейчас с ESP32 экспериментирую. HTU21D заработал, наверное, квалификацию набрал ( не хотел делать этого) и сделал как надо.
Код ESP32 :
NodeJS ( на компьютере запущен ) компьютер и NodeJS по одному wifi , метров 20 до роутера:
Выдача в консоли ESP32:
Иногда 80мс бывает.
Вяло экспериментирую и думаю как проще и лучше сделать, пока тёплые полы растягиваю. Если отправлять на сервер данные между измерениями тока на фазах ( измерения->реакция -> отправка ), 80мс вполне нормально.
Р.S. Ещё раз повторюсь, что не являюсь специалистом в микроконтроллерах и не хочу им становиться, так-же не хочу здесь ни с кем ругаться. Нет цели сделать оптимальную систему, надо чтобы работало и было просто для моего понимания. Если кому-то нравится самоутверждаться, мне и ладно, мелко это всё.
Похоже на хождение по кругу, как обмотка в трансформаторе))) ТС, не надоело ещё воду фступе перемалывать? До полупроводниковых ДТ , видимо, ваш прогресс ещё не дошёл?
Этот эксперимент подтвердил возможность централизованной систему Умного дома без расположения контроллера вблизи входа электрического кабеля в дом.
В теме Очередной "Умный дом", на этот раз модульная система... читал про реализацию Умного дома на CAN . Завершилось это написанием своего протокола поверх CAN и проблемами и работами CAN в схеме "звезда".
Узнал о существовании удлинителя I2C P82B715 , который на моих расстояниях будет работать.
Сейчас думаю на сколько мне нужно измерять влажность и CO2 по комнатам. Как альтернатива, сделать одну коробочку с экраном и CJMCU-8128 ( CCS811 + SI7021 + BMP280 ) и по ней откалибровать свои ощущения влажности и духоты. Если решу что достаточно только температуру изменять для управления отоплением, думаю отказаться от ds18b20 ( сложности с разводкой 1-wire звездой или пускать петлю, в случае замены датчика, придётся узнавать его адрес, снова вникать и т.д. ) в пользу терморезисторов ( всё очень просто и надёжно ).
Остаётся вопрос в аппаратной части.
- 2 или 3 Ардуино Мега с ethernet ( функциональные ядра ), обмен по http и NodeJS ( html5 с websjcket ) на постоянно включенном компьютере для удобного отображения и настройки.
- Raspberry pi с расширителями цифровых портов и АЦП по i2c . На JavaScript писать гораздо проще чем на C++, выдачу получилось обработать и отобразить через websocket с помощью NodeJS без особых усилий.
Похоже на хождение по кругу, как обмотка в трансформаторе))) ТС, не надоело ещё воду фступе перемалывать? До полупроводниковых ДТ , видимо, ваш прогресс ещё не дошёл?
Приведите пожалуйста пример полупроводникового надёжного датчика на 220В 25А . Возможно есть хорошие варианты за стоимость, сопоставимую с тем что получается на датчике тока в виде катушки.
Хождение по кругу - поиск оптимального варианта. Познаю - пробую - осмысливаю - познаю и т.д.
Тему создал чтобы не делать этого, а применить решение, к которому кто-то пришёл, реализовал и опробовал на практике. Такое мне не подсказали, приходится раскапывать самому.
https://habr.com/ru/post/397641/
Мои самые "любимые" ДТ.
https://habr.com/ru/post/397641/
Мои самые "любимые" ДТ.
Спасибо. Не знал о таком. Вариант хороший. Буду думать.
Реализовывал отслеживание нагрузки на приводах (50гц).
Все элементарно. Трансформатор тока 1:1000 с нагрузочным резистором, через делитель сигнал заводим на аналоговый вход.
Замеры достаточно делать 50раз/сек.
Подстроечный резистором регулируем порог срабатывания.
Вот решение. С double или float не разобрался, но int вполне хватает для моих нужд.
Ардуино:
NodeJS:
Собрал вариант с 4мя ардуинами на зелёной макетной плате, не заработало. Решил что где-то ошибся. Собрал 3 CJMCU-758 с одной ардуиной, тоже не идёт. Всё проверил, помыл ацетоном от флюса, работает какое-то время, потом в значениях показаний неадекват идёт , ардуина мигать диодом начинает и прошиваться не хочет в плате, которую собрал. Что-то не так делаю и пока не понял что.