Россия, Московская область, Сергиев Посад, Пограничная улица
Телефон:
+7 (915) 422-22- Показать номер
Пн-вс: 09:00—21:00
whatsapp telegram vk email

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

Использование ИК-пульта

Инфракрасный пульт дистанционного управления (ИК-пульт) — один из самых простых способов взаимодействия с электронными приборами.

image Рис. 1 — Инфракрасный пульт дистанционного управления

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

imageРис. 2 — Детектирование сигнала ИК-пульта

Для приема сигнала с ИК-пульта требуется специальный ИК-датчик. ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца.

Популярным для простых проектов является ИК-датчик VS1838B (рис. 3).

image Рис. 3 — Инфракрасный датчик VS1838B

Основные характеристики ИК-датчика VS1838B:

  • несущая частота — 38 кГц;
  • напряжение питания — 2,7 . 5,5 В;
  • потребляемый ток — 50 мкА.

Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.

Подключение ИК-датчика VS1838B к Arduino показано в таблице 1.

Arduino VS1838B 5V Vcc GND GND D2 Data

Для составления скетча с ИК-пультом воспользуемся стандартной библиотекой IRremote, которая предназначена для упрощения работы с приёмом и передачей ИК-сигналов. Для начала составим скетч для того, чтобы понять какой код дает каждая кнопка (скетч №1).

Скетч №1

После загрузки скетча в Arduino можно получить команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды.

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

TDK2 was not declared In his scope

Чтобы ее исправить, достаточно удалить два файла из папки библиотеки. Открываем папку, где установлено приложение Arduino IDE (скорее всего «C:Program Files (x86)Arduino»). Затем в папку с библиотекой: …ArduinolibrariesRobotIRremote и удаляем файлы IRremoteTools.cpp и IRremoteTools.h. Затем, перезапускаем Arduino IDE, и снова пробуем загрузить программу на контроллер.

Управление светодиодом с помощью ИК-пульта

Составим скетч для зажигания и гашения светодиода при нажатии на кнопки громкости. В качестве светодиода, используем встроенный светодиод на выводе 13. Для этого нам потребуется коды (могут отличаться, в зависимости от пульта):

  • FFA857 — увеличение громкости;
  • FFE01F — уменьшение громкости.

Скетч №2

Загружаем на Arduino и тестируем. Нажимаем vol+ — светодиод зажигается, vol- — гаснет.

Arduino и ИК пульт

imageС его помощью можно:

  • Управлять своим устройством с пульта (комплектный пульт + приёмник)
  • Управлять своим устройством с любого пульта (от телевизора/люстры + приёмник)
  • Управлять телевизором, эмулируя его пульт (ИК светодиод)
  • Передавать данные с одной Ардуины на другую (ИК светодиод + приёмник), например библиотека GyverTransfer

Подключение

Модуль ИК приёмника подключается следующим образом:

  • S: сигнальный пин, любой цифровой пин МК
  • -: GND
  • Средний (не подписан): VCC

image

