Перейти к содержанию
    

алгоритм для записи пульта в AVR

То есть, вы пытаетесь сделать "обучаемый" приемник, способный настраиваться на любой ИК пульт? Бросьте эту затею, это совершенно точно задача не для начинающих. В общем виде она скорей всего вообще не решается. Вряд ли вы представляете себе, насколько разнообразны ИК протоколы в пультах, поэтому поставили себе задачу, с которой не справитесь.

Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема.

Ну, еще от кондиционеров пульты точно не подойдут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а как решают эту проблему в выключателях?

по моему сделан "обучаемый" приемник, способный настраиваться на любой ИК пульт.

чаще встречаются пульты от NEC a, а мне очень знакомо протокол RC-5, я уже написла код

и нормально работает, но только с RC-5 не обойтись :( , а у SONY совсем другой протокол.

 

" 3. при следующем прерывании пишем в массив текущее значение таймера и сбрасываем таймер. "

 

дорогой Клим скажите пожалуйста

 

1. какой таймер мне надо настроить и запустить?

2. текущее значение таймера что означает?

тоесть инкрементировать? так как я сделал?

или взять значение TCNT0?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. какой таймер мне надо настроить и запустить?

2. текущее значение таймера что означает?

тоесть инкрементировать? так как я сделал?

или взять значение TCNT0?

1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?)

2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы).

Брать TCNTx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Какой не жалко их там в меге аж 3 штуки. 1 из них, еще нужно будет использовать для слежения за фазой. (Или регулировки яркости не будет?)

2. Текущее значение таймера при прерывании =время предыдущего импульса (или паузы).

Брать TCNTx

 

 

регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

регулировки яркости будет, а таймер0 8 разр. настроить на 1 мкс?

Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило.

А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень даже решается. И если система не будет работать с каким-нибудь чудо-пультом от супернавороченной автомагнитолы - это не такая уж проблема.

Ну, еще от кондиционеров пульты точно не подойдут...

Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редким Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC, где в соседних рамках инвертируется часть битовых полей. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

 

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там смотреть надо, какая максимально длина импульса может быть(и паузы) Чтоб таймера хватило.

А 1мкс - это очень мало. Там модуляция идет 38кгц - так что меньше 25мкс - смысла нету.

 

Извините, Клим, но я с вами не согласен,

у меня есть монжество протоколв, по моему надо настроить по махимум длини между импулсами,

а махимум примерно 9000 мкс, а модуляция сигнала здесь не причем, по моему надо

настроить таймер на 10 милисекунд,

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу удержания кнопок и повторных посылок.

Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

 

http://ru.wikipedia.org/wiki/%D0%9F%D1%83%...%BD%D0%B8%D1%8F

 

Вот тут все написано. И есть ссылки на системы кодирования.

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редки Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

 

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.

 

мне надо только что-бы работал с пультов от телика, ДВД, видек, это достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а как решают эту проблему в выключателях?

О каких выключателях идет речь?

 

Например, я совершенно точно знаю, что выключатели системы управления освещением C-bus, которые управляются от ИК пультов, НЕ обучаемые, протокол в них зашит намертво.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу. И если не использовать пульты с импульсными кодами. И если игнорировать пульты со слишком низкими и слишком высокими несущими (бог с ним, с редки Сони протоколом, имеющим несущую порядка 2 МГц, я имею в виду прежде всего достаточно распространенные протоколы с несущей 455 кГц). И если исключить протокол JVC. И если "вручную" заточить под протокол RC-5 и т.п., где составе посылки есть двухбитный счетчик нажатий. И т.д.

 

А не слишком ли много "если", ась? Вот именно поэтому я и сказал, что в общем виде задача скорей всего вообще не решается.

Насчет модуляции сильно отличной от 38 - то тут уже приемник просто не пропустит.

Я ж про сильно экзотические не говорю. Но лично я пробовал штук 5 различных пультов отличных от RC5 - все работало. Не захотел какой-то от Creative audigy и sony тож какой-то был. А так, это выключатель света в комнате, в которой навернякак пульт не один имеется. И хоть один будет работать. Если все совсем грустно - то в крайнем случае покупается на радиорынке любой RC5.

 

 

 

