// библиотека для работы с приёмником и передатчиком на 433 МГц #include // даём разумное имя для пина к которому подключен приёмник на 433 МГц #define RECEIVER_PIN 11 // даём разумное имя для пина к которому подключен силовой ключ #define MOSFET_PIN 6 // символ первого и последнего байта посылки #define FIRST_BYTE '<' #define LAST_BYTE '>' // код запуска фейерверка #define KEY_TNT 2560 void setup() { // настраиваем пин силового ключа в режим выхода pinMode(MOSFET_PIN, OUTPUT); // устанавливаем номер пина, к которому подключён приёмник vw_set_rx_pin(RECEIVER_PIN); // устанавливаем скорость передачи vw_setup(2000); // ожидаем входящее сообщение vw_rx_start(); } void loop() { // буфер для хранения текста сообщения uint8_t buf[VW_MAX_MESSAGE_LEN]; // длина сообщения uint8_t buflen = VW_MAX_MESSAGE_LEN; // переменная для хранения индекса принятого сообщения int i = 1; // переменная для хранения полученного кода int key = 0; // если принято сообщение if (vw_get_message(buf, &buflen)) { // если сообщение адресовано не нам, выходим if (buf[0] != FIRST_BYTE || buf[buflen-1]!= LAST_BYTE) { return; } // поскольку передача идет посимвольно, // преобразовываем набор символов в число while (buf[i] != LAST_BYTE) { key *= 10; key += buf[i] - '0'; i++; } // если полученный в сообщении код совпадает с кодом запуска if (key == KEY_TNT) { // поджигаем запалы startFireShow(); } } } // функция, реализующая поджёг запалов void startFireShow() { // подаём на силовой ключ высокий уровень digitalWrite(MOSFET_PIN, HIGH); // ждём 10 секунд delay(10000); // подаём на силовой ключ низкий уровень digitalWrite(MOSFET_PIN, LOW); }