Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Радиомодуль

Управлять платой можно на расстоянии через радиосигнал. Рассмотрим пример, основанный на радиопередатчике с четырьмя кнопками и отдельного модуля-приёмника YK04.

Radio
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.

Дополнительные материалы

Реклама