Извините, Клим, но я с вами не согласен,

у меня есть монжество протоколв, по моему надо настроить по махимум длини между импулсами,

а махимум примерно 9000 мкс, а модуляция сигнала здесь не причем, по моему надо

настроить таймер на 10 милисекунд,

У вас приемник настроен на 38кгц модуляцию. 36 с небольшими потерями тоже кушает. Все что по частоте ниже - будет очень плохо. Выше - вообще работать не будет.

А для 38кгц модуляции минимальная длина импульса 26микросекунд

 

По поводу удержания кнопок и повторных посылок.

Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

В разных протоколах - по разному

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в чем вопрос? Поскольку приемник детектирует сигнал (обрезает засветки и помехи) то на выходе у него последовательность импульсов с интервалами в зависимости от протокола. Достаточно принимаемым контроллером определить присутствие импульсов (вообще любых!!!) и это и будет условием переключения, включения, уменьшения/увеличения яркости.

Уменьшение/увеличение яркости делаем так:

Опрос входа(периодичность хоть 1 сек) на наличие импульсов (любых импульсов) есть значит увеличиваем. Закончились- ждем следущей непрерывной посылки при которой будем уменьшать яркость и т.д.

вход в режим регулировки (чтобы случайно не срабатывало при управлении тв) можно установить по присутствию сигнала с условными интервалами пакетов.

Может вас этот вариант устроит...

Есть только вопрос с пультами которые посылают после отправки команды короткие команды подтверждения.. но думаю можно решить это алгоритмами в контроллере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу удержания кнопок и повторных посылок.

Насколькоя я лично это дело делал, то существует специальный код - "Повтор предыдущей посылки". Он одинаков для повтора любой клавиши.

 

http://ru.wikipedia.org/wiki/%D0%9F%D1%83%...%BD%D0%B8%D1%8F

 

Вот тут все написано. И есть ссылки на системы кодирования.

 

ни у всех протоколов, у RC-5, PANASONIC да, а у NEC a после первой посылки отправляет

только стартовый импулс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в чем вопрос? Поскольку приемник детектирует сигнал (обрезает засветки и помехи) то на выходе у него последовательность импульсов с интервалами в зависимости от протокола. Достаточно принимаемым контроллером определить присутствие импульсов (вообще любых!!!) и это и будет условием переключения, включения, уменьшения/увеличения яркости.

Уменьшение/увеличение яркости делаем так:

Опрос входа(периодичность хоть 1 сек) на наличие импульсов (любых импульсов) есть значит увеличиваем. Закончились- ждем следущей непрерывной посылки при которой будем уменьшать яркость и т.д.

вход в режим регулировки (чтобы случайно не срабатывало при управлении тв) можно установить по присутствию сигнала с условными интервалами пакетов.

Вот это вполне разумный и осуществимый вариант. Не протоколы изучать и декодировать, а обнаруживать сам факт ИК посылки на частоте, близкой к 38 кГц.

 

ни у всех протоколов, у RC-5, PANASONIC да, а у NEC a после первой посылки отправляет

только стартовый импулс.

А ведь есть протоколы, которые делают с точностью до наоборот: сначала посылают "стартовый" пакет, а потом повторяют информационные пакеты. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет модуляции сильно отличной от 38 - то тут уже приемник просто не пропустит.

Я ж про сильно экзотические не говорю. Но лично я пробовал штук 5 различных пультов отличных от RC5 - все работало. Не захотел какой-то от Creative audigy и sony тож какой-то был. А так, это выключатель света в комнате, в которой навернякак пульт не один имеется. И хоть один будет работать. Если все совсем грустно - то в крайнем случае покупается на радиорынке любой RC5.

У вас приемник настроен на 38кгц модуляцию. 36 с небольшими потерями тоже кушает. Все что по частоте ниже - будет очень плохо. Выше - вообще работать не будет.

А для 38кгц модуляции минимальная длина импульса 26микросекунд

В разных протоколах - по разному

 

если я буду брать знаяение TCNTx, мне больше не надо по моему прерывание от таймера и здесь

модуляция ни причем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...