Страница 1 из 1
Ретранслятор ИК-сигналов.
Добавлено: Сб апр 07, 2007 23:56:20
Voodoo-Cat
Хотел зделать ИК ретранслятор.
Взял приемник типа ТSOP и подключил Ик Диоду.
Мобилкой видно, что он мигает,но телик не реагирует!

Так же пробовал через МК.
Добавлено: Сб апр 07, 2007 23:58:32
dx40
Для того чтобы схема заработала надо сигнал от tsop'a перед подачей на светодиод модулировать несущей частотой (обычно 38 кгц).
ик
Добавлено: Вс апр 08, 2007 10:59:59
Voodoo-Cat
ето в смысле если 1 то сигнал с частотой 38кгц?
Может у когото есть примеры для CodeVision для отправки сигнала?
Добавлено: Вс апр 08, 2007 11:12:13
dx40
Простейший пример - генерируем пачки по 10 импульсов с частотой 38 кгц.
Код: Выделить всё
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.5 Standard
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project :
Version :
Date : 02.07.2006
Author : Artem
Company : Art Inc.
Comments:
Chip type : ATtiny2313
Clock frequency : 8,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32
*****************************************************/
#include <tiny2313>
#include <delay>
// Timer 0 output compare B interrupt service routine
unsigned char stt;
interrupt [TIM0_COMPB] void timer0_compb_isr(void)
{
// Place your code here
if (PORTB==0) PORTB=255; else PORTB=0; //сами импульсы
stt++;
if (stt==20) DDRB=0; //10 импульсов не выводим
if (stt==40) DDRB=255; //10 импульсов выводим
if (stt==40) stt=0;
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTB=0xFF;
DDRB=0xFF;
// Port D initialization
// Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=1 State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x40;
DDRD=0x40;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x02;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x69;
OCR0B=0x01;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
PORTD.6=!PORTD.6; // просто мигаем светодиодом для индикации что устройство работает.
delay_ms(50);
};
}
Добавлено: Вс апр 08, 2007 11:37:47
Мышонок
У различных TSOP несущие частоты разные (от 25 до 45 кГц по-моему), зависит от типа. Надо уточнить. Соответственно и пульт/СДУ.
А не проще ли зеркальце?

