Устанавливаем дополнительный ик-приемник в спутниковый ресивер

Что может служить ИК-передатчиком?

Чаще всего, для передачи, используются специальные светодиоды или лазеры. Для наших задач, то есть передачи по воздуху на короткие расстояния, используются ИК-светодиоды, то есть те, которые излучают инфракрасный свет. Они дешевы, компактны и просты в использовании.

Передающие (ИК) диоды работают так же, как и обычные светодиоды, которые мы рассмотрели в наших ранних статьях. Единственное отличие — это «кристалл», излучающий свет. Конечно, все это делается для того, чтобы у него была правильная длина волны. К тому же, благодаря свойствам человеческого глаза, работа этого диода для нас невидима.

ИК-светодиоды чаще всего выпускаются в двух вариантах: с прозрачной или темной (черный / темно-синий) линзой. Цвет линзы совершенно не имеет значения, темная линза не является препятствием для инфракрасного излучения. Кроме того, как и обычные светодиоды, они выпускаются в корпусах разного диаметра, например 3 и 5 мм.

Различные цвета линз ИК-светодиодов

Конкретная информация об ИК-диоде содержится в документации производителя, которую можно найти по символу диода — к сожалению, он нигде не отмечен на корпусе. Обозначение стоит поискать на сайте продавца, хотя оно не всегда указано.

В случае светодиодов этого типа стоит проверить такие параметры, как:

  • длина излучаемой волны,
  • максимальная продолжительная мощность,
  • максимальный продолжительный ток (порядка нескольких десятков миллиампер),
  • максимальный ток в импульсе (даже более 2 ампер),
  • рабочее напряжение,
  • угол освещения,
  • размер корпуса.

Практическое использование передающих диодов отличается от светодиодов тем, что они обычно имеют импульсное питание. Передача происходит миганием с частотой несколько десятков килогерцовых импульсов с заполнением всего на несколько процентов. Проще говоря, вместо того, чтобы постоянно гореть, мы мигаем диодом очень быстро — таким образом, чтобы время свечения было намного короче, чем при выключенном диоде.

Конечно, речь идет об автоматически генерируемом сигнале, который очень и очень быстро «мигает» светодиодом (например, 36 000 раз в секунду) — мы разберемся с этим позже в этой статье. 

Благодаря этому, этот элемент не успеет перегреться при питании от более высокого тока. На практике мы получаем короткие, но очень сильные световые импульсы, которых достаточно для передачи данных на расстояние. Вот почему пульт от телевизора имеет такой хороший диапазон — сильный луч света легко отражается, например, от стен и потолка и попадает в приемник.

Пример управления ИК-диодом

Параметры примерного ИК-диода могут выглядеть так:

  • длина волны: 940 нм,
  • максимальная продолжительная мощность: 100 мВт,
  • максимальный продолжительный ток: 20 мА,
  • прямое напряжение: 1,6 В,
  • угол луча: 20 °,
  • размер корпуса: 5 мм.

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

I макс = P макс / U f = 100 мВт / 1,6 В = 62,5 мА

Однако это теоретические значения, потому что в этом случае 100 мВт — это максимальная мощность, которая может излучаться на этом диоде (с учетом, например, прочности ножек, структуры диода и его соединений). Он не обязательно должен совпадать с другими максимальными параметрами диода. Вы всегда должны внимательно изучать каталожные заметки о том или ином элементе.

Как мы уже упоминали, передающие диоды рассчитаны на импульсный режим работы, в отличие от рассмотренных ранее диодов, которые обычно работают в непрерывном режиме. Предположим, что рабочий цикл составляет 10%, что является обычным значением.

Это означает, что светодиод горит 10% времени и не горит 90% времени.

Тогда допустимый ток в импульсе будет:

I max_imp = P max / (U f ⋅ k f ) = 100 мВт / (1,6 В 10%) = 625 мА

Более сильный ток означает большую интенсивность света. Мы хотим, чтобы наш пульт от телевизора работал практически из любой точки комнаты.

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

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

После этого необходимо подключить заголовочный файл библиотеки в программу.

Arduino

#include <IRremote.h>

1 #include <IRremote.h>

Затем в программе необходимо указать контакт платы Arduino, к которому подключен контакт данных (Data pin) инфракрасного приемника. В нашем случае он подключен к контакту D2 платы Arduino.

