Как подключить ИК-приемник к Arduino и управлять светодиодами с пульта. Какие библиотеки использовать для декодирования ИК-сигналов. Как работает передача данных по ИК-каналу. Какие преимущества дает использование ИК-управления в проектах с Arduino.
Принцип работы инфракрасного пульта дистанционного управления
Инфракрасный пульт дистанционного управления (ИК-пульт) — это устройство для беспроводного управления различной электроникой на небольших расстояниях. Принцип его работы основан на передаче закодированных команд с помощью инфракрасного излучения.
Основные компоненты системы ИК-управления:
- ИК-светодиод в пульте — излучает закодированный ИК-сигнал
- ИК-приемник в управляемом устройстве — принимает и декодирует сигнал
- Микроконтроллер — обрабатывает декодированную команду
При нажатии кнопки на пульте происходит следующее:
- ИК-светодиод начинает излучать импульсы с несущей частотой около 38 кГц
- Импульсы модулируются по длительности для кодирования команды
- ИК-приемник фильтрует сигнал и выделяет модулированные импульсы
- Микроконтроллер декодирует последовательность импульсов в команду
- Выполняется соответствующее действие (например, включение/выключение)
Подключение ИК-приемника к Arduino
Для работы с ИК-пультом к Arduino необходимо подключить ИК-приемник. Это можно сделать следующим образом:

- VCC приемника подключается к 5V на Arduino
- GND приемника — к GND Arduino
- Выход приемника — к любому цифровому пину Arduino (например, D2)
Схема подключения выглядит так:
Arduino ИК-приемник
5V --- VCC
GND --- GND
D2 --- OUT
После подключения ИК-приемник будет передавать декодированные сигналы на цифровой вход Arduino для дальнейшей обработки.
Декодирование ИК-сигналов с помощью библиотеки IRremote
Для декодирования принятых ИК-сигналов в Arduino удобно использовать специализированную библиотеку IRremote. Она позволяет легко получать команды с различных ИК-пультов.
Основные шаги работы с IRremote:
- Установить библиотеку через менеджер библиотек Arduino IDE
- Подключить библиотеку в скетче:
#include <IRremote.h>
- Создать объект ИК-приемника:
IRrecv irrecv(RECV_PIN);
- Инициализировать приемник в setup():
irrecv.enableIRIn();
- В loop() проверять наличие новых команд:
if (irrecv.decode(&results))
Пример простого скетча для вывода принятых ИК-команд:

#include <IRremote.h> #define RECV_PIN 2 IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); } }
С помощью такого кода можно определить коды кнопок вашего ИК-пульта для дальнейшего использования.
Управление светодиодами с помощью ИК-пульта
Получив коды кнопок ИК-пульта, можно запрограммировать Arduino на выполнение различных действий при их нажатии. Например, включать и выключать светодиоды.
Пример скетча для управления светодиодом с ИК-пульта:
#include <IRremote.h>
#define RECV_PIN 2
#define LED_PIN 13
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(LED_PIN, OUTPUT);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
switch(results.value) {
case 0xFFA25D: // Код кнопки включения
digitalWrite(LED_PIN, HIGH);
break;
case 0xFFE21D: // Код кнопки выключения
digitalWrite(LED_PIN, LOW);
break;
}
irrecv.resume();
}
}
В этом примере светодиод на пине 13 включается и выключается при нажатии соответствующих кнопок на ИК-пульте.

Преимущества использования ИК-управления в проектах Arduino
Использование инфракрасного пульта дистанционного управления в проектах на базе Arduino дает ряд преимуществ:
- Беспроводное управление на расстоянии до нескольких метров
- Простота реализации с помощью готовых библиотек
- Возможность использования стандартных ИК-пультов от бытовой техники
- Низкое энергопотребление ИК-приемника
- Помехоустойчивость благодаря модуляции сигнала
- Недорогие компоненты (ИК-приемник стоит около $1)
Это делает ИК-управление отличным выбором для различных проектов умного дома, роботов, игрушек и т.д. на базе Arduino.
Расширенные возможности ИК-управления в Arduino проектах
Помимо базового включения/выключения, с помощью ИК-пульта можно реализовать более сложные сценарии управления:
- Регулировка яркости светодиодов
- Переключение режимов работы устройства
- Управление сервоприводами
- Ввод числовых значений
- Навигация по меню на LCD дисплее
Для этого можно использовать разные кнопки пульта и комбинации нажатий. Главное — правильно декодировать и обработать принятые команды в скетче Arduino.