ИК
Добавлено: Вс апр 08, 2007 12:29:37
Voodoo-Cat
Просто загорелся желанием зделать унивесальный пульт для всего(от одного пульта) + управление разл. релюхами.
Добавлено: Вс апр 08, 2007 12:36:46
Мышонок
Тогда тебе надо учесть, что несущие частоты разные у разных приёмников (и передатчиков разумеется) и коды команд тоже могут быть разными. Поэтому совет: что у тебя за аппаратура, определись какие типы СДУ используются и отсюда пляши. Для передатчика (пульта) частоты и коды варьировать можно, если ты задумал универсальный, а вот на приёмнике - как правило, не получится, там частота и коды жёсткие.
Добавлено: Вс апр 08, 2007 13:54:32
ARV
Для универсального пульта придется как-то сосканировать сигналы со всех имеющихся пультов, чтобы определить формат кодов и частоту несущей. Поэтому надо сначала сделать универсальный приемник. ИМХО, интегральные приемники реагируют на любую частоту несущей, возможно, просто теряют при этом чувствительность (т.е. приемник 38 кГц будет реагировть на сигнал 35 или 42 кГц, но не с 7м, а предположим, с одного или менее). Соответственно, если увеличить мощность передатчика, то можно и не изменять частоту, а работать на какой-нибудь одной средней.
Повторяю, это пока только мнение, основанное на том, что для компьютера есть универсальная программа SlyControl, которая распознает коды практически любых пультов, не взирая на частоту несущей, используя при этом один и тот же приемник. Отсюда и вывод о том, что приемник может быть один на все передатчики, и, соответственно, может быть один передатчик на все приемники.
Было бы интересно узнать результаты экспериментальной проверки моего предположения.
Добавлено: Вс апр 08, 2007 14:36:12
Мышонок
Я думаю, что по типам соориентироваться будет полегче. Смысл я так понял, в изготовлении ретланслятора. А это уже проблема: каждому приёмнику от одного пульта разные сигналы посылать. А переделывать приёмники в самих аппаратах, я думаю, не стоит оно того. Т.е. повторюсь, легче универсальный пульт (передатчик) сочинить будет.
Добавлено: Вс апр 08, 2007 17:07:20
ARV
Я в этом ключе и высказывался. Чтобы сделать универсальный пульт, надо, чтобы он умел передавать разные форматы кодов на разной несущей. Я предлагал предварительно оценить необходимость генерировать разные несущие - мне кажется, это необязательно. Если так, то в универсальный пульт встраиваем МК, ИК-светодиод и ИК-приемник, потом "обучаем" его - подаем на него с разных имеющихся пультов разные команды, которые наш пульт запоминает. После этого он и сам сможет передать любой запомненный код - станет универсальным. Если еще и разную несущую формировать - программа МК будет сложнее, но в принципе, и это решаемо, только интегральный ИК-приемник придется заменить фотодиодом с усилителем, т.е. на схему, которая не имеет частотной избирательности.
С универсальным пультом еще другая проблема подстерегает: большое кол-во кнопок...
Добавлено: Вс апр 08, 2007 18:29:33
Мышонок
Кнопок можно и не очень много сделать, только замучаешься одну команду мульоном нажатий на кнопки или их комбинации задавать. Или переключатель режимов делать: типа телевизор, МЦ, кондиционер и т.п. Есть в продаже универсальные пульты на МК, стоят тоже хорошо. И всё-таки они не совсем универсальны, всегда найдётся что-то, что они не поддерживают.
Добавлено: Вс апр 08, 2007 19:53:46
ARV
Эх, была не была! Дарю всем свою идею: все равно у меня руки скорее всего не дойдут ее реализовать...
Берем графический ЖК-индикатор хотя бы 32х128 (лучше - шире), располагаем его вдоль корпуса пульта, вдоль каждой длинной стороны ставим 4-5 кнопок (всего 8 или 10)... Делаем графическое меню, типа "иконки" напротив кнопок: сначала светятся изображения телевизора, муз.центра, DVD и чего там еще, обязательно кнопка "настройки". Нажимаем кнопку напротив нужной иконки - получаем набор команд соответствующего устройства... Ну, думаю, идея ясна. Если долго кнопки не жмем - все засыпает, дисплей гаснет... Снова все включается по нажатию любой кнопки.
В принципе, задача потребует неплохой программы и неслабого МК, точнее, памяти под всю эту графику, но в итоге получается универсальное, красивое и вполне удобное устройство.
Добавлено: Вс апр 08, 2007 20:19:29
Мышонок
ARV, знаешь "знаменитую" неисправность ПДУ, особенно длинных "Горизонтовских"?

Пульт валяется где-то на кресле или диване (это не важно), со всего раззгону "плюх" в кресло, ПДУ - "хрясть"!

У большинства пультов страдал корпус, в принципе лечился скотчем или изолентой. А вот в "Горизонтовском" практически в 100% микросхема тоже "хрясть"

. И приходилось - либо ремонт пульта, либо новый пульт. И то и другое стоило немало, при том, что микросхеме была цена - копейки. Так вот не получится ли так с LCD?

Добавлено: Вс апр 08, 2007 20:24:02
ARV
1. По-моему, тема уже переросла из практики в умные мысли

2. Хрясь оно и в Африке хрясь... Тут надо уж как-то головой пользоваться... А сама идея от этого не становится хуже
3. Если корпус сделать из стали - никакая попа в кресле будет не страшна

Добавлено: Вс апр 08, 2007 20:32:58
Мышонок
Да, вот головой-то...

А посему анекдот в тему:
Как известно, в Японии и начальники, и простые клерки, и т.д. сидят на работе практически на одинаковых стульях. И вот, приходит японская делегация на один из наших заводов (реальный случай, между прочим!), заходят к директору и видят: кресло, ну как у нас везде

, на пол-кабинета

, а самого директора в нём и не видно даже

. Японцы задают вопрос гиду:
- А зачем ему такое большое кресло?
- Это же директор завода, у него очень сложная и ответственная работа, ему приходиться много думать...
- А мозги у него, извините, тогда где?

Re: ИК ретранслятор (для СДУ)
Добавлено: Вт сен 21, 2010 09:54:06
Kvanto
Всем привет! Понравилась схема ИК-ретранслятора
http://radiokot.ru/circuit/analog/home/07/. Но непонятно кое-что. Получается, что это устройство передает через стенку ИК-сигнал на DVD-плеер?
Re: ИК ретранслятор (для СДУ)
Добавлено: Вт сен 21, 2010 15:26:57
Gudd-Head
Kvanto писал(а):Получается, что это устройство передает через стенку ИК-сигнал на DVD-плеер?
Ага. Провода пущены через стену.