Привет. Разбираюсь с модулем JDY-40 из функций которого мне требуется радиопередача замыкания канала порта первого модуля и приём замыкания вторым модулем. Проблема: не работает передача сигнала замыкания канала кнопкой. На рисунке слева передатчик, справа приёмник. Собрано по данной схеме из инструкции к модулю, за исключением количества каналов (у меня 1) и номинала резистора светодиода. Светодиод сверхяркий, поэтому R = 10кОм вместо 1к. Инструкция под рукой (ссылка) 1. Для программирования модулей в соответствующие режимы С1, С4 используется макет с микропроцессором с одновременной подачей питания на модули и программированием через два UART интерфейса. 2. Управление модулями АТ командами успешно, они мне отвечают, корректно настраиваются на С1 и С4, что индицируется отдельным светодиодом, подключённым к процессору, по принципу "количество миганий = режим модуля": А0 - 1 мигание, С0 - 2, С1 - 3 и т.п.), а текущий режим модуля проверяется соответствующим запросом к модулю АТ командой. Далее модули переводятся в рабочий режим установкой высокого уровня пина SET. Пин сна "CS" постоянно заземлён - модули не спят. Подключение кнопки к разным пинам порта, подвод к ним прямого отвода "земли" от источника питания - нет изменений. Осциллографом изменение напряжения пинов приёмника не детектируются, светодиод не зажигается. Свежие модули из упаковки аналогичны. 3. Настроив оба модуля в режим А0 - полудуплексной передачи информации по UART, модули корректно срабатываются и тестовые байты по воздуху принимаются - фиксируется на пине ТХ приёмника осциллографом. А вот в режимах С1-С4 (передатчика-приёмника сигнала по портам) - не работает. 4. Дополнительно ввёл перенастройку значений по-умолчанию идентификаторов и номера радиочастотного канала - задал свои и одинаковые (подпрограмма конфигурации одна, по условию выбирается только режим работы модуля). Не помогло. Есть ли идеи что модулям не нравится? Под спойлером подпрограмма конфигурации модулей на языке си. Спойлер: Код конфигурации b_uart[0] = 'A'; //"AT+CLSS\r\n" команда режима работы модуля b_uart[1] = 'T'; b_uart[2] = '+'; b_uart[3] = 'C'; b_uart[4] = 'L'; b_uart[5] = 'S'; b_uart[6] = 'S'; #ifdef JDY_MODE_TRANSPARENT b_uart[7] = 'A'; b_uart[8] = '0'; #endif #ifdef JDY_MODE_C1C4 b_uart[7] = 'C'; if (side == ID_TSIDE) b_uart[8] = '1'; // РЕЖИМ С1 передачи без индикатора if (side == ID_RSIDE) b_uart[8] = '4'; // РЕЖИМ С4 приёма #endif b_uart[9] = '\r'; // r CR b_uart[10] = '\n'; // n LF UART_WriteBytes(side, b_uart, 11); delay_main(DLY_DREB); b_uart[0] = 'A'; b_uart[1] = 'T'; b_uart[2] = '+'; b_uart[3] = 'R'; b_uart[4] = 'F'; b_uart[5] = 'I'; b_uart[6] = 'D'; b_uart[7] = '4'; b_uart[8] = '4'; b_uart[9] = '4'; b_uart[10] = '4'; b_uart[11] = '\r'; // r CR b_uart[12] = '\n'; // n LF UART_WriteBytes(side, b_uart, 13); delay_main(DLY_DREB); b_uart[0] = 'A'; b_uart[1] = 'T'; b_uart[2] = '+'; b_uart[3] = 'D'; b_uart[4] = 'V'; b_uart[5] = 'I'; b_uart[6] = 'D'; b_uart[7] = '4'; b_uart[8] = '4'; b_uart[9] = '4'; b_uart[10] = '4'; b_uart[11] = '\r'; // r CR b_uart[12] = '\n'; // n LF UART_WriteBytes(side, b_uart, 13); delay_main(DLY_DREB); b_uart[0] = 'A'; b_uart[1] = 'T'; b_uart[2] = '+'; b_uart[3] = 'R'; b_uart[4] = 'F'; b_uart[5] = 'C'; b_uart[6] = '0'; b_uart[7] = '4'; b_uart[8] = '4'; b_uart[9] = '\r'; // r CR b_uart[10] = '\n'; // n LF UART_WriteBytes(side, b_uart, 11); delay_main(DLY_DREB); b_uart[0] = 'A'; b_uart[1] = 'T'; b_uart[2] = '+'; b_uart[3] = 'P'; b_uart[4] = 'O'; b_uart[5] = 'W'; b_uart[6] = 'E'; b_uart[7] = '3'; b_uart[8] = '\r'; // r CR b_uart[9] = '\n'; // n LF UART_WriteBytes(side, b_uart, 10);
Разобрался с модулем. 1) Снял пины сна "CS" обоих модулей с земли, объединил, завёл в процессор под управление. В режиме конфигурации модулей CS настраивается на выход, уровень низкий. В рабочем режиме С1-С4 CS настраивается на вход (с точки зрения модуля разрыв цепи). В рабочем режиме А0 CS остаётся выходом с низким уровнем. 2) Пины "SET" - в режиме конфигурации модулей настраиваются на выход, уровень низкий. В рабочем режиме С1-С4 настраиваются на вход (разрыв). В рабочем режиме при А0 остаются выходом с высоким уровнем.