Заключение
Инфракрасное дистанционное управление — это простой и эффективный способ добавить беспроводной интерфейс в проекты на Arduino. С помощью недорогих компонентов и готовых библиотек можно быстро реализовать управление различными устройствами с ИК-пульта.
Ключевые моменты при работе с ИК-управлением на Arduino:
- Правильное подключение ИК-приемника
- Использование библиотеки IRremote для декодирования
- Определение кодов кнопок конкретного пульта
- Программирование нужных действий для каждой команды
Освоив эти основы, вы сможете легко интегрировать ИК-управление в свои Arduino проекты и сделать их более функциональными и удобными в использовании.
1 2 3 4 5 6 7 8 9 … 12 Bog’liq
1 2 3 4 5 6 7 8 9 … 12 Ma’lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2022 | Bosh sahifa rivojlantirish vazirligi pedagogika instituti Ўзбекистон республикаси tashkil etish haqida tushuncha vazirligi muhammad таълим вазирлиги O’zbekiston respublikasi toshkent davlat махсус таълим respublikasi axborot kommunikatsiyalarini rivojlantirish vazirligi toshkent saqlash vazirligi fanidan tayyorlagan bilan ishlash Toshkent davlat sog’liqni saqlash uzbekistan coronavirus respublikasi sog’liqni coronavirus covid vazirligi koronavirus koronavirus covid covid vaccination qarshi emlanganlik risida sertifikat sertifikat ministry vaccination certificate Ishdan maqsad fanidan mustaqil o’rta ta’lim matematika fakulteti haqida umumiy fanlar fakulteti pedagogika universiteti ishlab chiqarish moliya instituti fanining predmeti |
ІЧ-передавач 5 мм для Arduino купити в Києві та Україні
ІЧ-передавач 5 мм / Troyka-модуль
«Дорога, а де пульт від телевізора?». Нас всюди оточує цифрова техніка і головна проблема: кожен пристрій — новий пульт. ІЧ-передавач з лінійки Troyka-модулів допоможе автоматизувати управління електронікою. Включити світло, засунути штори або переключити канал на телевізорі: все це з бавовни рук або натисненням однієї кнопки на смартфоні.
Відеоогляд
Загальні відомості
ІЧ-передавач заснований на інфрачервоному світлодіоді і допоможе організувати дистанційне керування вашими побутовими приладами. А якщо використовувати ІЧ-передавач разом з ІЧ-приймачем, то можна організувати бюджетну бездротову двосторонній зв’язок між двома пристроями.
Інфрачервоне випромінювання – один з типів електромагнітного випромінювання, який межує між червоною частиною спектра видимого світла і мікрохвилями.
Спектр інфрачервоного випромінювання поділяється на три частини:
- Ближнє IR-A — 700-1400 нм
- Середня IR-B — 1400-30.
000 нм
- Далеке IR-З — 30.000-1.000.000 нм
ІЧ-світлодіоди відносяться до ближнього інфрачервоного діапазону.
Інфрачервоне випромінювання знаходиться поза зоною видимості людського ока. Однак ближній інфрачервоний діапазон можна побачити через світлочутливі прилади: фотоапарати, відеокамери і всілякі фотоелементи.
Особливості
- Форм-фактор Troyka — практичне рішення для початківців та досвідчених мейкерів.
- Вбудований транзистор для контролерів зі слабким вихідним струмом.
- Невидимий для людського ока світло, однак уловлює іншими пристроями.
Підключення
Світлодіодний індикатор підключається до електроніці через групу з трьох контактів.
Контакт | Функція | Підключення |
---|---|---|
S | Пін управління світлодіодом | Підключіть до піну вводу-виводу мікроконтролера. |
V | Харчування | Підключіть до живлення мікроконтролера.![]() |
G | Земля | Підключіть до землі мікроконтролера. |
При підключенні до платформах форм-фактору Arduino R3 рекомендуємо використовувати Troyka Shield або Troyka Slot Shield. А для комп’ютерів Raspberry Pi передбачений Troyka HAT. Також модуль фізично сумісний з breadboard’ом.
Програмування
ІЧ-передавач спілкується з мікроконтролером через цифровий сигнал. Світлодіод горить при подачі високого рівня на сигнальний пін і гасне — при вступі низького рівня. Але простого індикатора недостатньо для кожної моделі спілкування між пультом і технікою існує окремий протокол. Для програмної роботи з модулем використовуйте функції та бібліотеки, які полегшують складання коду програми.
- Бібліотека для Arduino
Якщо ви новачок у програмуванні мікроконтролерів, зверніть увагу на освітні набори Матрьошка і Малина.
Комплектація
- 1× Плата-модуль з ІК-світлодіодом
- 1× Трипровідною шлейф
Характеристики
- Модель: ІЧ-передавач 5 мм / Troyka-модуль / AMP-B062-IR
- Вхідна напруга живлення Vcc: 3,3–5 В
- Споживаний струм Icc: до 20 мА
- Апаратний інтерфейс: Troyka-контакти S-V-G
- Програмний інтерфейс: цифровий сигнал / ШІМ
- Довжина хвилі: 940 нм
- Кут огляду: 30°
- Логічне напруга рівнів:
- Вхід: 3,3–5 В
- Вихід: не використовується
- Розміри: 25,4×25,4 мм
Ресурси
- Що таке Troyka-модулі
Бібліотеки
- Бібліотека для Arduino
Проекти
- Універсальний пульт управління зі старого телефону
Документація
- Datasheet на ІНФРАЧЕРВОНИЙ світлодіод
ИК-пультов дистанционного управления | ИК-датчик
Сохранить Подписаться
Пожалуйста, войдите, чтобы подписаться на это руководство.
После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.
Теперь, когда мы знаем, что датчик работает, мы хотим выяснить, что отправляется, верно? Но прежде чем мы это сделаем, давайте сначала рассмотрим, как именно данные отправляются с ИК-пульта (у вас в руке) на ИК-приемник (на макетной плате) 9.0005
В этом примере мы будем использовать ИК-код включения/выключения питания Sony с пульта дистанционного управления телевизора Sony. Это очень просто и обычно документировано!
Давайте представим, что у нас есть пульт Sony, и мы можем посмотреть, какой именно свет излучается ИК-светодиодом. Мы подключим простой датчик света (например, простой фотоэлемент!) и послушаем. Мы не будем использовать декодер, такой как PNA4602 (пока), потому что мы хотим видеть некодированный сигнал. Мы видим следующее:
В основном мы видим импульсы или ИК-сигнал. желтые «блоки» — это когда ИК-светодиод передает, а когда есть только линия, ИК-светодиод выключен. (Обратите внимание, что напряжение составляет 3 В постоянного тока только из-за того, как я подключил датчик, если бы я поменял подтяжку на подтягивание, он был бы на земле.)
Первый «блок» имеет длину около 2,5 мс (см. курсоры и размеры сбоку)
Если вы увеличите масштаб одного из этих блоков…
Вы видите, что на самом деле это не блоки, а очень быстрые импульсы!
Если полностью увеличить…
Можно измерить частоту ИК-импульсов. Как вы можете судить по курсорам и измерениям сбоку, частота составляет около 37,04 кГц
OK, так что теперь мы можем понять, как отправляются ИК-коды. Светодиод ИК-передатчика быстро пульсирует (ШИМ — широтно-импульсная модуляция) с высокой частотой 38 кГц, а затем этот ШИМ также включается и выключается намного медленнее, время от времени составляет около 1-3 мс.
Почему бы не включать и не выключать светодиод? Почему «несущая» ШИМ пульсирует? Много причин!
Одна из причин заключается в том, что это позволяет светодиоду остыть. ИК-светодиоды могут потреблять до 1 ампера (1000 миллиампер!) тока. Большинство светодиодов потребляют всего 20 мА или около того. Это означает, что ИК-светодиоды предназначены для мощного излучения, НО они могут выдержать его только в течение нескольких микросекунд. Используя ШИМ, вы позволяете светодиоду остывать в половине случаев
Другая причина заключается в том, что телевизор будет слушать только определенные частоты ШИМ. Таким образом, пульт Sony на частоте 37 кГц не сможет работать с DVD-плеером JVC, который хочет, скажем, только 50 кГц.
И, наконец, наиболее важная причина заключается в том, что пульсация несущей волны снижает влияние окружающего освещения. Телевизор ищет только изменения уровня освещенности с частотой около 37 кГц. Так же, как нам легче определить разницу между звуковыми тонами, чем определить точную высоту тона (ну, по крайней мере, для большинства людей)
Итак, теперь мы знаем несущую частоту. Его 37 кГц. Далее давайте найдем ширину импульса!
Оглядываясь назад на первое изображение прицела
Первый импульс 2,5 мс. Мы можем использовать курсоры для измерения оставшихся импульсов. Я избавлю вас от 12 изображений и дам вам знать, что импульсы:
PWM ON | ВЫКЛ |
2,4 мс | 0,6 мс |
1,2 мс | 0,6 мс |
0,6 мс | 0,6 мс |
1,2 мс | 0,6 мс |
0,6 мс | 0,6 мс |
1,2 мс | 0,6 мс |
0,6 мс | 0,6 мс |
0,6 мс | 0,6 мс |
1,2 мс | 0,6 мс |
0,6 мс | 0,6 мс |
0,6 мс | 0,6 мс |
0,6 мс | 0,6 мс |
0,6 мс | 270 мс |
Допустим, у вас нет осциллографа за 1000 долларов, как еще вы можете считывать эти сигналы? Что ж, ИК-декодер, такой как PNA4602, оказывает нам одну услугу: он «отфильтровывает» сигнал 38 кГц, так что мы получаем только большие фрагменты сигнала в миллисекундном диапазоне. Микроконтроллеру с этим намного проще справиться. Этим мы и займемся в следующем разделе!
Проверка ИК-датчика Использование ИК-датчика
Это руководство было впервые опубликовано 29 июля 2012 г. Оно было последним. обновлено 29 июля, 2012.
Эта страница (IR Remote Signals) последний раз обновлялась 19 ноября 2022 г.
Текстовый редактор на базе tinymce.
Умножитель Arduino LED IR Remote Control – Neil’s Notes
Дальнейшие успехи в моем проекте светодиодного рождественского украшения моего дома.
Если вы не читали предыдущий пост о моих рождественских огнях , прочитайте его сейчас.
Моими светодиодными цепями можно управлять с помощью ИК-пульта. Я построил простую схему ИК-детектора с помощью Arduino и использовал библиотеку IRRemote, чтобы определить шестнадцатеричные коды ИК-излучения, необходимые для имитации этого ручного пульта дистанционного управления. Учитывая это, у меня есть эта постановка задачи:
Постановка проблемы : Одновременный контроль до 16 идентичных устройств с ИК-управлением. Каждая отправленная ИК-команда должна поражать 16 устройств одновременно. Устройства физически разделены, но находятся на расстоянии, на котором «к ним можно провести провода».
Ранее я создал прототип тривиальной постоянно включенной схемы из нескольких ИК-излучателей, соединенных последовательно. Это был просто способ узнать некоторые ключевые параметры, которые мне нужно было знать, такие как прямое падение напряжения ИК-излучателей.
На следующем шаге я подключаю полевой МОП-транзистор для управления этой последовательной схемой, чтобы их можно было включать и выключать для отправки шестнадцатеричных кодов. Я также сделал еще несколько расчетов и тестов для оптимизации значений схемы. Мой результат, показанный ниже, может управлять 8 ИК-излучателями с одного выхода Arduino:
Вы можете нажать на это изображение, чтобы увеличить его до полного размера/полного разрешения.
МОП-транзистор представляет собой N-канальный силовой МОП-транзистор с «логическим уровнем» производства компании International Rectifier, номер по каталогу IRLB8721. Он может работать с гораздо большим напряжением и мощностью, чем необходимо в этой схеме. Я выбрал его, потому что его было легко найти (например, их продает Adafruit) и, что более важно, он включается на «логическом уровне» V gs = 4,5 В на Gate G . На выходные контакты Arduino подается напряжение 5 В, поэтому это хорошо подходит для управления полевым МОП-транзистором с выходного контакта Arduino.
Ненадолго игнорируя все резисторы, работа этой схемы довольно проста. Когда на контакте 3 Arduino низкий уровень (0 В), полевой МОП-транзистор выключен, и ток не может течь от стока ( D ) к истоку ( S ). Поэтому светодиоды ИК-излучателей не горят, так как они не подключены к заземлению цепи. Когда контакт 3 Arduino имеет высокий уровень (5 В), МОП-транзистор включается, и ток может течь от D к S , соединяя землю серии ИК-излучателей и позволяя току течь через них и включать их.
Теперь, когда мое программное обеспечение, управляемое IRRemote, модулирует выходной контакт 3 Arduino и управляет им высоким/низким уровнями в шаблоне ИК-кода, полевой МОП-транзистор соответственно включает и выключает серию из 8 эмиттеров. Их питание поступает от внешнего настенного источника питания, а не от Arduino. Напряжение этого источника питания обозначено на схеме В x = 12,6 В.
Моя настенная бородавка была нерегулируемой, и ее выходное напряжение меняется в зависимости от нагрузки. На самом деле на нем написано «9 В», но он выдает 13,9 В без нагрузки и «менее 13,9 В».вольт» при различных нагрузках. Схема моего прототипа дала мне представление о том, каким будет приблизительное нерегулируемое напряжение — около 12,6 вольт при нагрузке около 40 мА. Я использовал это предположение «около 12,6 вольт», чтобы выбрать некоторые значения сопротивления и построить эту схему, а затем измерил результаты и соответствующим образом настроил.
Заметка для себя: В следующем проекте используйте регулятор напряжения на стабилитроне. Хотя в этом проекте ни одно из значений не является критическим; основное ограничение состоит в том, чтобы поддерживать ток через ИК-излучатели в диапазоне от 20 мА до 100 мА. Это огромный диапазон, и на самом деле не имеет значения, где в этом диапазоне я окажусь, потому что излучатели буквально приклеены прямо к приемникам, поэтому мощность, с которой они работают, не имеет значения. Это случай, когда «все в этом широком диапазоне достаточно хорошо», даже если это своего рода хак.
Чтобы проверить некоторые значения, я подключил Gate G напрямую к +5 В, чтобы МОП-транзистор всегда был включен, а затем измерил значение «при нагрузке» В x . Затем я соответствующим образом отрегулировал номиналы резисторов. Здесь есть некоторая цикличность, потому что изменение значений сопротивления изменяет ток, который может изменить падение напряжения на ИК-излучателе и, таким образом, может циклически влиять на расчет сопротивления. Но на практике это просто не имеет значения, поскольку, как уже объяснялось, если я просто подойду близко и не превышу никаких максимальных значений, у меня будет что-то, что отлично работает для этого приложения (еще раз примечание для себя: используйте регулируемый поставлю в следующий раз).
Итак, с помощью этого теста я нашел В x = 12,6 В, как показано на диаграмме. Падение напряжения на всех 8 ИК-излучателях составило 10,1 В, оставив 2,5 В на токоограничивающем резисторе R1 .
Ток, протекающий через ИК-излучатели (и часть D – S МОП-транзистора), таким образом, составляет 56 Ом, чтобы получить ток (вычисленный) около 45 мА.
ПРИМЕЧАНИЕ. Я еще не построил вторую копию этой схемы. Поскольку мне нужно управлять более чем 8 устройствами, я создам вторую копию этой схемы и подключим ее к тому же источнику питания V x и к тому же выводу 3 Arduino. Возможно, потребление тока второй копией схемы снизит напряжение питания ниже 12,6 В. Я планирую измерить это, но, как уже отмечалось, пока результирующий ток, протекающий через все светодиоды, остается выше 20 мА, это действительно не имеет значения. При необходимости вернусь и пересчитаю новые Значения R1 при полной загрузке 16 ИК-излучателей. Ожидайте хотя бы еще один пост на эту тему со всем этим проверенным.
Резистор R g Защищает выходной контакт Arduino от чрезмерного потребления тока при переходе MOSFET из выключенного состояния во включенное. Когда полевой МОП-транзистор выключен и напряжение на выводе Arduino сначала поднимается до 5 В, вход Gate G действует как конденсатор между G и S . Это просто присуще работе МОП-транзисторов. Это означает, что постоянный ток будет течь в течение короткого промежутка времени между G и S до тех пор, пока МОП-транзистор не накопит достаточно заряда и не заблокирует дальнейший поток постоянного тока «что-то вроде конденсатора между G и S ». Все это является частью перехода МОП-транзистора из состояния ВЫКЛ (очень высокое сопротивление между D и S ) в состояние ВКЛ (очень низкое сопротивление D до S ). Чтобы этот кратковременный всплеск тока был ниже максимального выходного сигнала Arduino, равного 40 мА, я выбрал R g 9.2 * R = (0,023 * 0,023) * 220 = 116 мВт
Я использую резистор 1/4 Вт, которого более чем достаточно, чтобы выдержать примерно 1/8 Вт (в любом случае это происходит в течение короткого периода времени).
Стоит отметить, что у меня есть некоторая неопределенность в отношении этой темы; По правде говоря, когда я впервые построил эту схему, у меня не было R g , и мой Arduino не взорвался. Я предполагаю, что это связано с тем, что эффективный конденсатор между G и S заряжается так быстро, что очень короткий мгновенный всплеск тока не успевает поджарить Arduino. Могут быть и другие сложные причины, по которым Arduino не сгорела. Несмотря на это, кажется плохой практикой допускать этот всплеск тока, поэтому я добавил R г резистор в цепь, как только я прочитал о емкостном эффекте.
Когда я пишу это, я понял, что это приведет к пиковому току 46 мА, когда я подключу вторую копию этой схемы (вопреки рекомендации Arduino о макс. один пин 3 выход. Честно говоря, это не приходило мне в голову до тех пор, пока я пишу эту публикацию (одно из преимуществ написания этого материала!). Так что я, вероятно, вернусь и нажму R g до 330 Ом, что снижает этот ток до 15 мА для одной цепи и до 30 мА для двух, а также немного изменяет приведенный ниже расчет (но никоим образом не меняет ничего важного).
Другой резистор, R gs , гарантирует, что затвор G будет притянут к земле, даже если Arduino выключен. Иногда его называют резистором стравливания затвора, потому что он также служит для разрядки эффективного заряда конденсатора между Г и S (обсуждалось выше) при переходе из состояния ВКЛ в ВЫКЛ. В нашем приложении Arduino может активно потреблять ток, поэтому R gs не требуется для прокачки конденсатора. В любом случае, это еще одна «хорошая практика», чтобы поместить это туда, и, как уже отмечалось, это гарантирует, что затвор будет иметь потенциал земли, если Arduino окажется выключенным.
l выбрал значение, достаточно большое, чтобы гарантировать, что напряжение, появляющееся на G , все еще будет превышать 4,5 В, поскольку два резистора R g и R gs образуют делитель напряжения между выходным контактом Arduino (когда на нем высокое напряжение 5 В) и землей:
В gs 907176 = 7 5 В / ( R gs + R g )) = 4,94 В
, чего все еще достаточно для срабатывания затвора (если R g , это все еще увеличивается до 330 Ом). ). Когда выходной контакт Arduino имеет высокий уровень, через эти два резистора протекает ток:
I = 5 В / ( R gs + R g ) = 0,2 мА
т.