Динамическое управление пинами в библиотеке <VirtualWire.h>
- Войдите на сайт для отправки комментариев
Чт, 29/09/2016 - 09:08
void loop() { kon_220(); // КОНТРОЛЬ 220V priem_server_dom();//обработка команд с домашнего сервера termo_stab (); vw_set_rx_pin (8);//(receive_pin);pin приёма данных 433Мгц vw_setup(400); // Задаем скорость приема и ( передачи ) vw_rx_start(); // Начинаем мониторинг эфира digitalWrite(led_1, HIGH); priem(); digitalWrite(led_1, LOW); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //vw_set_rx_pin (7);//(receive_pin);pin приёма данных 28Мгц vw_setup(400); // Задаем скорость приема и (передачи) vw_rx_start(); // Начинаем мониторинг эфира digitalWrite(led_1, HIGH); priem(); digitalWrite(led_1, LOW); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~ интервал времени молчания и передачи ~~~~~~ static unsigned long Time_1 = 0; // if(millis() - Time_1 > Time_28) {// время МЕЖДУ циклаМИ передачи 28Мгц Time_1 = millis(); // interval_ptredacha (); }
Добрый день. Возникла проблема в динамическом управлении пинами в библиотеке VirtualWire.h Hеобходимо в процессе работы программы менять пины приема данных так как используется два пиёмника на разных частотах (433 Мгц и 28 Мгц), проблема в том что если снять ремарку со строки 12 нет приёма данных на частоте 433Мгц тоесть строка 5 не включает пин 8 и данные принимаются только с приёмника 28Мгц
Добавляете переменную в которой будет храниться номер пина. Далее в коде вместо номера пина подставляете имя переменной. Также по ходу выполнения программы значение переменной можно менять.
Олег,
приёмники доолжны быть постоянно на приёме, иначе они пропустят сообщение. Два одновременно - невозможно, т.к. библиотека заточена под один. Вы можете, например, минуту держать включённым один, а минуту - другой. Но, боюсь, Вам это не подойдёт.
Если хотите два сразу, то надо модифицировать библиотеку. В том виде, в каком она сейчас, это, кажется, невозможно. Может я и ошибаюсь (давненько я не работал с этой библиотекой), но кажется, что так.
Вам это сильно нужно? Настолько. что Вы готовы модифицировать библиотеку?
Спасибо. Сделал так и всё заработало, контроллируемые процессы медленные
поэтому потеряные данные в одном цикле передачи я думаю будут востановлены
в следующем.
Ага, т.е. Вы их разнесли по времени. Ну, если по задаче это подходит, то это самое простое и хорошее решение.