Освой Arduino играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Управлять платой можно на расстоянии через радиосигнал. Рассмотрим пример, основанный на радиопередатчике с четырьмя кнопками и отдельного модуля-приёмника YK04.
Передатчик по документации может посылать сигнал на 50-100 м на открытой местности. Также рекомендуется к приёмнику добавить антенну. Этот способ может оказаться предпочтительнее, чем передача через инфракрасный сигнал, который работает в пределах прямой видимости на коротком расстоянии.
Модели передатчика могут отличаться расположением кнопок, поэтому номера пинов следует выяснить экспериментальным путём. Вам следует подключить четыре вывода D0, D1, D2, D3 к цифровым выводам платы, а также два вывода к питанию и земле. Седьмой вывод VT is a valid signal high output pin upon receiving a valid signal, the pin output high, may also drive the relay.
YK04 | Arduino
--------------
GND | GND
5V | 5V
D0 | D
D1 | D
D2 | D
D3 | D
VT | N/A
Для управления никаких библиотек не нужно. Будем ловить радиосигнал и включать или выключать светодиод.
int buttonA = 12;
int buttonB = 10;
int buttonC = 11;
int buttonD = 9;
void setup()
{
Serial.begin(9600);
Serial.println("RF receiver button decode");
pinMode(LED_BUILTIN, OUTPUT);
pinMode(buttonA, INPUT);
pinMode(buttonB, INPUT);
pinMode(buttonC, INPUT);
pinMode(buttonD, INPUT);
}
void loop()
{
if (digitalRead(buttonA) == HIGH)
{
Serial.println("Button A pressed");
digitalWrite(LED_BUILTIN, HIGH);
}
if (digitalRead(buttonB) == HIGH)
{
Serial.println("Button B pressed");
digitalWrite(LED_BUILTIN, LOW);
}
if (digitalRead(buttonC) == HIGH)
{
Serial.println("Button C pressed");
digitalWrite(LED_BUILTIN, HIGH);
}
if (digitalRead(buttonD) == HIGH)
{
Serial.println("Button D pressed");
digitalWrite(LED_BUILTIN, LOW);
}
}
Нажатия кнопок срабатывают несколько раз, поэтому можно поработать над скетчем, чтобы убрать дублирование.
Модуль с пультом часто попадается в готовых наборах. Также можно приобрести отдельно на AliExpress.