Arduino

int IRPIN = 2;

1 intIRPIN=2;

После этого необходимо создать объект для работы с инфракрасным приемником.

Arduino

IRrecv irrecv(IRPIN);

1 IRrecvirrecv(IRPIN);

Далее объявим объект класса decode_results – он будет использоваться инфракрасным приемником для передачи декодированной информации.

Arduino

decode_results result;

1 decode_resultsresult;

Внутри функции setup() инициализируем последовательную связь и инфракрасный приемник при помощи вызова функции irrecv.enableIRIn().

Arduino

void setup()
{
Serial.begin(9600);
Serial.println(«Enabling IRin»);
irrecv.enableIRIn();
Serial.println(«Enabled IRin»);
Initialize_streamer();
}

1
2
3
4
5
6
7
8

voidsetup()

{

Serial.begin(9600);

Serial.println(«Enabling IRin»);

irrecv.enableIRIn();

Serial.println(«Enabled IRin»);

Initialize_streamer();

}

В функции loop() мы с помощью функции irrecv.decode будем непрерывно проверять наличие нового сигнала и если новый сигнал был принят, то его код мы будем сохранять в переменной result.value.

Arduino

void loop()
{
if (irrecv.decode(&result))
{
Serial.print(«Value: «);
Serial.println(result.value, HEX);
Write_streamer();
irrecv.resume();
}
delay(500);
}

1
2
3
4
5
6
7
8
9
10
11

voidloop()

{

if(irrecv.decode(&result))

{

Serial.print(«Value: «);

Serial.println(result.value,HEX);

Write_streamer();

irrecv.resume();

}

delay(500);

}

Для передачи данных из Arduino в лист Excel мы будем использовать плагин PLX-DAQ (ранее мы его уже использовали в проекте логгера данных температуры и влажности на основе Arduino). С помощью функции Write_streamer() мы будем передавать данные последовательно в специальном формате (фактически, это формат файлов .csv, которые можно считать с помощью Excel), которые нам будут затем необходимы для вывода информации в лист Excel.

Arduino

void Write_streamer()
{
Serial.print(«DATA»); //всегда передавайте «DATA» чтобы показать что следующая информация будет представлять собой данные
Serial.print(«,»); // переходим к следующему столбцу используя символ «,»
Serial.print(result.value, HEX); //сохраняем данные в Excel
Serial.print(«,»); // переходим к следующему столбцу используя символ «,»
Serial.print(button); // сохраняем данные в Excel
Serial.print(«,»); // переходим к следующему столбцу используя символ «,»
Serial.println(); //конец строки, переходим к следующей строке
}

1
2
3
4
5
6
7
8
9
10

voidWrite_streamer()

{

Serial.print(«DATA»);//всегда передавайте «DATA» чтобы показать что следующая информация будет представлять собой данные

Serial.print(«,»);// переходим к следующему столбцу используя символ «,»

Serial.print(result.value,HEX);//сохраняем данные в Excel

Serial.print(«,»);// переходим к следующему столбцу используя символ «,»

Serial.print(button);// сохраняем данные в Excel

Serial.print(«,»);// переходим к следующему столбцу используя символ «,»

Serial.println();//конец строки, переходим к следующей строке

}

После того как аппаратная и программная части проекта будут готовы, можно будет загружать программу в плату Arduino. После загрузки кода в плату направьте пульт ДУ на спроектированный нами декодер и начинайте нажимать на нем кнопки. Шестнадцатеричный код (hex code) каждой кнопки будет печататься в окне монитора последовательной связи (serial monitor).

Распиновка com-порта

Распиновка и описание контактов com порта (9 pin): carrier detect — детектирование данных и несущей
2 rxd receive data — получение данных
3 txd transmit data — отправка данных
4 dtr data terminal ready — терминал данных готов
5 gnd Заземление
6 dsr data set ready — порция данных готова к отправке
7 rts request to send — запрос на отсылку
8 cts clear to send — готовность к отсылке
9 ri ring indicator — индикатор «звонка»

Распиновка и описание контактов com порта (25 pin).

