нужна помощь по ads1115
- Войдите на сайт для отправки комментариев
Всем привет!
Придумал я себе гемморой и в силу скудности познаний зашёл в тупик. Обрисую общую картину. Стоит у меня дома электросчетчик умный который сам показания передает в облэнерго и сам лочится по превышению нагрузки. Надоело бегать руками отключать бойлер и обогреватели когда на кухне что-то происходит из разряда приготовления пищи (газа нет, всё электрическое). Тем более что забываем часто и сидим по 3-5 мин в темноте как суслики. Увеличить мощность можно но финансово пока нет возможности. Затеял следить за нагрузкой и отрубать неприоритетную нагрузку посредством arduino pro mini на atmega328 5В а может в перспективе и на esp8266. Купил датчик тока sct-013-000. Собрал по мануалу, применил библиотеку emonlib. Как ни боролся с помехами и питанием точность получается плюс-минус трамвайная обстановка. Купил внешний ацп ads1115. Преимуществом посчитал кроме точности 16 бит собственный источник опорного напряжения, дифференциальные входы и возможность измерять отрицательное напряжение, что в сумме даёт теоретическую возможность измерять переменное напряжение, которое выдает датчик тока и отсутствие необходимости городить делитель напряжения. Вопрос только в том как измерить переменное напряжение. В теории нужно получить как можно больше сэмплов за 20 мс (частота 50гц) и посчитать среднеквадратичное значение напряжения. Так вот ВОПРОС! Как это сделать? АЦП умеет непрерывно преобразовывать сигнал и частоту дискретизации можно настроить. Только как это сделать практически — вот тут для меня тупик. В примерах к библиотеке ничего такого и близко нет. Даташит мне вообще почти ничего не сказал - смотрю в книгу вижу фигу. Нагуглить тоже ничего для чайников не удалось. Пытался втупую используя millis в цикле посчитывать значения с ацп. В итоге ардуина успевает только 3 итерации сделать за 20 мс что как бы с точностью измерений даже близко не пересекается. Направьте на путь истинный! Может есть другие более простые алгоритмы замера переменного напряжения? Вариант вернуться к emonlib и подключению датчика прямо к ардуине я уже не рассматриваю - вспыхнул спортивный интерес с внешним АЦП разобраться.
реле приоритета нагрузки
DIMAX должен знать, ждёмс )
Вопрос только в том как измерить переменное напряжение. В теории нужно получить как можно больше сэмплов за 20 мс (частота 50гц) и посчитать среднеквадратичное значение напряжения. Так вот ВОПРОС! Как это сделать?
Ты за диодный мост с конденсатором чонить слышал?
реле приоритета нагрузки
Это не спортивно. Хочу сделать сам с возможностью навесить в перспективе дополнительного функционала.
Ты за диодный мост с конденсатором чонить слышал?
Я в электронике слабоват. Как оно с точностью получится? Мне же потом в реальный ток пересчитывать с масштабом 1 к 2000.
Вопрос снят.
Теперь другой есть, нахрена тебе даччик на 100А? Мощность какая разрешена?
Несколько вопросов. Фаза одна? Максимальная мощность или по другому какой максимальный ток ожидается? К датчику тока плата сдвига уровня прилагается? Что делать если превышен максимальный ток? Как быстро надо реагировать на превышение тока?
Увеличение разрядности не поможет. 1115 при максимальной разрядности между точками больше 1 мс. Это в 10 раз медленнее 328.
Для реле необязательно считать RMS. Достаточно оцифровывать максимум синусоиды - через 4.7 мс после пересечения нуля 5 точек и делать усреднение, а затем накапливать 10 периодов превышения - 200 мс время срабатывания и отбрасывание пусковых токов. Своё АЦП 328 отлично справится. Точность будет не хуже Вашего счётчика.
sirvlaser, переменка на ads измеряется без проблем, но, как уже сказал nik182, он слишком медленный для этого. Лучше б было что-то специализированное взять, тут недавно писал в аналогичной теме.
реле приоритета нагрузки
Хочешь "спортивно" - садись, читай учебник, даташиты, рисуй схему как положено, просчитывай, и делай прибор. А ты хочешь, чтобы кто-то за тебя сделал сложную работу.
Теперь другой есть, нахрена тебе даччик на 100А? Мощность какая разрешена?
Мерить ток я собираюсь на вводе в квартиру. На данный момент ограничение 5 КВт. в перспективе хочу довести до 8 КВт. В наличии были 30А и 100А.
Несколько вопросов. Фаза одна? Максимальная мощность или по другому какой максимальный ток ожидается? К датчику тока плата сдвига уровня прилагается? Что делать если превышен максимальный ток? Как быстро надо реагировать на превышение тока?
Увеличение разрядности не поможет. 1115 при максимальной разрядности между точками больше 1 мс. Это в 10 раз медленнее 328.
Для реле необязательно считать RMS. Достаточно оцифровывать максимум синусоиды - через 4.7 мс после пересечения нуля 5 точек и делать усреднение, а затем накапливать 10 периодов превышения - 200 мс время срабатывания и отбрасывание пусковых токов. Своё АЦП 328 отлично справится. Точность будет не хуже Вашего счётчика.
фаза одна. к датчику ничего нет. сам датчик - трансформатор тока и всё. никакого обвеса в этой версии нет. при 100А на входе даёт 50мА. параллельно датчику я поставил подстроечный многооборотный резистор. накрутил его из расчета опорного напряжения. превысить 100А нереально - счетчик не даст. как быстро реагировать - не знаю. быстрее счетчика. таких характеристик счетчика я не нашел. думал экспериментальным путем определить скорость срабатывания - чтоб быстрее счетчика но и пусковые токи двигателя стиралки и подобных вещей принять во внимание.
по остальному - спасибо, принял к сведению.
реле приоритета нагрузки
Хочешь "спортивно" - садись, читай учебник, даташиты, рисуй схему как положено, просчитывай, и делай прибор. А ты хочешь, чтобы кто-то за тебя сделал сложную работу.
не нужно дерзить. я не просил за меня всё делать. если бы ты внимательно читал то увидел бы что учебник я читал, даташит смотрел но ничего не понял, расчеты я не просил никого делать а рисовать схемы в простых блочных проектах считаю муторным необязательным занятием которое кроме отжирания моего личного времени ничего не дает. я задал конкретный вопрос и хотел бы получить конкретный ответ. данный раздел форума, если я ничего не путаю, позволяет глупые вопросы задавать.
учебник я читал, даташит смотрел но ничего не понял
Значит прочитай еще раз. Значит ты предыдущий учебник не читал. Спортсмены тренируются с 10 лет и до конца жизни. Давай-давай.
считаю муторным необязательным занятием
Читал он учебник, как же. Врать не надо.
не нужно дерзить
А когда ты свою халяву спортивным подходом называешь - это не дерзить?
sirvlaser, переменка на ads измеряется без проблем, но, как уже сказал nik182, он слишком медленный для этого. Лучше б было что-то специализированное взять, тут недавно писал в аналогичной теме.
спасибо, поизучаю...
Можно ещё просто поставить PZEM-004 или типа того.
Ты за диодный мост с конденсатором чонить слышал?
Присоединяюсь к вышесказанному.
Проще всего будет взять готовый модуль измерения мощьности https://aliexpress.ru/item/32842411542.html
С него сразу можно получать и напряжение и ток , текущуюю и потребленную мощность. Присоединяешь его к ардуине по serial и всех делов.
Если же очень хочется все расчеты "вручную" делать, то тогда рекомендую взять ADS1015. Он 12 битный, но работает в 4 раза быстрее 1115. И точности и скорости будет достаточно для данной задачи.
pzem-004t это выход! Спасибо за наводку!
Наверное так и поступлю. Но! Как бы не дул щеки товарищ rkit, но спортивный интерес не пропал и вопрос остался не раскрытым по ads1015/1115. Может всё же расскажет кто-нибудь простыми словами как работать с непрерывным преобразованием? Как настроить модуль я догадываюсь. А дальше? Как считывать с модуля данные в этом режиме?
Рассмотрите и такой вариант. У него разъёмный трансформатор (нет нужды откручивать провода от автоматов/счётчиков. USB-шнурок практически бесполезен, не стоит за ним охотится.
https://s.click.aliexpress.com/e/_eLKxXZ
Ну во-первых, если использовать ADS1015 то потребуются их 2 штуки один для измерения тока, второй для напряжения. Да у него 4 канала, но быстродействия не хватит.
Дальше меряешь ток и напряжени и считаешь среднеквадратичное по выборкам.
https://s.click.aliexpress.com/e/_eLKxXZ
Спасибо, но мне этот вариант не очень. Полезного функционала сравнительно с голой платой для меня ноль, да и удобства в виде разъемного трансформатора мне не нужны. А цена в 2.5 раза выше pzem-004t.
Ну во-первых, если использовать ADS1015 то потребуются их 2 штуки один для измерения тока, второй для напряжения. Да у него 4 канала, но быстродействия не хватит.
Дальше меряешь ток и напряжени и считаешь среднеквадратичное по выборкам.
Я не энергомонитор собираю. Напряжение и мощность мне побоку. Мне интересен исключительно ток. И вопрос уже стоит не по измерениям тока а по логике работы АЦП ads1015/1115 вцелом, в частности интересно непрерывное преобразование. По остальным режимам работы полно информации а по этому режиму я ничего не нашел.
О как!
Ну, что ж, делать за Вас Вашу работу "считаю муторным необязательным занятием которое кроме отжирания моего личного времени ничего не дает".
Я не энергомонитор собираю. Напряжение и мощность мне побоку. Мне интересен исключительно ток. И вопрос уже стоит не по измерениям тока а по логике работы АЦП ads1015/1115 вцелом, в частности интересно непрерывное преобразование. По остальным режимам работы полно информации а по этому режиму я ничего не нашел.
Как "не нашел"? В даташите все ж описано.
Continuous-Conversion Mode In continuous-conversion mode (MODE bit set to 0), the ADS101x perform conversions continuously. When a conversion is complete, the ADS101x place the result in the Conversion register and immediately begin another conversion
Ну а что бы вовремя измереные данные забрать надо сдеалть что б по концу измерения прерывания генерировались
The ALERT/RDY pin can also be configured as a conversion ready pin. Set the most-significant bit of the Hi_thresh register to 1 and the most-significant bit of Lo_thresh register to 0 to enable the pin as a conversion ready pin.
Попробуйте, что будет выдавать программа
трансформатор должен быть подключен к А0 по схеме , при этом сам трансформатор должен быть замкнут сопротивлением 50 Ом.
У меня нана на 328 и 16МГц. Трансформатора нет. Программа выдает значение RMS на входе А0 , время оцифровки и время расчёта RMS. Два устойчивых значения - держал палец и отпустил - RMS наводки в разных условиях. Оцифровка 20 мс - один период сети.
Попробуйте, что будет выдавать программа
Что то я не понимаю как она может что-то осмысленное выдавать если все измерения, кроме последнего, херятся?
Я не энергомонитор собираю. Напряжение и мощность мне побоку. Мне интересен исключительно ток. И вопрос уже стоит не по измерениям тока а по логике работы АЦП ads1015/1115 вцелом, в частности интересно непрерывное преобразование. По остальным режимам работы полно информации а по этому режиму я ничего не нашел.
Как "не нашел"? В даташите все ж описано.
Continuous-Conversion Mode In continuous-conversion mode (MODE bit set to 0), the ADS101x perform conversions continuously. When a conversion is complete, the ADS101x place the result in the Conversion register and immediately begin another conversion
Ну а что бы вовремя измереные данные забрать надо сдеалть что б по концу измерения прерывания генерировались
The ALERT/RDY pin can also be configured as a conversion ready pin. Set the most-significant bit of the Hi_thresh register to 1 and the most-significant bit of Lo_thresh register to 0 to enable the pin as a conversion ready pin.
Спасибо! С русским комментом стало понятнее. Я ж говорю - смотрю в книгу вижу фигу.
Лоханулся. Пробовал 1000 раз оцифровать, что бы время оцифровки оценить. 0 вписал что бы массивом память не гробить. После восстановления i результат пальцевого теста
Попробуйте, что будет выдавать программа
трансформатор должен быть подключен к А0 по схеме , при этом сам трансформатор должен быть замкнут сопротивлением 50 Ом.
У меня нана на 328 и 16МГц. Трансформатора нет. Программа выдает значение RMS на входе А0 , время оцифровки и время расчёта RMS. Два устойчивых значения - держал палец и отпустил - RMS наводки в разных условиях. Оцифровка 20 мс - один период сети.
Напрямую к ардуине я подключал. Делало вид что работало. Меня не устроила точность. Присутствовала какая-то нелинейность. Пытался бороться с помехами, с опорным напряжением, запутался, дезориентировался и решил пойти другим путем.
Нелинейность убирается замыканием трансформатора резистором 50 Ом. Точность будет отличная. Попробуйте. Сравните.
Нелинейность убирается замыканием трансформатора резистором 50 Ом. Точность будет отличная. Попробуйте. Сравните.
Замыкание это как? Я подключал по этой схеме https://arduino.ua/images/articles/_Ac-curr-sens_09.JPG
Куда предлагаете резистор поставить?
Лоханулся. Пробовал 1000 раз оцифровать, что бы время оцифровки оценить. 0 вписал что бы массивом память не гробить. После восстановления i результат пальцевого теста
Сначала надо вычесть постоянную составляющую. Нужно собрать массив, посчитать среднее и его вычесть. Или надо брать АЦП которое цифрует от -5 до 5 вольт, тогда да можно не вычитать. Но RMS всё равно надо считать как корень из суммы квадратов ровно за время кратное периоду. Всё равно надо массив собирать.
На этой схеме трансформатор на 30А. У него внутри уже стоит резистор. Вам нужно на выводы трансформатора повесить свой резистор 50 Ом. Без резистора на любом АЦП будет нелинейность.
У него внутри уже стоит резистор. Вам нужно на выводы трансформатора повесить свой резистор 50 Ом. Без резистора на любом АЦП будет нелинейность.
Ох уж производители - поставили в трансформатор резистор меньше нужного на 50 ом, чтобы кровушку клиенту попить. Ловко придумали.
Сначала надо вычесть постоянную составляющую. Нужно собрать массив, посчитать среднее и его вычесть. Или надо брать АЦП которое цифрует от -5 до 5 вольт, тогда да можно не вычитать.
Повторяю, смещение нуля (постоянная состовляющая) от времени не меняется. Ее можно один раз промерять на нескольких периоодах, а потом уже использовать в вычислениях, не делая это каждый раз заново.
Ну и считай за время кратное периоду. Массив то зачем?
Ох уж производители - поставили в трансформатор резистор меньше нужного на 50 ом, чтобы кровушку клиенту попить. Ловко придумали.
Вот сейчас не понял. Они там 62 Ома поставили, а здесь вообще не поставили. Вот я и ни как не пойму Чего они тут поставили меньше 50? Вообще на 50 Омах при 100 амперах размах на входе АЦП будет 7 вольт. Я так прикинул, что 50 Ом при токах ТС как раз почти полную разрядность АЦП попадёт.
...Ну и считай за время кратное периоду. Массив то зачем?
Согласен с возможностью такого решения. Наверно это просто привычка. Собрать массив данных, обработать. Не вносить в текущие данные ошибки предыдущих вычислений. Массивы не мешают. Можно написать по другому. Напиши, сравним результат. Думаю будет похожий результат.
Вот сейчас не понял. Они там 62 Ома поставили, а здесь вообще не поставили. Вот я и ни как не пойму Чего они тут поставили меньше 50? Вообще на 50 Омах при 100 амперах размах на входе АЦП будет 7 вольт. Я так прикинул, что 50 Ом при токах ТС как раз почти полную разрядность АЦП попадёт.
А в предыдущем сообщении 50 ом нужны были для устранения нелинейности. Теперь вот для измерения 100 ампер в бытовой сети. Час от часу не меньше.
Сначала надо вычесть постоянную составляющую. Нужно собрать массив, посчитать среднее и его вычесть. Или надо брать АЦП которое цифрует от -5 до 5 вольт, тогда да можно не вычитать. Но RMS всё равно надо считать как корень из суммы квадратов ровно за время кратное периоду. Всё равно надо массив собирать.
На этой схеме трансформатор на 30А. У него внутри уже стоит резистор. Вам нужно на выводы трансформатора повесить свой резистор 50 Ом. Без резистора на любом АЦП будет нелинейность.
Блин. С телефона не рассмотрел. Датчик у меня без резистора внутри, а там где вы нарисовали резистор у меня стоит подстроечный накрученный так чтоб при максимально допустимом измеряемом токе напряжение на трансформаторе не было больше опорного напряжения. Я пришел к тому что при отсутствии напряжения на измеряемом проводе датчик что-то да показывал. Полностью победить эту проблему не не удалось. Какой либо калибровочный коэффициент определить не удалось в виду разброса от этой помехи. Она то была то нет. Плюс я не был уверен в стабильности опорного напряжения. Плюс нелинейность. Если по 100 Вт лампочке я устанавливал 100 Вт показаний то на 60Вт я 60 уже не получал. Свести к какому-то минимуму погрешность измерения мне удалось но этот минимум меня не устроил. Решил что АЦП с минимумом обвеса датчика решит мою проблему.
А в предыдущем сообщении 50 ом нужны были для устранения нелинейности. Теперь вот для измерения 100 ампер в бытовой сети. Час от часу не меньше.
Не вижу противоречия. Без резистора напряжение на входе АЦП формируется во большом входном сопротивлении и быстро превышает 5 вольт , после чего открываются защитные диоды и входные цепи становятся вообще непонятными. Линейностью измерений в диапазоне до 100 А здесь не пахнет. Резистор загоняет переменную составляющую в рамки допустимых измеряемых АЦП напряжений. Выбрав номинал это резистора можно подгонять максимальное измеряемое значение тока.
Лампочками нельзя откалиброваться. Они никогда не соответствуют номиналу. Нужно брать приборы и смотреть.
А в предыдущем сообщении 50 ом нужны были для устранения нелинейности. Теперь вот для измерения 100 ампер в бытовой сети. Час от часу не меньше.
Не вижу противоречия. Без резистора напряжение на входе АЦП формируется во большом входном сопротивлении и быстро превышает 5 вольт , после чего открываются защитные диоды и входные цепи становятся вообще непонятными. Линейностью измерений в диапазоне до 100 А здесь не пахнет. Резистор загоняет переменную составляющую в рамки допустимых измеряемых АЦП напряжений. Выбрав номинал это резистора можно подгонять максимальное измеряемое значение тока.
Так! Давайте проясним! Датчик который у меня это просто трансформатор тока с разъемным сердечником в корпусе и припаяным проводом. Никаких резисторов внутри нет. Производитель заявляет что при 100А на измеряемом проводнике трансформатор выдает 50мА тока. Тоесть трансформатор имеет 2000 витков. Чтоб измерить ток на трансформаторе нужен нагрузочный резистор. Резистор подбирается так чтоб напряжение не выходило за пределы опорного напряжения АЦП, что я и сделал подстроечный резистором.
Лампочками нельзя откалиброваться. Они никогда не соответствуют номиналу. Нужно брать приборы и смотреть.
Беда в том что из приборов у меня только дешёвый китайский мультиметр был, который не умеет мерить переменный ток и как позже оказалось брешет безбожно. Сейчас уже купил другой чуть получше но веры ему тоже сильно нет. Разница между ним и ads1115 при замере пальчиковой батарейки в 0.2В и мерить переменный ток он тоже не умеет.
Не вижу противоречия. Без резистора напряжение на входе АЦП формируется во большом входном сопротивлении и быстро превышает 5 вольт , после чего открываются защитные диоды и входные цепи становятся вообще непонятными. Линейностью измерений в диапазоне до 100 А здесь не пахнет. Резистор загоняет переменную составляющую в рамки допустимых измеряемых АЦП напряжений. Выбрав номинал это резистора можно подгонять максимальное измеряемое значение тока.
Трансформатор всегда нелинейный. Всегда. Никаким ни резистором, ни реле на оптопаре, ни еще какой глупой припаркой "у меня работает" этого исправить нельзя. Потому что 1. собственная индуктивность 2. магнитный гистерезис 3. внутреннее сопротивление.
Трансформатор всегда нелинейный. Всегда. Никаким ни резистором, ни реле на оптопаре, ни еще какой глупой припаркой "у меня работает" этого исправить нельзя. Потому что 1. собственная индуктивность 2. магнитный гистерезис 3. внутреннее сопротивление.
Извини, но вот тут не могу согласиться. Пока не загнулась характеристика намагничивания железа отличить передаточную характеристику трансформатора от линейной очень трудно. По крайней мере ошибка от всех тобой перечисленных источников погрешности меньше, чем ошибка измеряющих приборов. Да, трансформатор всегда не линейный, но измерительные трансформаторы тока начинаются классом от 0.1 и это во всём диапазоне тока от 0 до 120% номинального тока. Будем зануду включать?
Резистор нужен, что бы АЦП мог оцифровать необходимый диапазон. ТТ выдаёт ток. АЦП измеряет напряжение. Если напряжение выйдет за пределы возможностей АЦП линейность измерений будет нарушена.
Так! Давайте проясним! Датчик который у меня это просто трансформатор тока с разъемным сердечником в корпусе и припаяным проводом. Никаких резисторов внутри нет. Производитель заявляет что при 100А на измеряемом проводнике трансформатор выдает 50мА тока. Тоесть трансформатор имеет 2000 витков. Чтоб измерить ток на трансформаторе нужен нагрузочный резистор. Резистор подбирается так чтоб напряжение не выходило за пределы опорного напряжения АЦП, что я и сделал подстроечный резистором.
Напряжение должно. Но должно быть меньше. Если синус 5 вольт, то размах мин - мах 14 вольт. У Вас АЦП имеет 5 вольт , по этому максимальное измеренное напряжение на выводах трансформатора при максимальном токе должно быть 1.79 переменного тока. Если будет больше, то при токе меньшем максимального произойдёт ограничение по АЦП и выходной результат войдёт в нелинейную зону.
измерительные трансформаторы тока начинаются классом от 0.1 и это во всём диапазоне тока от 0 до 120% номинального тока
Фантазируй больше. У этого конкретного трансформатора подгрешность заявлена +-3% в диапазоне 10-100А. За пределами еще больше, соответственно.
Ты опять на личности переходишь. Где фантазии? Опять за меня домысливаешь? Покажи мне , где я написал что этот трансформатор имеет класс 0.1? Я обсуждал с тобой линейность измерительных трансформаторов. Она достаточна, чтобы измерительные трансформаторы использовались в коммерческих целях. Все перечисленные тобой источники погрешности малы и нет смысла на них заморачиваться. Открой любой каталог измерительных ТТ и убедись в наличии ТТ класса 0.1
Лампочками нельзя откалиброваться. Они никогда не соответствуют номиналу. Нужно брать приборы и смотреть.
sirvlaser, задушите земноводное и купите нормальный мультиметр, так, чтобы ток измерял до 20 А и обязательно "True RMS". Что-нибудь типа такого https://supereyes.ru/catalog/Multimeters/multimetr_peakmeter_pm890d_tsif...
Он Вам ещё неоднократно сможет пригодиться и не только в этом проекте. При правильном применении многие вопросы сами отпадут.
Если жабу полностью придушить сложно,то можно взять такой - https://aliexpress.ru/item/32950583438.html
Он имеет на борту тот же чип, что и многие FLUKE. Так что меряет он хорошо. Конечно, там на всем другом экономили как могли - переключатель, высоковольтная защита, итп итд. То есть для ежедневного применения не очень подходит, может развалиться относительно быстро. Но для бытового использования замечательная вещь.