ELECTRONICS

ИК-приёмник для Arduino: TSOP, VS1838B и как читать команды пульта

Инфракрасный приёмник позволяет управлять проектом с обычного пульта от телевизора. Внутри чёрной капельки фотодиод, усилитель и демодулятор: приёмник ловит инфракрасный свет, отсеивает всё лишнее и отдаёт на выход готовую последовательность нулей и единиц.

Ключевое слово здесь — демодулятор. Пульт не просто светит, он мигает с частотой около тридцати восьми килогерц, а приёмник настроен именно на эту частоту. Так он отличает команду от солнца, ламп и тепла батареи.

Разборы конкретных моделей

Что выбрать

VS1838B — самый ходовой

Чёрная капелька на три ноги, несущая 38 кГц, дальность до восьми метров. Лежит в каждом стартовом наборе, стоит копейки. Чувствителен к помехам от энергосберегающих ламп, но для домашних проектов этого хватает с запасом.

TSOP4838 и серия TSOP

То же назначение, но фирменного производства Vishay. Лучше отсекает помехи и стабильнее держит дальность. Разница заметна там, где рядом мигают светодиодные лампы или работает второй пульт.

Модуль KY-022

Тот же VS1838B, но распаянный на плату с резистором и светодиодом индикации. Удобнее втыкать провода и видно, что команда принята. Функционально ничем не отличается от голого приёмника.

Частота несущей: почему 38 килогерц

Приёмники выпускают под разные несущие: 36, 38, 40, 56 килогерц. Подавляющее большинство бытовых пультов работает на тридцати восьми, поэтому по умолчанию берут именно такой приёмник.

Если приёмник и пульт настроены на разные частоты, связь всё равно будет — но дальность упадёт в несколько раз, и команды начнут теряться. Это частая причина жалоб «работает, только если поднести пульт вплотную».

Протоколы и коды кнопок

Приёмник отдаёт лишь последовательность импульсов, а превращает её в номер кнопки библиотека. Протоколов много: NEC, Sony SIRC, RC5, Samsung. Библиотека IRremote распознаёт большинство автоматически, поэтому знать протокол своего пульта заранее не нужно.

Коды кнопок не универсальны: у каждого пульта свои. Порядок работы всегда один — сначала загрузить скетч, который печатает принятые коды в монитор порта, нажать нужные кнопки и записать их номера, а уже потом подставить эти числа в программу.