Заземление
2 txd transmit data — отправка данных
3 rxd receive data — получение данных
4 rts request to send — запрос на отсылку
5 cts clear to send — готовность к отсылке
6 dsr data set ready — порция данных готова к отправке
7 gnd Заземление
8 dcd carrier detect — детектирование данных и несущей
9 n/c
10 n/c
11 n/c
12 n/c
13 n/c
14 n/c
15 n/c
16 n/c
17 n/c
18 n/c
19 n/c
20 dtr data terminal ready — терминал данных готов
21 n/c
22 ri ring indicator — индикатор «звонка»
23 n/c
24 n/c
25 n/c

Как подключить ИК приемник к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • IR приемник;
  • пульт ДУ;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Для подключения IR приемника к Arduino UNO используют три ножки, которые соединяют с — GND, 5V и A0. Советуем для начала использовать 3,3 Вольта, чтобы не сжечь ИК датчик при настройке.


Схема подключения ИК приемника к аналоговому порту Ардуино

Скетч для ИК приемника Arduino со светодиодом

#include <IRremote.h> // подключаем библиотеку для IR приемника

IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник
decode_results results;

void setup() {
   irrecv.enableIRIn();  // запускаем прием инфракрасного сигнала
   Serial.begin(9600); // подключаем монитор порта

   pinMode(12, OUTPUT); // пин 12 будет выходом (англ. «output»)
   pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput»)
  
}

void loop() {
   if (irrecv.decode(&results)) // если данные пришли выполняем команды
   {
      Serial.println(results.value); // отправляем полученные данные на порт
    
      // включаем и выключаем светодиод, в зависимости от полученного сигнала  
      if (results.value == 16718055) { 
      digitalWrite(12, HIGH);
   }
      if (results.value == 16724175) { 
      digitalWrite(12, LOW);
   }
      irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
   }
}

Пояснения к коду:

  1. библиотека содержит набор команд и позволяет упростить скетч;
  2. оператор  присваивает получаемым сигналам от пульта дистанционного управления имя переменной .

ИК датчик можно применять во многих устройствах на микроконтроллере Ардуино, в том числе, можно сделать дистанционное управление сервоприводом на Ардуино от ИК приемника. При настройке следует включить монитор порта Arduino IDE и узнать какой сигнал отправляет та или иная кнопка на пульте ДУ. Полученные коды следует использовать в скетче после знака двойного равенства в условиях .

Скетч для ИК приемника Ардуино и серовомотора

#include <IRremote.h> // подключаем библиотеку для IR приемника
IRrecv irrecv(A0);         // указываем пин, к которому подключен IR приемник
decode_results results;

#include <Servo.h> // подключаем библиотеку для серво
Servo myservo;       // создаем объект для управления серво

void setup() {
   irrecv.enableIRIn();  // запускаем прием инфракрасного сигнала
   Serial.begin(9600); // подключаем монитор порта

   myservo.attach(9); // указываем пин для подключения серво
}

void loop() {
   if (irrecv.decode(&results)) // если данные пришли выполняем команды
   {
      Serial.println(results.value); // отправляем полученные данные на порт
    
      // поворачиваем серво, в зависимости от ИК сигнала
      if (results.value == 16718055) { 
      myservo.write(0);
   }
      if (results.value == 16724175) { 
      myservo.write(90);
   }
     irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
  }
}

Пояснения к коду:

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

Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть с той же частотой, на которую настроен фильтр в IR приемнике. Поэтому не каждый пульт дистанционного управления подойдет для работы. Следует подбирать IR приемник и IR передатчик с одной частотой. После фильтра сигнал поступает на амплитудный детектор, интегрирующий фильтр и выходной транзистор.

Что нужно знать об инфракрасном спектре?

Инфракрасный спектр — это небольшая часть электромагнитного излучения, которую, к сожалению, наш глаз не может увидеть. Длина волны инфракрасного излучения больше длины волны красного света, т.е., имеет более низкую частоту.

Отсюда и название — инфракрасный означает, находиться под красным.

Электромагнитный спектр — деление по длине волны

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

  • ближний инфракрасный — от 700 нм до 1 мкм,
  • короткий или средний инфракрасный — от 1 мкм до 15 мкм,
  • дальний инфракрасный — от 15 мкм до 1 мм.

Разделение на видимый свет и инфракрасный

