реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Эмулятор ИК пультов
AlexTech
сообщение Apr 1 2007, 13:05
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 2-12-05
Пользователь №: 11 688



Вот возникла необходимость замутить такой девайс: управление несколькими бытовыми приборами с помощью ИК. Микроконтроллер управляется с помощью кнопок(6) и командами с компа через usb или com, и соответственно должен выдавать ИК команды предварительно записанные с "родных" пультов.
Схемотехника понятна и примитивна, а вот как генерировать пачки ИК импульсов с несущей 38-40кгц я чего-то никак не могу придумать. Может есть у кого идеи или готовые наработки, помогите пожалуйста разобраться...

Целевой девайс будет на AT90S2313, 12мгц
Тестовая платформа - Mega16, 8мгц

ЗЫ. Для любыпытствующих: это будет работать в автомобиле - кнопки те которые на руле стоят, компутер - CarPC, а управлять будет магнитолой и монитором.
Go to the top of the page
 
+Quote Post
jekler
сообщение Apr 1 2007, 14:02
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 30-08-05
Пользователь №: 8 094



думаю ЭТО то что нужно

Сообщение отредактировал jekler - Apr 1 2007, 14:02


--------------------
Go to the top of the page
 
+Quote Post
Ramil
сообщение Apr 1 2007, 14:20
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 93
Регистрация: 5-08-04
Пользователь №: 452



Тоже мысль возникала сделать универсальный пульт для себя.
Из идей - это использовать какой нибудь готовый пульт в который встраивается своя платка,
которая понимала бы сигналы излучаемые этим пультом и выдавала нужный.
Плюс в том что есть готовый корпус с кнопками, нужно только подключить выход
на свою схему а из нее на излучатель.

У атмела есть апноты
AVR410: Приемник RC5 инфракрасного дистанционного управления
описание
исходники
AVR415: Передатчик RC5 инфракрасного дистанционного управления
описание
исходники
Go to the top of the page
 
+Quote Post
AlexTech
сообщение Apr 1 2007, 14:23
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 2-12-05
Пользователь №: 11 688



Цитата(jekler @ Apr 1 2007, 15:02) *
думаю ЭТО то что нужно


Очень похоже ))) осталось с делителями частоты разобраться. Спасибо.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Apr 1 2007, 14:40
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Занимался я подобным года 2-3 назад,даже наваял тяжеловесную прогу для компа, столкнулся
с большим разнообразием протоколов ,с префиксами и суфиксами сигналов,так и не смог привести все это в какой то общий вид.
Поэтому если есть мысля типа универсального пульта - ориентируйтесь на какой то один протокол ,наиболее распостраненный RC-5 ,все однопроцессорные телики на нем и большинство DVD.
Наиболее распостраненная модуляция 38кГц и 455кГц.

Насчет использования в готовом корпусе пульта из атмела годится Тини28 c аппараным модулятором -она "затачивалась" под это.Памяти под универсалку маловато ,но шить под конкретный аппарат можно
(типа как пульты BQS)
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 1 2007, 15:42
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Фирма SONY начала производить универсальные обучаемые пульты ДУ еще лет 15 назад. Сейчас если это и актуально, то лишь для целей самообразования ИМХО.
P.S. Когда-то на форуме rc5.ru был опенсорсный проект по считыванию кодов от различных ТВ-пультов ДУ на компьютере и была база этих кодов. Сейчас видимо этот проект аннулировали.
Go to the top of the page
 
+Quote Post
AndryG
сообщение Apr 2 2007, 09:09
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 23-05-05
Из: UA
Пользователь №: 5 317



Цитата
а вот как генерировать пачки ИК импульсов с несущей 38-40кгц я чего-то никак не могу придумать. Может есть у кого идеи или готовые наработки, помогите пожалуйста разобраться...


http://www.remexpert.com/forum/viewtopic.php?t=1000
http://www.remexpert.com/forum/viewtopic.php?t=1003
Go to the top of the page
 
+Quote Post
Kolia
сообщение Apr 2 2007, 12:59
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



может пригодиться

http://www.petesworld.demon.co.uk/homebrew...picprojects.htm
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Apr 2 2007, 17:01
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата
Схемотехника понятна и примитивна, а вот как генерировать пачки ИК импульсов с несущей 38-40кгц я чего-то никак не могу придумать. Может есть у кого идеи или готовые наработки, помогите пожалуйста разобраться...

я на АВР делал, соневский. Очень просто: запускаем ШИМ, настроенный на 38 кгц, по окончании посылки останавливаем.


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
VAHOO
сообщение Apr 2 2007, 21:14
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Цитата(Pyku_He_oTTyda @ Apr 2 2007, 18:01) *
я на АВР делал, соневский. Очень просто: запускаем ШИМ, настроенный на 38 кгц, по окончании посылки останавливаем.


а можно примерчик?


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Apr 3 2007, 06:57
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



правда он корявый, сделано на ТИНИ26, 8Мгц выход с PВ1

//Timer/Counter 1 установки таймера
PLLCSR=0b00000110;
TCCR1A=0b11000010;
TCCR1B=0b00000100;
TCNT1=0x00;
OCR1A=100;
OCR1B=0x00;

void waitPLL(void)
{
//ждем синхронизации PLL при запуске МК (ШИМ тактируется от //встроенного PLL на 64 МГц
while((PLLCSR&0x01)==0);
}


// генерация старт-бита для посылки сони
void start(void)
{
TCCR1B|=0x80;
OCR1C=199; //запуск таймера
delay_2.4(); //задержка 2,4 мс (формируется TIMER0) в принципе //можно использовать и задержки из <delay.h>, тогда будет
// delay_us(2400); - проверял - работает, но так писать проги //несколько неправильно
OCR1C=0; //стоп таймера
delay_0.6(); // пауза до посылки следующего импульса (определено протоколом SIRC) (аналогично работает delay_us(600); )
}

насчет програмных задержек, просто, но не всегда надежно - компилятор может и дурить, выход отсчитывать временные интервалы с помощью другого таймера (душевное спокойствие гарантировано) или контролировать то, что получилось осцилографом


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 3 2007, 11:34
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Pyku_He_oTTyda @ Apr 3 2007, 06:57) *
....
// delay_us(2400); - проверял - работает, но так писать проги //несколько неправильно
....
// ..... delay_us(600); )
}


Не правильно, правильно так:
delay_ms(2.4);
delay_ms(0.6);

И оптимизация как минимум -O1.

Анатолий.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01457 секунд с 7
ELECTRONIX ©2004-2016