Опубликовано 2026-04-19
В этом руководстве представлено полное практическое решение для управлениясервоприводдвигателем с помощью стандартного инфракрасного (ИК) пульта дистанционного управления. Следуя инструкциям ниже, вы сможете точно расположитьсервоприводдвигатель, нажав кнопки на любом обычном ИК-пульте дистанционного управления (например, пульте от телевизора или телеприставки). Никаких компонентов конкретной марки не требуется, а инструкции основаны на широко доступных и недорогих модулях.
ИК-пульт дистанционного управления излучает импульсы невидимого света. ИК-приемник обнаруживает эти импульсы и преобразует их в цифровой код, уникальный для каждой кнопки. Микроконтроллер считывает этот код и отправляет соответствующий сигнал широтно-импульсной модуляции (ШИМ) на контроллер.сервоприводдвигатель, устанавливающий его вал под определенным углом.
Пример сценария:Кнопка увеличения громкости на обычном пульте телевизора поворачивает сервопривод на 90° (например, открывая небольшую защелку), а кнопка уменьшения громкости возвращает его на 0°. Этот принцип используется в самодельных роботах-манипуляторах, автоматических кормушках для домашних животных и системах поворота и наклона камеры с дистанционным управлением.
Важный:Большинство сервоприводов потребляют значительный ток (200–500 мА). Не подавайте питание на сервопривод напрямую от контакта 5 В микроконтроллера, если для этого требуется ток более 500 мА. Используйте внешний источник питания 5 В с общей землей.
Соедините компоненты следующим образом. Эта проводка была протестирована со стандартными системами 5 В.
Модуль ИК-приемника (если смотреть на плоскую сторону):
Левый контакт: Сигнал → Цифровой контакт 11 микроконтроллера (пример)
Центральный контакт: GND → Общая земля
Правый контакт: VCC → выход 5 В.
Серводвигатель:
Коричневый/черный провод: GND → Общая земля
Красный провод: 5 В → Внешний источник питания 5 В (или 5 В микроконтроллера только для крошечных сервоприводов)
Оранжевый/желтый провод: Сигнал → контакт 9 ШИМ микроконтроллера (пример)
Общая почва:Подключите GND внешнего источника питания к GND микроконтроллера. Это обязательно для стабильной работы.
Каждый ИК-пульт отправляет разные коды. Сначала вы должны прочитать коды с вашего конкретного пульта.
Типичный случай:Пульт дистанционного управления телевизора Sony может отправить0x10для кнопки «1», в то время как пульт Samsung отправляет0x80. Код не является меткой кнопки, а представляет собой шестнадцатеричное число, уникальное для бренда кнопки и пульта.
Действие:Загрузите простой эскиз ИК-декодера (доступен в обычных библиотеках, таких как «IRremote») в свой микроконтроллер. Откройте последовательный монитор, нажмите каждую кнопку, которую хотите использовать, и запишите коды. Например:
Стрелка вверх →0xFF629D
Стрелка вниз →0xFFA857
ОК/Выбрать →0xFF02FD
Решите, какая кнопка на какой угол перемещает сервопривод. Стандартные углы сервопривода составляют от 0° до 180°.
Пример сопоставления (с использованием кодов из шага 1):
Кнопка0xFF629D→ Угол сервопривода 0°
Кнопка0xFFA857→ Угол сервопривода 90°
Кнопка0xFF02FD→ Угол сервопривода 180°
Ниже приведен общий пример кода, который работает с популярной библиотекой IRremote (версия 3.x или новее). ЗаменятьДИСТАНЦИОННЫЙ_КОД_1, ДИСТАНЦИОННЫЙ_КОД_2и т. д., с вашими фактическими кодами из шага 1.
#включать#включатьконстантный INT IR_PIN = 11; const int SERVO_PIN = 9; IRrecv иррекв (IR_PIN); результаты decode_results; Сервопривод myServo; // Замените их фактическими кодами вашего пульта (шестнадцатеричные значения из шага 1) const unsigned long CODE_ANGLE_0 = 0xFF629D; // например, кнопка «Вверх» const unsigned long CODE_ANGLE_90 = 0xFFA857; // например, кнопка «Вниз» const unsigned long CODE_ANGLE_180 = 0xFF02FD; // например, кнопка ОК void setup() { Serial.begin(9600); inrecv.enableIRIn(); // Запускаем ИК-приемник myServo.attach(SERVO_PIN); мойСерво.запись(0); // Начало с 0° Serial.println("Готово. Нажмите кнопки на пульте."); } void Loop() { if (irrecv.decode(&results)) { unsigned long gotCode = results.value; Serial.print("Полученный код: 0x"); Serial.println(код получения, HEX); // Сопоставляем полученный код с углом сервопривода if (receivedCode == CODE_ANGLE_0) { myServo.write(0); Serial.println("Сервопривод → 0°"); } Еще если (receivedCode == CODE_ANGLE_90) { myServo.write(90); Serial.println("Сервопривод → 90°"); } Еще если (receivedCode == CODE_ANGLE_180) { myServo.write(180); Serial.println("Сервопривод → 180°"); } else { Serial.println("Неназначенная кнопка. Игнорируется."); } Irecv.resume(); // Ждем следующего сигнала } }
Примечание:Если ваш пульт использует другой протокол (например, NEC, Sony, RC5), библиотека автоматически его обнаружит. Приведенный выше код работает для большинства потребительских пультов.
1. Подайте питание на схему (при необходимости используйте внешний сервопривод).
2. Откройте последовательный монитор на скорости 9600 бод.
3. Нажмите назначенную кнопку – сервопривод должен переместиться на заданный угол в течение 0,5 секунды.
4. Если сервопривод дрожит или не движется, проверьте:
Общее заземление.
Мощность источника питания сервоприводов (минимум 500 мА для стандартных сервоприводов).
ИК-приемник не подвергается воздействию прямых солнечных лучей или флуоресцентного света (они вызывают помехи).
Основной вывод повторяется:Стандартный ИК-пульт дистанционного управления в сочетании с недорогим ИК-приемником и микроконтроллером обеспечивает точное беспроводное управление сервоприводом без какого-либо специального оборудования.
Три действенные рекомендации для улучшения вашей реализации:
1. Добавьте несколько сервоприводов:Используйте массив сервообъектов и назначайте разные кнопки разным сервоприводам. Например, кнопка «1» управляет сервоприводом A до 0°, кнопка «2» управляет сервоприводом B до 45°.
2. Реализуйте плавное движение:Заменятьservo.write(угол)с циклом, который увеличивает угол шаг за шагом (например, от текущего угла до целевого угла с шагом 1 ° с задержкой 15 мс). Это создает профессиональное, постепенное движение.
3. Сохраните назначения кнопок в EEPROM:Напишите небольшую процедуру калибровки, которая позволит вам изучить новые кнопки без повторной загрузки кода. Это особенно полезно, если вы потеряете оригинальный пульт и перейдете на другой бренд.
Окончательная проверка:Прежде чем развертывать свой проект в реальном приложении (например, дверной защелке с дистанционным управлением или захвате робота), проверьте нажатия всех кнопок не менее 50 раз каждую. ИК-сигналы могут блокироваться предметами или ярким светом — всегда включайте визуальный индикатор (например, светодиод, который мигает при получении кода), чтобы подтвердить работу системы.
Время обновления: 19 апреля 2026 г.
Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.