Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.05.2013, 21:15   #121
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Как- то вот так

Последний раз редактировалось Bulatovor; 17.05.2013 в 21:51.
Bulatovor вне форума   Ответить с цитированием
Старый 21.05.2013, 13:59   #122
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Заказал датчики на 5a. Вот еще какая мысль пришла -если AREF посадить на внутреннее напряжение в 1.1 вольта - получается что увеличу дискретность порта в 5 раз(ну конечно за счет снижения максимального значения). Надоть попробовать.
Bulatovor вне форума   Ответить с цитированием
Старый 21.05.2013, 14:02   #123
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Тогда на аналоговый вход нельзя подавать больше чем 1,1в
Вернее можно, но только он от 1,1в до 5в будет показывать максимальное значение 1023
Admin вне форума   Ответить с цитированием
Старый 28.05.2013, 20:26   #124
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Подключил к радиоканалу и начал мониторить. При нагрузке даже в 40 ватт на 20 амерный датчик выдатся значения 516-517 что для диммера должно хватать. Судя по всему в чем косяк стало понятно, в первоисточнике с датчиком ноля - определяется только ноль , а дальше работает таймер. А у меня же прерывания постоянно без запуска отдельного таймера и в результате в выложенном ранее коде получается
PHP код:
void halfcycle()  //прерывания таймера 
{    
  
Vout=A3_Read// читаем  порт к которому подключен выход датчика тока
  
if (Vout>508 && Vout<516)  tic=0;   //детектор ноля     
  
if(Dimmer tic) {D13_High;} else  D13_Low;
tic++;  //счетчик  
}; 
А засада вот в чем: пока счетчик не достиг значения диммера нагрузка выключена -отрезаем фронт, т.е. нагрузка моментальная 0, соответственно значение датчика 512 и счетчик каждое прерывание обнуляется, т.е. все правильно -диммер работает только выключателем, когда значение Dimmer равно нулю- то нагрузка сразу включается и показания датчика растут, в иных случаях она по этому коду и не должна включиться. Будем думать...
Bulatovor вне форума   Ответить с цитированием
Старый 28.05.2013, 20:41   #125
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

решения с ходу приходит пока только с использованием костыля (флага)
PHP код:
void halfcycle()  //прерывания таймера 
{    
  
Vout=A3_Read// читаем  порт к которому подключен выход датчика тока
  
if (Vout>508 && Vout<516 && flag==0)  {tic=0flag=1;}   //детектор ноля     
  
if(Dimmer tic) {D13_Highflag=0;} else  D13_Low;
tic++;  //счетчик  
}; 
Но нужно что-то более элегантное

Последний раз редактировалось Bulatovor; 29.05.2013 в 07:12.
Bulatovor вне форума   Ответить с цитированием
Старый 28.05.2013, 22:28   #126
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Наверно имелось ввиду
if (Vout>508 && Vout<516 && flag==0) { tic=0; flag=1; } //детектор ноля

Ошибка в выполнении условия, выполнится только tic=0; так как нет фигурных скобок
Admin вне форума   Ответить с цитированием
Старый 29.05.2013, 07:11   #127
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Согласен
Bulatovor вне форума   Ответить с цитированием
Старый 29.05.2013, 18:51   #128
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

У меня к сожалению датчика тока под рукой нет, проверить никак ...
Проблема в том, насколько я понял, отловить ZeroCross через ACS712 ...
А если ловить его таким образом:
Ставим компаратор напряжения на выходе с ACS712, настраиваем на 2,5в ... а далее по накатаной схеме Admin'ом через прерывание ????
Как вариант - микросхема BU4825G-TR и настраивать ничего не надо .... 2.5в ...
Наверное правильнее будет ловить 0 через прерывание, чем через АЦП

Последний раз редактировалось dmitry123; 29.05.2013 в 19:00.
dmitry123 вне форума   Ответить с цитированием
Старый 29.05.2013, 19:16   #129
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

У Arduino есть встроеный аналоговый компаратор пины AIN0, AIN1
Но тут проблема в том, что когда через нагрузку не течет ток, то показания датчика все время будут на ноле.
Admin вне форума   Ответить с цитированием
Старый 29.05.2013, 21:10   #130
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

С костылем заработало, но немного не стабильно, еще не знаю почему - нужно докрутить будет, ну для начала увеличив нагрузку. Использование компатора ( выводы D6 и D7 Arduino) упростит задачу - отправив его по накатанной схеме с димером по прерываниям, но это лишнее лишнее - зачем два раза снимать показания с одного датчика -ведь его же функция еще и мерить ток.
Есть конечно интересная мысль -запускать таймер по прерыванию с компаратора, а ток измерять только раз в период (вместо 200) через 50 миллисекунд, но как быть тогда если кооффициент диммирования больше 50% -синусоида своего пика не достигнет? или мерять по включению диммера и умножать на коофициент диммера

Последний раз редактировалось Bulatovor; 30.05.2013 в 11:56.
Bulatovor вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 218 (пользователей: 0 , гостей: 218)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:21. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика