Модулей ИК приемника существует несколько, я опишу работу с KY-022. Выглядит он так:
Он служит для приема ИК сигнала и подключается к пинам GND, 5V и любому цифровому пину:
Для работы с модулем требуется установить библиотеку IRremote
.Кроме самого модуля, вам потребуется пульт управления, работающий в ИК диапазоне. Это может быть почти любой пульт от телевизора или другого бытового прибора. Если у вас нет подходящего пульта, то можно приобрести модуль сразу с пультом, или купить пульт отдельно, ссылки справа.
Далее нам нужно получить коды всех кнопок пульта управления, которые мы хотим использовать в своем программе:
#include <IRremote.h>
IRrecv receiver(4);
void setup()
{
Serial.begin(9600);
receiver.enableIRIn();
}
void loop()
{
IRData *irdata = receiver.read();
if (irdata) {
Serial.println(irdata->address);
Serial.println(irdata->command);
}
}
Запускаем скетч, нажимаем последовательно на кнопки пульта и записываем полученные значения адреса и кода для каждой.
После этого ваша программа будет выглядеть примерно так:
#include <IRremote.h>
IRrecv receiver(4);
void setup()
{
Serial.begin(9600);
receiver.enableIRIn();
}
void loop()
{
IRData *irdata = receiver.read();
if (irdata) {
if ((irdata->address == 2) && (irdata->command == 0)) {
// действие при нажатии на кнопку включения
} else if ((irdata->address == 2) && (irdata->command == 5)) {
// действие при нажатии на кнопку "1"
}
}
}
Использование пульта управления позволяет не только управлять устройством удаленно, но также добавляем вашему устройству довольно большое количество кнопок сразу, заняв всего 1 пин. Это бывает удобно при разработке устройств с большим количеством подключенных датчиков и модулей, когда лишнего пина для кнопки просто может не найтись.