В ближней и средней инфракрасной области, оптические волокна используются для передачи данных на большие расстояния. Длинное инфракрасное излучение и дальняя его часть, используются для «отдачи тепла» — такой свет используется, например, в инфракрасных обогревателях.

Схема подключения ИК-приемника

Я же решил пойти несколько другим путем, может быть «варварским», но от этого не менее, а даже более эффективным.

Рис. 1. Примерная принципиальная схема включения ИК-приемника в ресиверах.

Рис. 2. Структурная схема фото-приемника TSOP4838.

На рисунке 1 показана схема включения фотоприемника дистанционного управления ресивера «Topfield 5000СІ». Схема состоит из интегрального фотоприемника TSOP4838 и нескольких деталей. Практически все аналогичные схемы других ресиверов выполнены точно так же, разница только в том, какой интегральный фотоприемник, на какую частоту, ну и цоколевка может отличаться.

При этом все интегральные фотоприемники, независимо от марки, типа, цоколевки и корпуса, функционально идентичны, и их структурные схемы практически совпадают (не считая нумерации выводов).

На рисунке 2 показана структурная схема фотоприемника TSOP4838. Как видно, на выходе транзисторный ключ, подтянутый к плюсу питания через резистор 33 kOm. Похоже, 33 kOm показалось много, и в схеме на рисунке 1 параллельно ему включен еще резистор на 10 kOm.

Ну и что мне мешает просто подключить дополнительный фотоприемник параллельно основному, как это показано на рисунке 3? Да ничего не мешает. И опытами это подтверждается. Два фотоприемника работают, и друг другу не мешают, конечно, если сигнал управления от пульта поступает только на один из них. Ну а как же иначе, ведь дополнительный фотоприемник будет в другой комнате.

Рис. 3. Принципиальная схема подключения дополнительного фотоприемника к спутниковому тюнеру.

Практически все было сделано следующим образом. Нужно вскрыть корпус ресивера и к выводам фотоприемника, прямо к печатным дорожкам, подпаять три разноцветных монтажных провода, у меня они белого, зеленого и синего цвета. Затем их вывести через предварительно проделанное отверстие в корпусе ресивера наружу. Разделать и временно заизолировать.

Дальше, нужно будет купить точно такой же фотоприемник, как в ресивере, в моем случае это был TSOP4838.

Еще потребуется нужной длины трехпроводной кабель для электропроводки с заземлением, желательно самый тонкий. Такой кабель хорош не только тем, что в нем три провода, но и тем, что эти провода разного цвета, в моем случае — белый, зеленый и синий.

Кабель прокладываю тем же путем, что и был проложен кабель для подачи сигнала на телевизор. Затем, на конце возле телевизора разделываю кабель и припаиваю к нему выводы дополнительного фотоприемника. Изолирую изолентой.

Сам дополнительный фотоприемник прилепил к корпусу телевизора обычной изолентой.

На другом конце, у ресивера, разделываю кабель, и присоединяю его к проводам, выведенным предварительно от основного фотоприемника, расположенного на плате ресивера. Изолирую изолентой. Разноцветность проводов не дает возможности наделать ошибок при подключении.

Ик-приемник как проверить самому

ИК-приемник,  играет не последнюю роль в нашей, повседневной жизни. С помощью данной микросхемы мы имеем возможность управлять современными благами бытовой техники, телевизором, музыкальным центром, автомагнитолой, кондиционером. Это позволяет нам делать, пульт дистанционного управления (ПДУ),  рассмотрим подробнее, его работу, схему, назначение и проверку.  В статье, ик-приемник как проверить самому.

Что такое ИК-приёмник и как он работает

Это интегральная микросхема, ее прямая и основная задача, принимать и обрабатывать инфракрасный сигнал, который как раз и выдаёт пульт дистанционного управления. С помощью этого сигнала и происходит управление техникой.

Устройство и схема ик-приёмника

В основе этой микросхемы лежит pin фотодиод, особенный элемент, с p-n переходом и i областью между ними, аналог базы транзистора, как в бутерброде, вот вам и аббревиатура pin, в своём роде, уникальный элемент.

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

Далее, сигнал усиливается в регулировочном  усилителе, следом он фильтруется от помех в полосовом фильтре.

Следующие ступени, интегрирующий фильтр, амплитудный детектор и на финише их ждут выходные транзисторы.