Библиотеки

    В примерах на этом сайте мы будем использовать NecDecoder как очень лёгкую и простую в использовании. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию NecDecoder. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.

    Примеры

    Примеры для библиотеки NecDecoder версии 2.x!

    Перед использованием нужно знать коды кнопок пульта, загружаем вот этот пример и открываем порт:

    Arduino: How to Process Infrared Signals from a Remote Control

    Infrared remote controls are ubiquitous: TVs, IOT devices, toys. With an Arduino and an IR receiver, it is a matter of minutes to setup receiving IR commands and process them to control your Arduino application.

    This blog posts show you the essential steps to process any IR commands from one of your remotes.

    This article originally appeared at my blog admantium.com.

    Setup

    The Hardware requirements for this project are minimal:

    • Arduino Uno or variant
    • IR Remote Receiver Module
    • Any remote

    To connect the devices, follow these instructions. To identify the right pins, see also Arduino Pin Layout.

    • Connect IR sensor Y Pin to any Arduino analog pin
    • Connect IR sensor R Pin to Arduino 5V power out
    • Connect IR sensor G Pin to any Arduino ground pin

    Library Choice

    Following my guideline, I checked the available libraries. For a basic ATmega328P Arduino Uno, the best library is Arduino-IRremote. It’s in active development, has good documentation, and you can find useful examples. I installed the library using the platform IO package manager.

    Once installed, the first step is to identify the concrete protocol your remote uses.

    Identify the Protocol

    From the official example sketch, create the following program:

    Then, upload the program, connect to the serial monitor and press some keys on your remote. You should see output like this:

    In rare cases, the signal might not get processed correctly. In this case, try another remote control.

    Receive and Process IR Commands

    When you know the protocol, it’s time to create the real program. Start your source code file with the following statements, and be sure to define the protocol before including the Header file.

    In the setup() part of your program, you initialize the IrReceiver event.

    In the loop part, you wait for the IrReceiver.decode() interrupt to happen. Then, you can access the received data with type IRData . Its definition is this:

    To print out the relevant data, use this:

    You are almost done. Upload this program to your Arduino, then send commands from the remote. The output of the program will be similar to this:

    Now, use this program to test each key of the remote, and make a note of their command ID. For example, in the above example, the COMMAND 18 is recognized when I press the key 2 , and the COMMAND 64 is the arrow up button.

    Defining Application Logic

    The final part is easy. Inside the loop() method, use IrReceiver.decode() to check if new IR commands were received:

    Inside the method body, you define the custom logic that is triggered. I suggest to use a switch statement that determines the currently pressed key, and then to handle each case with a dedicated case statements. The basic structure is as follows. Important: At the end of the statement, be sure to call IrReceiver.resume() in order to listen for new key events.

    In my case, I detect the various numbers of the remote control to print them on a screen. And I also process direction commands that are used to move a wheeled vehicle.

    Optimization

    By default, all IR vendor protocol — see complete list of protocols — will be compiled into your program. If you know the exact protocol, just include this with a preprocessor directive like shown here:

    And for fine tuning, there are many compile options activated by preprocessors definitions, see the official documentation.

    Conclusion

    Thanks to the excellent Arduino-IRremote library, parsing IR commands can be setup in minutes. This article showed you how to setup the library and start a program to sample the commands of your remote. We then saw how to implement custom control logic for each of the IR commands. Finally, I gave you some hints how to optimize the overall program by including only the required IR protocols.

    ИК датчик KY-022 Ардуино, подключение ик пульта

    Рассмотрим подключение ИК приемника и пульта к Ардуино. Расскажем какую библиотеку использовать для ИК-приемника, продемонстрируем программу для проверки работы IR приемника с пульта дистанционного управления и разберем команды библиотеки IRremote.h. Обратите внимание, что инфракрасный датчик KY-022 подходит не для всех пультов дистанционного управления, так как частота сигнала может отличаться.

    Необходимые компоненты:

    • Arduino Uno / Arduino Nano / Arduino Mega
    • IR пульт и IR приемник KY-022
    • светодиод и резистор
    • сервопривод
    • макетная плата
    • коннекторы
    • скачать библиотеку IRremote.h

    IR приемники широко используются в бытовой технике благодаря своей доступности и простоте использования. Эти устройства позволяют дистанционно управлять приборами и могут быть найдены во всех типах устройств. ИК сенсор способен принимать и обрабатывать сигнал в виде импульсов заданной длительности и частоты. Несмотря на все эти преимущества, модуль Bluetooth постепенно набирает большую популярность.

    ИК датчик Ардуино распиновка, характеристики

    Характеристики ИК-пульта управления и ИК-приемника

    • Максимальное расстояние: до 8 м
    • Частота модуляции: 38 кГц
    • Эффективный угол: 60 градусов
    • Количество кнопок управления: 17
    • Потребляемый ток в режиме покоя: 3-5uA
    • Потребляемый ток в режиме передачи: 3-5mA

    ИК датчик обычно имеет три ножки и состоит из следующих компонентов: фотодиод, усилитель, полосовой фильтр, амплитудный детектор, интегрирующий фильтр и выходной транзистор. Сигнал поступает на усилитель, а затем на полосовой фильтр, который настроен на фиксированную частоту 30, 33, 36, 38, 40 и 56 кГц и защищает приемник KY-022 от помех. Помехи могут быть вызваны радиоволнами и любым бытовым прибором.

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

    Для подключения ИК-приемника используйте три вывода, которые подключаются к — GND, 5V и любому цифровому выводу. Для начала рекомендуется использовать напряжение 3,3 В, чтобы не повредить датчик. Подключите IR приемник (модуль KY-022) к Ардуино в соответствии со схемой и подключите светодиод к пину 12. Перед загрузкой программы необходимо установить IRremote.h, которая не входит в состав стандартных библиотек.

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

    Подключение сервомотора и ИК датчика к Arduino

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

    Скетч для управления серво от IR пульта Arduino

    Заключение. Чтобы сигнал пульта от дистанционного управления был принят ИК-приемником Arduino, сигнал пульта должен быть на той же частоте, что и фильтр ИК приемника. Поэтому не все пульты ДУ для Ардуино работают. Вы должны выбрать ИК сенсор ky 022 и ИК пульт с одинаковой частотой сигнала, чтобы можно было управлять освещением в комнате или машинкой с моторами постоянного тока дистанционно.

    Ссылка на основную публикацию
    Похожее