|
28.05.2013, 20:26 | #1 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Подключил к радиоканалу и начал мониторить. При нагрузке даже в 40 ватт на 20 амерный датчик выдатся значения 516-517 что для диммера должно хватать. Судя по всему в чем косяк стало понятно, в первоисточнике с датчиком ноля - определяется только ноль , а дальше работает таймер. А у меня же прерывания постоянно без запуска отдельного таймера и в результате в выложенном ранее коде получается
PHP код:
|
28.05.2013, 20:41 | #2 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
решения с ходу приходит пока только с использованием костыля (флага)
PHP код:
Последний раз редактировалось Bulatovor; 29.05.2013 в 07:12. |
28.05.2013, 22:28 | #3 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Наверно имелось ввиду
if (Vout>508 && Vout<516 && flag==0) { tic=0; flag=1; } //детектор ноля Ошибка в выполнении условия, выполнится только tic=0; так как нет фигурных скобок |
29.05.2013, 07:11 | #4 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Согласен
|
29.05.2013, 18:51 | #5 |
Member
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0 |
У меня к сожалению датчика тока под рукой нет, проверить никак ...
Проблема в том, насколько я понял, отловить ZeroCross через ACS712 ... А если ловить его таким образом: Ставим компаратор напряжения на выходе с ACS712, настраиваем на 2,5в ... а далее по накатаной схеме Admin'ом через прерывание ???? Как вариант - микросхема BU4825G-TR и настраивать ничего не надо .... 2.5в ... Наверное правильнее будет ловить 0 через прерывание, чем через АЦП Последний раз редактировалось dmitry123; 29.05.2013 в 19:00. |
29.05.2013, 19:16 | #6 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
У Arduino есть встроеный аналоговый компаратор пины AIN0, AIN1
Но тут проблема в том, что когда через нагрузку не течет ток, то показания датчика все время будут на ноле. |
29.05.2013, 21:10 | #7 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
С костылем заработало, но немного не стабильно, еще не знаю почему - нужно докрутить будет, ну для начала увеличив нагрузку. Использование компатора ( выводы D6 и D7 Arduino) упростит задачу - отправив его по накатанной схеме с димером по прерываниям, но это лишнее лишнее - зачем два раза снимать показания с одного датчика -ведь его же функция еще и мерить ток.
Есть конечно интересная мысль -запускать таймер по прерыванию с компаратора, а ток измерять только раз в период (вместо 200) через 50 миллисекунд, но как быть тогда если кооффициент диммирования больше 50% -синусоида своего пика не достигнет? или мерять по включению диммера и умножать на коофициент диммера Последний раз редактировалось Bulatovor; 30.05.2013 в 11:56. |
30.05.2013, 10:26 | #8 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Цитата:
|
|
30.05.2013, 13:46 | #9 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Ну вот от скуки попробовал вариант с компаратором - опорное напряжение будет получено из равноплечего резистивного делителя, соответственно оно будет равно логическому нулю на датчике тока, независимо от колебаний напряжения arduino. Вечером протестирую на железе если успею
PHP код:
Последний раз редактировалось Bulatovor; 30.05.2013 в 13:52. |
30.05.2013, 20:20 | #10 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Сделал делитель из двух резисторов по 100 ом. Работает, но так же не стабильно как и в версии без компаратора. Жду 5 амперные датчики
|
Здесь присутствуют: 16 (пользователей: 0 , гостей: 16) | |
|
|