Как самому в домашних условиях проверить ик-приёмник

Как правило покупать новый ик-приёмник в магазине, нет особого смысла, так как его свободно можно выпаять из различных электронных плат. Если вы собираете устройство для проверки ПДУ, из подручных материалов, не зная точной маркировки прибора, то цоколёвку можно определить самому.

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

У него три вывода, один GND, на второй подаётся плюс 5 вольт, а с третьего выходит сигнал out. Подключаем питания соответственно первой и второй ноге, и снимем напряжение с третей.

Он находится в состоянии ожидания сигнала с пульта, и на мультиметре мы видим, пять вольт. Начинаем переключать каналы или нажимать на другие кнопки, направив пульт, на него.

Если он рабочий, то напряжение будет проседать, примерно на 0,5- 1 вольта. Если всё происходит, как написано здесь, по прибор рабочий, в противном случае, элемент не исправен.

Как определить цоколевку инфракрасного приёмника

Для примера я взял совершенно неизвестную мне микросхему, которая лежал в коробке с элементами, «минус», был определён, по точке, которая имеется на обратной стороне элемента, «плюс», опытным путём через резистор. Я ни чем, не рисковал, в то, что он изначально рабочий, надежды не было.

Для определения цоколёвки ик-приемника, если он впаян в плату, смотрите на ней, возможно, есть маркировка выводов. Если там ни чего не написано, осмотрите сам элемент, ищите его название, а затем в интернете поищите характеристики и данные, такое ведение дела, весьма грамотное. Следуя инструкции, ик-приемник как проверить самому.

IR транскодер на Arduino

Устройства с управлением от инфракрасного пульта тесно вошли в нашу жизнь. Иногда пульт от телевизора или древней аудиосистемы теряется, а купить новый за давностью лет уже невозможно. Заказать новый пульт не всегда возможно, изготовить клон тоже, но обладая донором или информацией о нём можно изготовить конвертер.

Такой транскодер будет принимать команды одного пульта и транслировать их в формат другого.

Для Arduino существует прекрасная библиотека IRemote которая делает построение разнообразных ИК систем управления очень простым.

Но при решении даже такой простой задачи как транскодер обязательно находятся проблемы которые интересно решать. Итак для начала нам необходим интегральный ИК приёмник типа TSOP312 или соответствующий шилд для Arduino. Не стоит забывать что ИК приёмников существует очень много и цоколёвка у них меняется случайным образом.

Собранная схема нужна нам для получения кодов команд от обеих пультов, к несчастью снять команды с устройства для которого пульт утерян несколько сложнее. Вы можете всё-таки найти пульт донор, воспользоваться универсальным пультом подобрав код (а зачем тогда вам тогда транскодер, раз уж пульт подошёл?) или попытавшись воспользоваться данными из интернет баз по IR кодам.

Самым простым для меня оказалось воспользоваться приложением под андроид, эмулирующий нужный мне пульт.

Для чтения данных используем пример IRrecvDumpV2 из поставки IRremote, если ваш пульт относится к распознаваемым библиотекой то сырой результат сканирования вам не понадобится, хотя например пульт от LG у меня ложно распознавался как Samsung и не заработал при попытке отправлять команды через sendLG.

Пример полученных данных под спойлером:Encoding: SAMSUNG Code: 34346897 (32 bits) Timing: +4450, -4350 + 600, — 500 + 600, — 500 + 600, -1600 + 600, -1600 + 600, — 500 + 600, -1600 + 600, — 500 + 600, — 500 + 600, — 500 + 600, — 500 + 600, -1600 + 600, -1600 + 600, — 500 + 600, -1600 + 600, — 500 + 600, — 500 + 600, — 500 + 600, -1600 + 600, -1600 + 600, — 500 + 600, -1600 + 600, — 500 + 600, — 500 + 600, — 500 + 550, -1650 + 550, — 550 + 550, — 550 + 550, -1650 + 550, — 550 + 550, -1650 + 550, -1600 + 600, -1600 + 600 unsigned int rawData = {4450,4350, 600,500, 600,500, 600,1600, 600,1600, 600,500, 600,1600, 600,500, 600,500, 600,500, 600,500, 600,1600, 600,1600, 600,500, 600,1600, 600,500, 600,500, 600,500, 600,1600, 600,1600, 600,500, 600,1600, 600,500, 600,500, 600,500, 550,1650, 550,550, 550,550, 550,1650, 550,550, 550,1650, 550,1600, 600,1600, 600}; // SAMSUNG 34346897

