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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2013, 19:10   #31
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

Цитата:
Сообщение от vadymkyr Посмотреть сообщение
а как использовать плавное включение и выключение, если нельзя использовать delay()?
А кто сказал что нельзя использовать delay?
Используйте
Admin вне форума   Ответить с цитированием
Старый 21.02.2013, 19:15   #32
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
По умолчанию

А чем прерывание по таймеру не удовлетворяет или исследованная ранее Админом теория о многозадачности Arduino? Хотя наверное есть и проще реализация например через основное тело программы уменьшение.увеличени� � значения переменной по условию
Bulatovor вне форума   Ответить с цитированием
Старый 21.02.2013, 19:30   #33
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
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Это снаббер, нужен он для того чтобы симистор смог быстро и легко закрываться особенно при индуктивной нагрузке, а также исключает повторные или ложные открывания тиристора.
Спасибо, пополнил копилку знаний.А поподробнее можно? А то из того что прочитал -штука хорошая, только вот габаритная -и кондер высоковольтный - я так понимаю пленочник на менее 400 вольт и резистор керамика -тож немаленькая штука - однако в подразетник не влезет
Bulatovor вне форума   Ответить с цитированием
Старый 21.02.2013, 19:33   #34
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

Если нет индуктивной нагрузки, то снаббер можно не использовать
У меня снабберы стоят только на рольставнях
Admin вне форума   Ответить с цитированием
Старый 21.02.2013, 19:45   #35
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 вне форума   Ответить с цитированием
Старый 21.02.2013, 20:36   #36
vadymkyr
Junior Member
 
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0
vadymkyr is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
А кто сказал что нельзя использовать delay?
Используйте
не внимательно прочитал.
а как можно организовать плавное включение и выключение бeз delay()?
vadymkyr вне форума   Ответить с цитированием
Старый 21.02.2013, 21:01   #37
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

Если без delay то можно использовать функцию millis();
Admin вне форума   Ответить с цитированием
Старый 21.02.2013, 21:57   #38
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 код:
// Плавное гашение и нарастание

#include <MsTimer2.h> // подключаем библиотеку прерывания по Timer2
int  Dimmer1
int L 0;      //  вводим переменную для обозначения уменьшения яркости, чтоб не использовать два прерывания
int H 0;      //  вводим переменную для обозначения увеличения яркости
void setup() {
  
 
MsTimer2::set(70off_with_time_delay); // установка прерывания по таймеру 1000ms - 1 секунда - определяющая плавность изменения, можно заменить время на переменную
}
 
// Обработчик прерываний Таймера2
void off_with_time_delay() {
 if(
L==1// если стоит указатель на плавное гашение
    
{if(Dimmer1<255)// и свет еще горит, вместо максимального значения в 255 можно использовать переменную - определяющую до какого уровня гасить
       
{Dimmer1++;} // увеличиваем значение переменной Dimmer1 на единицу
       
else
       {
MsTimer2::stop();L=0;};} // иначе (если свет уже потух) останавливаем прерывание и обнуляем указатель направления гашения
 
if(H==1// а тут все наоборот
    
{if(Dimmer1>0)
       {
Dimmer1--;}
       else
       {
MsTimer2::stop();H=0;};   
  }
void loop() 
   { 
// В теле программы или в каком нибудь другом месте - например по прерываниям кнопки запускаем прерывание и присваиваем переменным L или H( в зависимости от того гасим или зажигаем)единицу
           
MsTimer2::start(); // запускаем таймер             
           
L=1;
       }; 
Bulatovor вне форума   Ответить с цитированием
Старый 21.02.2013, 22:31   #39
vadymkyr
Junior Member
 
Регистрация: 21.02.2013
Адрес: Севастополь
Возраст: 33
Сообщений: 7
Вес репутации: 0
vadymkyr is an unknown quantity at this point
По умолчанию

спасибо, только не совсем понял, как это все скрестить
vadymkyr вне форума   Ответить с цитированием
Старый 22.02.2013, 00:58   #40
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от dmitry123 Посмотреть сообщение
А нахрена столько условий ?
Не легче:
if ((String)unitID_in == "001") {
if ((String)command_in == "") command_in=255; // Проверка на то, если нет значения димера
Dimmer1=command_in;
}
Объясните пожалуйста Dimmer1=command_in; .
alex74 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 69 (пользователей: 0 , гостей: 69)
 

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

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

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


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


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