Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Модуль инфракрасного приемника TSOP4838 ====== ===== Описание ===== Инфракрасный приемник - простой и недорогой вариант для приема инфракрасного сигнала. Идеально подходит для дистанционного управления устройствами в зоне прямой видимости на небольшом расстоянии. Позволяет принимать сигналы с пультов управления различной бытовой техники большинства производителей. Модуль инфракрасного приемника удобен для использования в проектах для соединения без пайки. Модуль содержит светодиод - индикатор получения данных. Приёмник обладает повышенной помехоустойчивостью к радиочастотным помехам, также обладает повышенной устойчивостью к оптическому шуму. ==== Технические характеристики ==== * Потребляемый ток: 1 мА * Рабочая частота: 38 КГц * Расстояние приема сигнала: до 45 м * Эффективный угол приема сигнала: 90˚ * Рабочее напряжение: 2,5 - 5,5 В ==== Физические размеры ==== * Модуль (Д х Ш х В): 30 х 20 х 11 мм ==== Плюсы использования ==== * Простой в использовании и подключении * Идеально подойдет для проектов с беспроводной связью ==== Минусы использования ==== * Между приемником и пультом не должно быть преград, что неудобно в управлении движущимися объектами ==== Отличия от модуля с VS1838B ==== * Более низкое энергопотребление * Шире угол приёма сигнала * Большее расстояние приёма * Обладает высокой помехоустойчивостью ==== Файлы для загрузки ==== * [[https://files.smartelements.ru/know_libs/irremote_master.zip|Библиотека для работы с приёмником (irremote)]] * [[https://files.smartelements.ru/datasheet/tsop4838.pdf|Даташит]] <WRAP center round important 60%> В среде разработки Arduino по-умолчанию присутствует библиотека для работы с ИК приёмником и передатчиком - она называется <RobotIRremote>, однако она работает некорректно и её необходимо удалить чтобы две библиотеки не конфликтовали друг с другом. Для этого перейдите в папку установки Arduino/Libraries и удалите папку RobotIRremote. </WRAP> <WRAP center round info 60%> Обратите внимание что для работы ИК-приёмника и ИК передатчика используется одна и та же библиотека <IRremote>. Таким образом скачивать и устанавливать данную библиотеку дважды не требуется! </WRAP> ==== Смотрите также проекты ==== * [[main:comm:ir_send#пример_1|Передача 1 и 0 с помощью ИК-передатчика]] * [[main:comm:ir_send#пример_2|Удалённое включение и отключение светодиода]] * [[main:comm:ir_send#пример_3|Имитация нажатия кнопок пульта (HEX)]] * [[main:comm:ir_send#пример_4|Имитация нажатия кнопок пульта (DEC)]] ===== Пример подключения и использования ===== **Пример 1:** В примере иллюстрируется подключение модуля инфракрасного приемника TSOP4838, получение значений нажатия кнопок и вывод данных в монитор Serial - порта. (Примеры тестировались на контроллере Smart UNO) ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/svyaz/product/modul-infrakrasnogo-priemnika-tsop4838|Модуль инфракрасного приемника TSOP4838]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]] | 1 | **Схема подключения:** {{ :главная:связь:модуль_ик_приемника-4838_н.png?nolink |}} **Скетч для загрузки:** //**Внимание!** В Arduino IDE уже есть предустановленная библиотека <RobotRemote>, однако она работает некорректно и её необходимо удалить перед загрузкой скетча и библиотеки <IRremote.h> (чтобы две библиотеки не конфликтовали между собой). Для этого перейдите в папку установки Arduino, в раздел Libraries и удалите папку RobotRemote.// <file Arduino> #include <IRremote.h> //подключение библиотеки int IR_pin = 8; //пин подключения инфракрасного приемника decode_results results; //переменная для хранения результата приема IRrecv irreceiver(IR_pin); //создание объекта приемника void setup() { Serial.begin(9600); //инициализация Serial - порта irreceiver.enableIRIn(); //инициализация приемника } void loop() { if (irreceiver.decode(&results)) { //если что-то пришло Serial.println(results.value); //сообщить значение приема в монитор irreceiver.resume(); //возобновление работы ИК приемника } } </file>