Датчик наличия нагрузки на 220В

Тема в разделе "Силовая электроника", создана пользователем McKnight, 8 окт 2019.

  1. asam

    asam Гик

    Ну естественно для переменного тока среднее 0. Поэтому и используют RMS (средне квадратичное). Да опрашивать надо с частотой килогерц пять, хотя бы. Но ардуино это все легко тянет. И даже с помощью analogRead можно управится если AЦП clock подкрутить.

    Ну так PZEM как раз и делает аппаратное усреднение. Причем меряет и ток и напряжение и сам считает потребеленную мощность. Надо только считать резултат.
    Примеров подключения PZEM-004T к Ардуино в сети навалом и библиотеки есть. Например https://github.com/mandulaj/PZEM-004T-v30
     
  2. SergeiL

    SergeiL Оракул Модератор

    Ну тут уже все написали,
    Обработку ACS712 проще в обработчик таймера запихнуть.
    Там же и напряжение 220В зачитывать.
     
  3. ИгорьК

    ИгорьК Гуру

    Да, кстати, 004T первой и третьей версии работают по разному протоколу.
    У меня первая версия, а третья - modbus. Я с ней не работал.
     
  4. asam

    asam Гик

    Не, лучше АЦП поставить в Free Running mode и обрабатывать в прерывании от АЦП по окончанию преобразования.
     
  5. SergeiL

    SergeiL Оракул Модератор

    Ну как по мне, то правильней запускать преобразование по таймеру, а обрабатывать по окончанию преобразования.
    ИМХО так логичнее.
     
  6. asam

    asam Гик

    Почему логичнее? Зачем еще лишнее прерывание привлекать? Во Free Running mode преобразования происходят с фиксированной частотой. Подбираем подходящий нам делитель и вперед. И потом, если запускасть по таймеру, то имеем вероятность получить джиттер из-за запрета прерываний в других обработчиках.
     
  7. parovoZZ

    parovoZZ Гуру

    Не успеешь. Возвести в квадрат, суммировать и вычислить квадратную степень.
     
  8. Daniil

    Daniil Гуру

    отсчеты, в некоторых случаях, надо получать с необходимой частотой.
    Каждый отсчет требует дополнительную обработку (усреднение, сглаживание, фильтрация...). Эта обработка может плавать во времени. Если сделать все по таймеру, то время получение каждого отсчета будет максимальным для случая без таймера, но с одинаковым интервалом во времени.
    Короче, зависит от задачи)
     
  9. SergeiL

    SergeiL Оракул Модератор

    Есть такая книжка:
    Книжка_11.png книжка_13.png
    Очень полезная, не нужно смотреть на процессоры, алгоритмы те же.
    Когда разберешься в алгоритмах, все становится просто и понятно.
     
    Последнее редактирование: 9 окт 2019
    DetSimen нравится это.
  10. asam

    asam Гик

    А что когда прерывания будут таймером задаваться вычисление будут быстрее? Да и корень-то зачем в прерывании вычислять? Достаточно перемножить и суммировать. Корень это потом, когда результат после периода интегрирования нужно будет получить.
     
  11. asam

    asam Гик

    Как раз прерываняи от АЦП во Free Running mode дают стабильные интервалы. Если использовать таймер, то интервалы начинают плавать если в системе есть другие прерывания. Во многих случаях это не слишком критично, но зачем делать сложнее и при этом с худшим результатом.
     
  12. SergeiL

    SergeiL Оракул Модератор

    Выкладывайте решение задачи. Предлагайте!
    А то у нас тут были балоболы,Типа @дядя Витя или @rkit. Нужно делать так, и ни строчки кода... Все в далекой теории...
     
    issaom и Andrey12 нравится это.
  13. asam

    asam Гик

    Ну предложить я уже предложил. А о решение какой конкретно задачи идет речь?
     
  14. parovoZZ

    parovoZZ Гуру

    Нет. Таймер сам запускает АЦП. АЦП по окончании измерения поднимает флаг. Наша задача отследить этот флаг и забрать данные. В этом варианте больше степеней свободы. Во freerunning можем крутить только делитель АЦП.
     
  15. parovoZZ

    parovoZZ Гуру

  16. Daniil

    Daniil Гуру

    стабильность времён таймера и ацп зависит от того откуда они берут тактовый сигнал. Если это у вас разные источники, то сообщите. Но опять таки нужна еще доп обработка, которая тоже время требует.
    а приоритеты? Извиняюсь, в авр не сильно копался, но уверен это утверждение зависит от способностей программиста.
     
  17. Radius

    Radius Гик

    А что это такое?
     
  18. ИгорьК

    ИгорьК Гуру

    Логический анализатор.
     
  19. parovoZZ

    parovoZZ Гуру

    У АВР один источник тактового сигнала для всех. Если плавает (имеется джиттер) частота или фаза тактового сигнала, то на АЦП последовательного приближения это проявляется слабо - оцифровываемое значение лежит в УВХ и никак не меняется.
     
  20. asam

    asam Гик

    Это я о другом. Я очень давно (лет 7 назад) с Авровским АЦП работал, делал стабилизатор мощности на Attiny45. B подзабыл, что он может аппаратно запускасться от таймера. Поэтому решил что речь идет о софтверном запуске АЦП по прерыванию от таймера. И вот в этом случае возможны задержки запуска очерендного преобразования если в момент срабатывания таймера прерывания запрещены из-за обработки другого прервания.
     
    Daniil нравится это.