unsigned int data = 0x34346897;

В случае если захват выдаёт сообщение “IR code too long. Edit IRremoteInt.h and increase RAWLEN” библиотеку придётся немного исправить — увеличив размер буфера для команд.

В ту же таблицу сохраняем коды для пульта донора в сыром виде. Подключаем к Arduino инфракрасный светодиод и пишем простейшую программу которая получает инфракрасный сигнал с заданным кодом и отправляет другой код через светодиод. Резистор на 82 выбран из соображений того что валялось под рукой.

Для встраиваемого устройства его можно смело увеличивать до 200 Ом а если передатчик должен быть дальнобойным то придётся дополнить его нехитрым транзисторным каскадом, иначе тока от Arduino обязательно не хватит.

При наличии кодов команд от обеих пультов код транскодера приобретает следующий видvoid loop() {
if (irrecv.decode(&results)) { switch(results.value){ case(0x845E5420):{ irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal), khz); }break; } } irrecv.resume(); irrecv.enableIRIn();
}

Запускаем скетч, заливаем в Arduino. Как ни странно после запуска одна команда проходит, после чего все последующие устройством игнорируются. Чтобы не связываться с отладкой добавляем в цикл мигалку на 13 пине и видим что после первой попытки отправить команду плата зависает.

Можно эмпирически добавить задержку в пол секунды (delay(500) )и всё будет работать, но зная что сырые данные у нас представляют собой отсчёты времени в миллисекундах то можно просто добавить функцию отправки с задержкой.

В модуле Irsend есть даже подходящая функция custom_delay_usec, которой я изначально воспользовался неправильно, забыв домножить величину задержки на множитель USECPERTICK из библиотеки (50 мс).

