Дата публикации:
Содержание - Принцип работы приемника ДУ
- Необходимые компоненты
- Схемы и варианты реализации
- Сборка и пайка
- Программирование микроконтроллера
- Тестирование и отладка
- Часто задаваемые вопросы
- Контакты для обращений
Приемник дистанционного управления (далее – приемник) – это устройство, которое принимает управляющие сигналы от пульта (инфракрасного, радиочастотного или ультразвукового) и преобразует их в логические уровни, пригодные для управления нагрузкой (реле, мотор, светодиод и т.п.). В статье рассмотрим два самых популярных типа:
- ИК‑приемник (инфракрасный)
- RF‑приемник 433 МГц (радиочастотный)
Для каждого типа будет представлена полная схема, список компонентов, пошаговая инструкция по сборке и пример программного кода для микроконтроллера AVR/Arduino.
Принцип работы приемника ДУ
Схема любого приемника состоит из трёх основных блоков:
- Антенна/детектор – улавливает сигнал (инфракрасный фотодиод или RF‑модуль).
- Схема декодирования – преобразует полученный аналоговый сигнал в цифровой код (обычно с помощью таймера, компаратора или микросхемы‑шифратора, например PT2262/PT2272).
- Выходной драйвер – усиливает сигнал и подаёт его на исполнительные устройства (транзисторы, MOSFET, реле).
Необходимые компоненты Для ИК‑приемника - Фотодиод (TSOP1738 – 38 кГц, или аналогичный)
- Микросхема‑шифратор PT2262 (приём) + PT2272 (передатчик) – опционально для многоканального управления
- Транзистор NPN (2N2222) или MOSFET IRLZ44N – драйвер нагрузки
- Резисторы: 10 кΩ, 1 кΩ, 220 Ω
- Конденсатор 0,1 мкФ (для фильтрации питания)
- Микроконтроллер Arduino Nano (или любой AVR‑контроллер)
- Блок питания 5 V (USB‑адаптер или аккумулятор)
Для RF‑приемника 433 МГц - RF‑модуль приёмника RLP434A (частота 433,5 МГц)
- RF‑модуль передатчика TLP434A (для тестирования)
- Микросхема‑шифратор PT2262 (приём) + PT2272 (передатчик) – позволяет задать до 9 каналов
- Микроконтроллер (Arduino Pro Mini, ESP8266 – если нужен Wi‑Fi)
- Транзистор/реле для управления нагрузкой
- Блок питания 5 V (или 9 V, если используется стабилизатор LM7805)
- Конденсаторы 0,1 мкФ и 10 мкФ
Схемы и варианты реализации ИК‑приемник на базе фотодиода и микроконтроллера
- Фотодиод (TSOP1738 – 38 кГц, или аналогичный)
- Микросхема‑шифратор PT2262 (приём) + PT2272 (передатчик) – опционально для многоканального управления
- Транзистор NPN (2N2222) или MOSFET IRLZ44N – драйвер нагрузки
- Резисторы: 10 кΩ, 1 кΩ, 220 Ω
- Конденсатор 0,1 мкФ (для фильтрации питания)
- Микроконтроллер Arduino Nano (или любой AVR‑контроллер)
- Блок питания 5 V (USB‑адаптер или аккумулятор)
Для RF‑приемника 433 МГц - RF‑модуль приёмника RLP434A (частота 433,5 МГц)
- RF‑модуль передатчика TLP434A (для тестирования)
- Микросхема‑шифратор PT2262 (приём) + PT2272 (передатчик) – позволяет задать до 9 каналов
- Микроконтроллер (Arduino Pro Mini, ESP8266 – если нужен Wi‑Fi)
- Транзистор/реле для управления нагрузкой
- Блок питания 5 V (или 9 V, если используется стабилизатор LM7805)
- Конденсаторы 0,1 мкФ и 10 мкФ
Схемы и варианты реализации ИК‑приемник на базе фотодиода и микроконтроллера
ИК‑приемник на базе фотодиода и микроконтроллера
Схема показана на рисунке (условный, без графики):
+5V ──┬─────┬─────┐ │ │ │ 10kΩ │ 220Ω │ │ │ Фотодиод───┘ │ │ │ ──┘ │ │ │ GND │ │ Arduino Pin D2 – вход сигнала
Для декодирования протокола NEC/RC5 в Arduino используем библиотеку IRremote.
RF‑приемник 433 МГц с шифратором PT2262/PT2272
Схема типична для радиомодулей Мастер‑Кит:
+5V ──┬─────┬─────┐ │ │ │ 10kΩ │ 1kΩ │ │ │ RLP434A───┘ │ │ │ ──┘ │ │ │ PT2262 (приём) ──► Выходы к транзисторам │ GND
Каждый выход PT2262 соединяется с базой NPN‑транзистора, который управляет нагрузкой.
Сборка и пайка - Подготовка печатной платы – распечатайте схему в масштабе 1:1, перенесите её на медную плату или используйте макетную плату.
- Установка компонентов – начните с самых маленьких (конденсаторы, резисторы), затем переходите к микросхемам и модулям.
- Пайка – используйте паяльник 350 °C, флюс и тонкую проволоку 0,5 мм. Проверьте каждое соединение микроскопом.
- Подключение питания – сначала проверьте отсутствие короткого замыкания мультиметром.
- Установка микроконтроллера – если используете Arduino, просто вставьте в разъём.
Программирование микроконтроллера Пример кода для ИК‑приемника (Arduino + библиотека IRremote)
#include
const int RECV_PIN = 2; // Пин, к которому подключён фотодиод
const int RELAY_PIN = 8; // Пин управления нагрузкой IRrecv irrecv(RECV_PIN);
decode_results results;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
irrecv.enableIRIn; // Запуск приёмника
}
void loop {
if (irrecv.decode(&results)) {
Serial.print(«Код: 0x»);
Serial.println(results.value, HEX);
// Пример: если получен код 0xFFA25D – включаем нагрузку
if (results.value == 0xFFA25D) {
digitalWrite(RELAY_PIN, HIGH);
delay(500); // 0,5 с включено
digitalWrite(RELAY_PIN, LOW);
}
irrecv.resume; // Приём следующего сигнала
}
}
Пример кода для RF‑приёмника (Arduino + библиотека RadioHead)
#include
#include // Не используется, но обязателен для совместимости RH_ASK driver(2000, 11, 12, 13); // speed, RX, TX, PTT (не используется)
const int RELAY_PIN = 7;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
if (!driver.init)
Serial.println(«Ошибка инициализации RF-модуля»);
}
void loop {
uint8_t buf[1];
uint8_t len = sizeof(buf);
if (driver.recv(buf, &len)) {
Serial.print(«Получено: «);
Serial.println(buf[0], HEX);
// Пример: 0x01 – включить, 0x00 – выключить
if (buf[0] == 0x01) digitalWrite(RELAY_PIN, HIGH);
if (buf[0] == 0x00) digitalWrite(RELAY_PIN, LOW);
}
}
Тестирование и отладка - Проверьте, что на входе микроконтроллера появляется логический «низкий» уровень при нажатии кнопки пульта.
- С помощью логического анализатора измерьте длительность импульсов (для ИК‑протоколов обычно 560 µs).
- Убедитесь, что выходной драйвер (транзистор/реле) переключается без задержек.
- Тестируйте в разных условиях освещения (для ИК‑приёмника) и на разных расстояниях (для RF‑приёмника).
Часто задаваемые вопросы - Можно ли использовать один и тот же приемник для ИК и RF?
- Технически – да, если добавить оба модуля и объединить их выходы в один микроконтроллер. Но проще собрать отдельные схемы.
- Как увеличить диапазон ИК‑управления?
- Увеличьте мощность светодиода (используйте инфракрасный лазерный диод) и примените линзу‑фокусатор.
- Нужен ли отдельный блок питания для реле?
- Для небольших нагрузок (до 250 мА) - V от Arduino достаточно. Для мощных нагрузок используйте отдельный 12 V блок и драйвер MOSFET.
Контакты для обращений
Тип контакта Информация Официальный сайт https://www.example-dc.ru Горячая линия +7 (495) -23‑45‑67 (круглосуточно) Номера телефонов - Техническая поддержка: +7 (495) -23‑45‑68
- Отдел продаж: +7 (495) -23‑45‑69
- Обратная связь: +7 (495) -23‑45‑70
Электронный адрес support@example-dc.ru Личный кабинет https://www.example-dc.ru/login Личный прием Приёмные часы: Пн‑Пт, 10:00‑18:00 по адресу: ул. Технологическая, д. 12, офис 305 График приёма - Понедельник — пятница: 10:00‑18:00
- Суббота: 11:00‑15:00
- Воскресенье: выходной
Отделы - Отдел разработки аппаратных решений
- Отдел программного обеспечения
- Отдел технической поддержки
- Отдел продаж и маркетинга
Руководство - Генеральный директор – Иванов И.И.
- Технический директор – Петров П.П.
- Директор по продажам – Сидорова А.А.
Отзывы «Отличный сервис, быстро помогли собрать приемник под мой проект!» – Алексей, г. Москва
«Подробные схемы и примеры кода – спасение для новичков!» – Марина, г. Санкт‑Петербург
«Техподдержка ответила в течение 15 минут, проблема решена.» – Сергей, г. Новосибирск
Автор статьи: Технический редактор А. Кузнецов. При возникновении вопросов, пожалуйста, используйте указанные выше контакты.
Пример кода для ИК‑приемника (Arduino + библиотека IRremote)
#include
const int RECV_PIN = 2; // Пин, к которому подключён фотодиод
const int RELAY_PIN = 8; // Пин управления нагрузкой IRrecv irrecv(RECV_PIN);
decode_results results;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
irrecv.enableIRIn; // Запуск приёмника
}
void loop {
if (irrecv.decode(&results)) {
Serial.print(«Код: 0x»);
Serial.println(results.value, HEX);
// Пример: если получен код 0xFFA25D – включаем нагрузку
if (results.value == 0xFFA25D) {
digitalWrite(RELAY_PIN, HIGH);
delay(500); // 0,5 с включено
digitalWrite(RELAY_PIN, LOW);
}
irrecv.resume; // Приём следующего сигнала
}
}
Пример кода для RF‑приёмника (Arduino + библиотека RadioHead)
#include
#include // Не используется, но обязателен для совместимости RH_ASK driver(2000, 11, 12, 13); // speed, RX, TX, PTT (не используется)
const int RELAY_PIN = 7;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
if (!driver.init)
Serial.println(«Ошибка инициализации RF-модуля»);
}
void loop {
uint8_t buf[1];
uint8_t len = sizeof(buf);
if (driver.recv(buf, &len)) {
Serial.print(«Получено: «);
Serial.println(buf[0], HEX);
// Пример: 0x01 – включить, 0x00 – выключить
if (buf[0] == 0x01) digitalWrite(RELAY_PIN, HIGH);
if (buf[0] == 0x00) digitalWrite(RELAY_PIN, LOW);
}
}
Тестирование и отладка - Проверьте, что на входе микроконтроллера появляется логический «низкий» уровень при нажатии кнопки пульта.
- С помощью логического анализатора измерьте длительность импульсов (для ИК‑протоколов обычно 560 µs).
- Убедитесь, что выходной драйвер (транзистор/реле) переключается без задержек.
- Тестируйте в разных условиях освещения (для ИК‑приёмника) и на разных расстояниях (для RF‑приёмника).
Часто задаваемые вопросы - Можно ли использовать один и тот же приемник для ИК и RF?
- Технически – да, если добавить оба модуля и объединить их выходы в один микроконтроллер. Но проще собрать отдельные схемы.
- Как увеличить диапазон ИК‑управления?
- Увеличьте мощность светодиода (используйте инфракрасный лазерный диод) и примените линзу‑фокусатор.
- Нужен ли отдельный блок питания для реле?
- Для небольших нагрузок (до 250 мА) - V от Arduino достаточно. Для мощных нагрузок используйте отдельный 12 V блок и драйвер MOSFET.
Контакты для обращений
Тип контакта Информация Официальный сайт https://www.example-dc.ru Горячая линия +7 (495) -23‑45‑67 (круглосуточно) Номера телефонов - Техническая поддержка: +7 (495) -23‑45‑68
- Отдел продаж: +7 (495) -23‑45‑69
- Обратная связь: +7 (495) -23‑45‑70
Электронный адрес support@example-dc.ru Личный кабинет https://www.example-dc.ru/login Личный прием Приёмные часы: Пн‑Пт, 10:00‑18:00 по адресу: ул. Технологическая, д. 12, офис 305 График приёма - Понедельник — пятница: 10:00‑18:00
- Суббота: 11:00‑15:00
- Воскресенье: выходной
Отделы - Отдел разработки аппаратных решений
- Отдел программного обеспечения
- Отдел технической поддержки
- Отдел продаж и маркетинга
Руководство - Генеральный директор – Иванов И.И.
- Технический директор – Петров П.П.
- Директор по продажам – Сидорова А.А.
Отзывы «Отличный сервис, быстро помогли собрать приемник под мой проект!» – Алексей, г. Москва
«Подробные схемы и примеры кода – спасение для новичков!» – Марина, г. Санкт‑Петербург
«Техподдержка ответила в течение 15 минут, проблема решена.» – Сергей, г. Новосибирск
Автор статьи: Технический редактор А. Кузнецов. При возникновении вопросов, пожалуйста, используйте указанные выше контакты.
const int RECV_PIN = 2; // Пин, к которому подключён фотодиод
const int RELAY_PIN = 8; // Пин управления нагрузкой
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
irrecv.enableIRIn; // Запуск приёмника
}
void loop {
if (irrecv.decode(&results)) {
Serial.print(«Код: 0x»);
Serial.println(results.value, HEX);
// Пример: если получен код 0xFFA25D – включаем нагрузку
if (results.value == 0xFFA25D) {
digitalWrite(RELAY_PIN, HIGH);
delay(500); // 0,5 с включено
digitalWrite(RELAY_PIN, LOW);
}
irrecv.resume; // Приём следующего сигнала
}
}
Пример кода для RF‑приёмника (Arduino + библиотека RadioHead)
#include
#include // Не используется, но обязателен для совместимости RH_ASK driver(2000, 11, 12, 13); // speed, RX, TX, PTT (не используется)
const int RELAY_PIN = 7;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
if (!driver.init)
Serial.println(«Ошибка инициализации RF-модуля»);
}
void loop {
uint8_t buf[1];
uint8_t len = sizeof(buf);
if (driver.recv(buf, &len)) {
Serial.print(«Получено: «);
Serial.println(buf[0], HEX);
// Пример: 0x01 – включить, 0x00 – выключить
if (buf[0] == 0x01) digitalWrite(RELAY_PIN, HIGH);
if (buf[0] == 0x00) digitalWrite(RELAY_PIN, LOW);
}
}
Тестирование и отладка - Проверьте, что на входе микроконтроллера появляется логический «низкий» уровень при нажатии кнопки пульта.
- С помощью логического анализатора измерьте длительность импульсов (для ИК‑протоколов обычно 560 µs).
- Убедитесь, что выходной драйвер (транзистор/реле) переключается без задержек.
- Тестируйте в разных условиях освещения (для ИК‑приёмника) и на разных расстояниях (для RF‑приёмника).
Часто задаваемые вопросы - Можно ли использовать один и тот же приемник для ИК и RF?
- Технически – да, если добавить оба модуля и объединить их выходы в один микроконтроллер. Но проще собрать отдельные схемы.
- Как увеличить диапазон ИК‑управления?
- Увеличьте мощность светодиода (используйте инфракрасный лазерный диод) и примените линзу‑фокусатор.
- Нужен ли отдельный блок питания для реле?
- Для небольших нагрузок (до 250 мА) - V от Arduino достаточно. Для мощных нагрузок используйте отдельный 12 V блок и драйвер MOSFET.
Контакты для обращений
Тип контакта Информация Официальный сайт https://www.example-dc.ru Горячая линия +7 (495) -23‑45‑67 (круглосуточно) Номера телефонов - Техническая поддержка: +7 (495) -23‑45‑68
- Отдел продаж: +7 (495) -23‑45‑69
- Обратная связь: +7 (495) -23‑45‑70
Электронный адрес support@example-dc.ru Личный кабинет https://www.example-dc.ru/login Личный прием Приёмные часы: Пн‑Пт, 10:00‑18:00 по адресу: ул. Технологическая, д. 12, офис 305 График приёма - Понедельник — пятница: 10:00‑18:00
- Суббота: 11:00‑15:00
- Воскресенье: выходной
Отделы - Отдел разработки аппаратных решений
- Отдел программного обеспечения
- Отдел технической поддержки
- Отдел продаж и маркетинга
Руководство - Генеральный директор – Иванов И.И.
- Технический директор – Петров П.П.
- Директор по продажам – Сидорова А.А.
Отзывы «Отличный сервис, быстро помогли собрать приемник под мой проект!» – Алексей, г. Москва
«Подробные схемы и примеры кода – спасение для новичков!» – Марина, г. Санкт‑Петербург
«Техподдержка ответила в течение 15 минут, проблема решена.» – Сергей, г. Новосибирск
Автор статьи: Технический редактор А. Кузнецов. При возникновении вопросов, пожалуйста, используйте указанные выше контакты.
#include
RH_ASK driver(2000, 11, 12, 13); // speed, RX, TX, PTT (не используется)
const int RELAY_PIN = 7;
void setup {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.begin(9600);
if (!driver.init)
Serial.println(«Ошибка инициализации RF-модуля»);
}
void loop {
uint8_t buf[1];
uint8_t len = sizeof(buf);
if (driver.recv(buf, &len)) {
Serial.print(«Получено: «);
Serial.println(buf[0], HEX);
// Пример: 0x01 – включить, 0x00 – выключить
if (buf[0] == 0x01) digitalWrite(RELAY_PIN, HIGH);
if (buf[0] == 0x00) digitalWrite(RELAY_PIN, LOW);
}
}
Тестирование и отладка - Проверьте, что на входе микроконтроллера появляется логический «низкий» уровень при нажатии кнопки пульта.
- С помощью логического анализатора измерьте длительность импульсов (для ИК‑протоколов обычно 560 µs).
- Убедитесь, что выходной драйвер (транзистор/реле) переключается без задержек.
- Тестируйте в разных условиях освещения (для ИК‑приёмника) и на разных расстояниях (для RF‑приёмника).
Часто задаваемые вопросы - Можно ли использовать один и тот же приемник для ИК и RF?
- Технически – да, если добавить оба модуля и объединить их выходы в один микроконтроллер. Но проще собрать отдельные схемы.
- Как увеличить диапазон ИК‑управления?
- Увеличьте мощность светодиода (используйте инфракрасный лазерный диод) и примените линзу‑фокусатор.
- Нужен ли отдельный блок питания для реле?
- Для небольших нагрузок (до 250 мА) - V от Arduino достаточно. Для мощных нагрузок используйте отдельный 12 V блок и драйвер MOSFET.
Контакты для обращений
- Можно ли использовать один и тот же приемник для ИК и RF?
- Технически – да, если добавить оба модуля и объединить их выходы в один микроконтроллер. Но проще собрать отдельные схемы.
- Как увеличить диапазон ИК‑управления?
- Увеличьте мощность светодиода (используйте инфракрасный лазерный диод) и примените линзу‑фокусатор.
- Нужен ли отдельный блок питания для реле?
- Для небольших нагрузок (до 250 мА) - V от Arduino достаточно. Для мощных нагрузок используйте отдельный 12 V блок и драйвер MOSFET.
Контакты для обращений
| Тип контакта | Информация |
|---|---|
| Официальный сайт | https://www.example-dc.ru |
| Горячая линия | +7 (495) -23‑45‑67 (круглосуточно) |
| Номера телефонов |
|
| Электронный адрес | support@example-dc.ru |
| Личный кабинет | https://www.example-dc.ru/login |
| Личный прием | Приёмные часы: Пн‑Пт, 10:00‑18:00 по адресу: ул. Технологическая, д. 12, офис 305 |
| График приёма |
|
| Отделы |
|
| Руководство |
|
| Отзывы | «Отличный сервис, быстро помогли собрать приемник под мой проект!» – Алексей, г. Москва «Подробные схемы и примеры кода – спасение для новичков!» – Марина, г. Санкт‑Петербург «Техподдержка ответила в течение 15 минут, проблема решена.» – Сергей, г. Новосибирск |
Автор статьи: Технический редактор А. Кузнецов. При возникновении вопросов, пожалуйста, используйте указанные выше контакты.