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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2015, 12:50   #1
utya
Junior Member
 
Регистрация: 29.01.2015
Сообщений: 6
Вес репутации: 0
utya is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Спасибо большое. Теперь понятно, а то я мозг ломаю, думаю где же оно многоканальная если там всего один выход
utya вне форума   Ответить с цитированием
Старый 30.01.2015, 13:17   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Многоканальнасть получается не в силовом модуле, а в контроллере и его коде
Admin вне форума   Ответить с цитированием
Старый 25.02.2015, 19:46   #3
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Ну теперь для меня стало ясно где искать. Чтение яндекса показало, что IRRemove.h использует прерывания во всю. Например участники дружественного форума mebitek и Chip ( )еще в 2011 году выяснили, что IrRemove и MsTimer2 одно и тоже прерывание Timer2 и несовместимы.
Итого, прерывания в ардуине не имеют приоритета -соответственно пока обрабытывается одно из прерываний - в твоем случае чтение ИК датчика - прерывания диммера не работают. Чтоб не мигало нужна ИК библиотека без прерываний(но я такой не нашел -может Вам повезет) . Ну и решить проблемы немосместимости библиотек MsTimer2 её можно заменить на TimerOne или использовать многозадачность ардуино версии 2

А теперь о грустном
Цитата:
Хотелось бы, чтобы свет вообще не мигал из-за ИК приемника) По крайней мере при считывании температуры этого удалось добиться
Математика твои хотелки делает невозможным (ну за исключением проживания на жд станциях европы и сша, где частота тока 16 и 25 кгц). Длина пачки импульсов большинства пультов от 60 до 80 мсек. А чтоб диммер не пропускал периоды - считать и обработать эту пачку вы должны за 40 . Путем оптимизации кода можно добится только минимального мерцания -шоб незаметно было

После оптимизации кода чтения пульта ДУ надо измерить время его обработки, соответственно увеличить интервал таймера
Цитата:
StartTimer1(halfcycle, 40); //время для одного разряда ШИМ
и соответственно уменьшить дискретность регулирования

Последний раз редактировалось Bulatovor; 25.02.2015 в 20:57.
Bulatovor вне форума   Ответить с цитированием
Старый 26.02.2015, 02:14   #4
Arduino
Junior Member
 
Регистрация: 25.02.2015
Адрес: Санкт-Петербург
Сообщений: 5
Вес репутации: 0
Arduino is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Bulatovor Посмотреть сообщение
Итого, прерывания в ардуине не имеют приоритета -соответственно пока обрабытывается одно из прерываний - в твоем случае чтение ИК датчика - прерывания диммера не работают. Чтоб не мигало нужна ИК библиотека без прерываний(но я такой не нашел -может Вам повезет) . Ну и решить проблемы немосместимости библиотек MsTimer2 её можно заменить на TimerOne или использовать многозадачность ардуино версии 2
К сожалению, TimerOne не совместима с библиотекой CyberLib, т.к. там тоже используется Timer1. А с библиотекой leOS2 у меня, к сожалению, перестает работать wifi модуль. Видимо оперативная память в arduino nano заканчивается совсем.
Еще находил библиотеку TimerThree, но в arduino nano она вроде не поддерживается.
Видимо, не запусить это все вместе на малютке arduino nano.
В любом случае, спасибо вам огромное за помощь!
Arduino вне форума   Ответить с цитированием
Старый 26.02.2015, 06:59   #5
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Да ну! Я на нано целый вэб сервер запускал -тока работал он плохо . А память она у всех одинаковая. Так что избавляйся от прерываний по таймеру и делай внешнее прерывание от приемника, если уж перенести на вторую ногу не сможешь(хотя люди переносят передатчик в ноги 3 на другие) делай прерывание по группе ног и маске -тогда на любую ногу можно приемник подключать с прерыванием. у меня на 328 камне работали сетевая карта+радиомодуль+дат чики температуры, давления, влажности+IR приемник и IR передатчик. Засунь туда все что хочешь и получишь удовольствие от собственного величия