void sendDelayed(unsigned int array[]){ irsend.sendRaw(array, sizeof(array) / sizeof(array), khz); int array_size = sizeof(array) / sizeof(array); for(int i=0;i

Простой передатчик и приемник ИК-лучей

Основу передатчика составляет генератор прямоугольных импульсов на микросхеме D1. Выходной сигнал генератора с частотой 35 кГц поступает на базу транзистора VT1, который совместно с VT2 образует составной транзистор. При помощи этого транзистора коммутируется ИК-светодиод VD1.

Рис. 1. Устройство для снятия информации со стекла по ИК-каналу: а—схема ИК-передатчика; б—схема ИК-приемника

Отраженный сигнал поступает на вход приемника, схема которого показана на рис. 1, б. Принятый фотодиодом VD1 сигнал поступает на вход усилителя, собранного на ОУ А1.1.

Здесь вся полоса принятых частот усиливается в два раза, а также обеспечивается согласование фотодиода с последующими каскадами. На ОУ А1.2 собран активный полосовой фильтр, настроенный на частоту 34,67 кГц, т. е. на частоту несущей передатчика.

Коэффициент усиления каскада равен 100, полоса пропускания с неравномерностью 3 дб — 6,8 кГц, это обеспечивает избирательное усиление несущей и боковых полос. Такое построение схемы позволяет максимально ослабить действие помех и паразитного фона от осветительных приборов.

С выхода А1.2 сигнал поступает на амплитудный детектор, построенный по классической схеме, не требующей пояснений. На ОУ А1.3 и транзисторах VT1 и VT2 построен УНЧ, нагрузкой которого служат высокоомные телефоны ТМ-2А или аналогичные. Развязка узлов схемы по, питанию осуществляется цепями R1 Cl, R14 С9, R15 С8.

Наладка правильно собранной схемы сводится к подстройке частоты передатчика резистором R1 до получения на выходе приемника максимальной амплитуды сигнала. ОУ К1401УД4 не имеет прямой замены среди отечественных микросхем, но вместо А1.1 и А1.2 можно применить любые ОУ с полевыми транзисторами на входе и частотой единичного усиления не менее 2,5 МГц. А1.3 можно заменить на любой ОУ широкого применения.

Во время испытаний устройства проверялся такой вариант: КР574УД2Б и К140УД708. Заметно повысить характеристики приемника можно, если применить малошумящие ОУ TLE2074CN и TLE2144CN фирмы Texas Instruments.

Цоколевка этих микросхем полностью совпадает с цоколевкой К1401УД4. Светодиод и фотодиод можно взять зарубежного производства от систем ДУ телевизоров.

Чувствительность устройства можно повысить дополнительными ИК-светодиодами, включенными параллельно VD1 передатчика (через свои ограничительные резисторы). Можно также увеличить коэффициент усиления приемника, добавив каскад, аналогичный каскаду на А1.2. Для этого можно использовать свободный ОУ микросхемы А1.

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

Питание приемника осуществляется от двух батареек типа «Крона», передатчик питается от четырех элементов типа R20 суммарным напряжением 6 В (1,5 В каждый).

ИК-приемник VS1838B и arduino

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

Пульт дистанционного управления являться передатчиком информации, а в качестве приемника можно использовать инфракрасный датчик VS1838B, который продается совсем за смешные деньги.

Приемник работает на частоте 38 кГц, данная частота является самой распространенной среди ИК-пультов, используемых в домашней технике.

Подключение ИК-датчика VS1838B к arduino

Для считывания ИК-сигнала и преобразования его к человеческому виду – числу, можно воспользоваться библиотекой IRremote, с ее помощью весь скетч займет всего несколько строк.Ссылка на библиотеку: IRremote .

Но прежде, чем начать писать программу, необходимо разобраться с подключением приемника VS1838B. Датчик имеет всего три ноги, две из них – это питание, и третья передает полученный сигнал.

Ниже приведена фотография VS1838B с подписанными ножками:

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

Код скетча для ИК-приемника VS1838B

Каждая кнопка ИК-пульта имеет уникальный код, который мы будем получать с помощью датчика VS1838B. В первую очередь запишем скетч, который выводит в консоль коды кнопок, после чего уже дополнить программу условиями на конкретные кнопки.Ниже приведет скетч для работы с ИК-приемником VS1838B и arduino, скачать его можно тут: скачать.

#include // подключаем библиотеку int ledPin = 13; // светодиод int reciverPin = 11; // пин, к котрому подключен ИК-приемник IRrecv irrecv(reciverPin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // запуск приемника pinMode(ledPin, OUTPUT); } void loop() { // постоянно считываем данные с приемника if (irrecv.decode(&results)) { // выводим в консольку, что получили, число в 16-ричном виде Serial.println(results.value, HEX); // проверяем сигналы – и если это те, что нам нужны, то вкл или выкл светодиод if(results.value == 0x926DC837) digitalWrite(13, HIGH); if(results.value == 0x926D48B7) digitalWrite(13, LOW); irrecv.resume(); // готовы принимать следующий сигнал } }

Пример работы ИК-датчика VS1838B и arduino можно посмотреть ниже на видео.

Как работает инфракрасная связь

Как и другие системы связи, инфракрасная связь также имеет передатчик и приемник. Передатчик в инфракрасной связи похож на обычный светодиод, но он испускает свет в инфракрасном диапазоне, а не в видимом. А инфракрасный приемник представляет собой фотодиод с интегрированным в него предварительным усилителем, который преобразует инфракрасный свет в электрический сигнал. Для осуществления инфракрасной связи ее передатчик и приемник должны быть направлены друг на друга.

Когда на привычном нам пульте ДУ (дистанционного управления) вы нажимаете какую либо кнопку, инфракрасный светодиод (IR LED) испускает инфракрасный свет. Этот свет улавливается инфракрасным приемником, который обычно представляет собой фотодиод или фототранзистор. Но инфракрасный свет также формируется Солнцем, лампами накаливания и вообще любыми предметами, которые производят тепло. Это обстоятельство может помешать осуществлению инфракрасной связи. Чтобы этого не происходило, сигнал передатчика модулируется несущей частотой от 36 до 46 кГц. При приеме сигнала инфракрасный приемник производит демодуляцию сигнала и преобразует его в двоичный код перед подачей его на микроконтроллер.

В нашем проекте мы будем использовать пульт ДУ от телевизора для передачи инфракрасных сигналов и инфракрасный приемник TSOP1838 для их приема.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Электрик в доме
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: