Страница 1 из 1
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 21.11.2017{, 18:12}
Astro_Graf
Добрый день!
Делаю проект связанный с измерением силы тока (и мощности) выдаваемыми солнечными панелями. Панели небольшие, 6-вольтовые, токи до 1 ампера. Использую 4 панели и 4 датчика ACS712 на 5А. Для начала собрал стенд с 1 панелью и 1 датчиком. Столкнулся с тем, что выдаваемые данные сильно скачут, не помогает даже фильтр "скользящее среднее".
Решил усложнить и подключить все 4 панели и 4 датчика с разными настройками фильтра. И тут столкнулся с тем, что программа не загружается в Ардуино. Пробовал 3 контроллера и 2 компьютера. В чем может быть дело?
Может кто-то подскажет как лучше использовать вышеуказанные датчики.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 08:00}
KSP
Насколько я помню эти датчики очень чувствительны к магнитному полю, для эксперемента попробуй поднести к датчику отвертку , показания начнут прыгать. Так, что проблема не в программе а в наводках, и в проводах, точнее в их длине.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 10:07}
eugeneb
Возможно. Также здесь критична стабильность напряжения питания контроллера.
Но, думаю дело не в этом.
Тут программа - полная каша.
To Astro_Graf:
Во-первых. У вас в генераторах стоит длительность импульса одна микросекунда. На Уно в ФЛПроге лучше не работать с микросекундными интервалами. Он может превратиться в десятки микросекунд.
Во-вторых. Генераторы у вас включены в режиме одновибратора. То есть они на пару с R-триггером выдадут по одному импульсу при старте программы.
И всё. Заполнится только один элемент каждого массива. Дальше ситуация заморозится и никаким скачкам показаний здесь взяться неоткуда.
В-третьих. Блок "Датчик тока" какой-то подозрительный. Потом с ним разберёмся.
Решение с фильтрацией - зачёт. Но не факт что она нужна. Солнечные панели - ну очень медленные.
Дальше опять каша.
Давайте пойдём от простого к сложному. Добьёмся измерений в одном канале. Посмотрим что у вас на входе. Я тут прикрепил тестовую программку. Запустите её и покажите нам выход монитора при разном освещении панели.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 12:47}
Astro_Graf
eugeneb, спасибо, я смогу попробовать вечером.
Добавлено (22.11.2017, 12:47)
---------------------------------------------
Но хотел обратить внимание, что проблема возникла именно с загрузкой кода в Ардуино. В процессе загрузки или подвисание или непонятные ошибки. Проверено на разных контроллерах и компьютерах. Возможно это связано с "полной кашей", возможно что-то еще.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 18:58}
Astro_Graf
eugeneb,
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 20:39}
Astro_Graf
В общем запустил я код, похоже дело было в микросекундах, заменил на миллисекунды. Но теперь стало очевидно, что данные, выдаваемые датчиками - не более чем шум.
Какие будут предложения?
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 21:15}
eugeneb
Я тут почитал про эти датчики.
У меня ещё вопросы:
1. У вас отдельная микросхема или в составе готового модуля? Если отдельная, то возможно нет фильтрующего конденсатора (1 нФ) и по питанию (0,1 мкФ), которые рекомендует производитель.
2. При нулевом токе датчик должен выдавать 2,5В или
в отсчётах АЦП - 511,5. Можете это проверить?
3. У контроллера и у датчиков общее питание? Может быть у Уны свой стабилизатор (линейный), а у измериловки свой (импульсный)?
И, начну давать некоторые советы:
1. Блок RTrig не нужен вообще - выкинуть.
2. Вы установили частоту записи показаний 500 Гц. Хватило бы и 1 Гц. Пока. Потом может вообще выкинем.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 22:13}
eugeneb
Вот тут производитель рекомендует для малых токов увеличить крутизну ампер-вольтной характеристики.
И кстати, фильтрующий конденсатор я бы по-любому увеличил в вашем случае до 0,1 мкФ. (потому-что у вас постоянный, медленно меняющийся ток)
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 22.11.2017{, 23:10}
cmept-27
Мимо ((
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 23.11.2017{, 10:06}
Astro_Graf
eugeneb писал(а):У меня ещё вопросы:
1. У меня модуль
2. Скриншот выдаваемых показаний на холостом ходу в сообщении №5, за 2 секунды данные скачут от 506 до 516
3. Датчики запитаны от Ардуины
eugeneb писал(а):некоторые советы:
1. С точки зрения логики Rtrig не нужен, но из опыта работы очень даже не лишний.
2. Для 4-го датчика предусмотрено усреднение на 100 считываний, а вывод данных у меня с частотой 4 Герца так что 500 Гц на считывание не лишние.
Подозреваю, что эти датчики не могут измерить малые токи от панелей. Вчера пытался нагружать панели микроэлектродвигателем и мерил силу тока прибором. К сожалению шкала прибора была дурацкая - 200 миллиампер и следующий режим уже 10 ампер. Без досвечивания, при штатном искусственном освещении панели давали 3,5 вольта и примерно 150 миллиампер. При включении прожектора напряжение поднималось до 6,5 вольт, а сила тока зашкаливала 200 миллиампер, но вряд ли была более 300. И это от 4-х панелей! А датчики стоят на каждой панели!
Другое дело, что НИКАКОГО осмысленного изменения показаний при данном эксперименте не происходило вообще.
eugeneb, согласен, что скорее всего, с характеристикой 185милливольт/ампер они просто не распознают такие токи.
Можно ли как-то поднять чувствительность этих модулей???
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 23.11.2017{, 15:53}
eugeneb
Чувствительность поднять можно - см. мой пост №8. Крутизна характеристики - это и есть чувствительность. Там привешен усилитель на ОУ. Его коэффициент передачи K=R3/Rf, то есть 3,3. Так крутизна 0,185 В/А превращается в 0,61 В/А. Кроме того напряжение на выходе уже притянуто к нулю. Это расширяет динамический диапазон напряжения , подаваемомго на АЦП. Вы можете сами себе задать любую удобную крутизну.
RTrig просто превращает ваш сколь угодно длинный импульс в короткий, на один цикл выполнения всей программы. А накопитель стека работает только по фронту. Ему пофигу длина импульса.
По поводу частот. Вы просто непривыкли ещё к FLProg (к FBD). Вы не обязаны выводить каждое измеренное или усреднённое значение. Измерять вы можете сколь угодно часто. А вот выводить данные можно неторопясь. Усреднять я вам советую не миллиамперы, а отсчёты АЦП. Потом переведёте их в ток.
Кстати о фильтрах. Здесь на форуме есть замечательная колллекция цифровых фильтров:
http://forum.flprog.ru/viewtopic.php?f=82&t=3098
Там есть и скользящее среднее. Рекомендую.
И всё же, мне непонятны такие скачки АЦП при нулевом токе. Видимо прав был уважаемый
KSP во втором посте - они чересчур чувствительны к магнитным помехам. Что здесь посоветовать - большой конденсатор в измеритель (как я писал в восьмом посте) и цифровая фильтрация. Надеюсь получится. Удачи.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 23.11.2017{, 17:54}
Astro_Graf
eugeneb, спасибо, завтра попробую вариант с усилением.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 13.03.2018{, 08:45}
KulibinOrsk
Так и не понятно - есть ли рабочий блок на этот датчик или нет. Выложите у кого есть. Есть потребность мерить переменный ток 5А.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 13.03.2018{, 08:56}
pan
KulibinOrsk,
читаем даташит
для него не нужен блок. на выходе датчика просто напряжение пропорциональное току. просто измеряем аналоговым пином и масштабируем
на нужные показания
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 14.03.2018{, 10:37}
KulibinOrsk
Не все так просто. Показания гуляют даже на постоянке, не говоря про переменный ток. Нужен блок СКЗ (среднеквадратичное) и возможно еще какие то обработки. Потому и спрашиваю - может у кого есть доведенный до рабочего состояния вариант использования.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 14.03.2018{, 10:40}
pan
KulibinOrsk писал(а): ↑14.03.2018{, 10:37}
Нужен блок СКЗ (среднеквадратичное)
нужно нормальное опорное напряжение а не СКЗ... это как минимум. если нужны более менее точные показания.
Измерение силы тока, с помощью датчиков ACS712
Добавлено: 15.03.2018{, 09:42}
benic
HI!
Поюзал 30амперный, дрейф не более чем с триммера. Проблема при измерении тока импульсного шим и 50гц без фильтра. Данные скачут. Нужен П-блок для измерения макс-мин сигнала. Вот этотблок дал положительные результаты при шим но при 50гц не очень.
Код: Выделить всё
// Filtr_wind_int
if (en)
{
temp16 = temp15;
temp15 = temp14;
temp14= temp13;
temp13 = temp12;
temp12 = temp11;
temp11 = temp10;
temp10 = temp9;
temp9 = temp8;
temp8 = temp7;
temp7 = temp6;
temp6 = temp5;
temp5 = temp4;
temp4 = temp3;
temp3 = temp2;
temp2 = temp1;
temp1 = in;
out = int ((temp1+temp2+temp3+temp4+temp5+temp6+temp7+temp8+temp9+temp10+temp11+temp12+temp13+temp14+temp15+temp16) / 16);
}
Не нашёл спойлер. В общем подскажите, как добавить красоты в код, т.е. фиксировать макс или мин сигнала.