TimerThree поддерживает 328-ые камни, в том числе и нано

Последний раз редактировалось Bulatovor; 26.02.2015 в 07:05.
Bulatovor вне форума   Ответить с цитированием
Старый 26.02.2015, 19:05   #6
Arduino
Junior Member
 
Регистрация: 25.02.2015
Адрес: Санкт-Петербург
Сообщений: 5
Вес репутации: 0
Arduino is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Bulatovor Посмотреть сообщение
TimerThree поддерживает 328-ые камни, в том числе и нано
Странно. Мне выдает подобные ошибки при компиляции:
PHP код:
'TCCR3A' was not declared in this scope
'TCCR3B' was not declared in this scope 
Судя по этой статье, в 328 камне поддерживаются Timer0, Timer1, Timer2

Последний раз редактировалось Arduino; 26.02.2015 в 19:31.
Arduino вне форума   Ответить с цитированием
Старый 26.02.2015, 19:35   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Судя по этой статье, в 328 камне поддерживаются Timer0, Timer1, Timer2
Все верно, но что бы понять ошибку нужно Ваш код видеть
Admin вне форума   Ответить с цитированием
Старый 26.02.2015, 22:09   #8
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Судя по всему не поддерживает -у меня даже примеры не компилирует
Bulatovor вне форума   Ответить с цитированием
Старый 26.02.2015, 22:23   #9
Arduino
Junior Member
 
Регистрация: 25.02.2015
Адрес: Санкт-Петербург
Сообщений: 5
Вес репутации: 0
Arduino is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
Все верно, но что бы понять ошибку нужно Ваш код видеть
Цитата:
Сообщение от Bulatovor Посмотреть сообщение
Судя по всему не поддерживает -у меня даже примеры не компилирует
Да, стандартный пример не компилируется:
PHP код:
#include <TimerThree.h>

// This example uses the timer interrupt to blink an LED
// and also demonstrates how to share a variable between
// the interrupt and the main program.


const int led LED_BUILTIN;  // the pin with a LED

void setup(void)
{
  
pinMode(ledOUTPUT);
  
Timer3.initialize(150000);
  
Timer3.attachInterrupt(blinkLED); // blinkLED to run every 0.15 seconds
  
Serial.begin(9600);
}


// The interrupt will blink the LED, and keep
// track of how many times it has blinked.
int ledState LOW;
volatile unsigned long blinkCount 0// use volatile for shared variables

void blinkLED(void)
{
  if (
ledState == LOW) {
    
ledState HIGH;
    
blinkCount blinkCount 1;  // increase when LED turns on
  
} else {
    
ledState LOW;
  }
  
digitalWrite(ledledState);
}


// The main program will print the blink count
// to the Arduino Serial Monitor
void loop(void)
{
  
unsigned long blinkCopy;  // holds a copy of the blinkCount

  // to read a variable which the interrupt code writes, we
  // must temporarily disable interrupts, to be sure it will
  // not change while we are reading.  To minimize the time
  // with interrupts off, just quickly make a copy, and then
  // use the copy while allowing the interrupt to keep working.
  
noInterrupts();
  
blinkCopy blinkCount;
  
interrupts();

  
Serial.print("blinkCount = ");
  
Serial.println(blinkCopy);
  
delay(100);

Возможно есть библиотека для нулевого таймера, но его вроде не советуют использовать.
Arduino вне форума   Ответить с цитированием
Старый 22.03.2015, 18:13   #10
jjm.cp
Junior Member
 
Регистрация: 22.03.2015
Сообщений: 1
Вес репутации: 0
jjm.cp is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Всем добра!
Уважаемый Admin, подскажите пожалуйста, возможно ли использовать диммер-модуль управляя им с компьютера с подключённой к нему Arduino, например используя Firmata? У меня Arduino megа 2560, тут вроде пишут, что с ней не работает, это грустно... Но можно и на UNO, если это вообще возможно.
В качестве управляющей программы использую vvvv, а оно работает через Firmata.
Есть ли шансы заставить диммер работать и, если есть, то как?
jjm.cp вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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