Arduino не читает пульт на 433мГц

Kyrkyl777
Offline
Зарегистрирован: 21.06.2018

Задача: управлять радиореле через ардуино, а не через пульт. Для дальнейшего укрупнения системы и усложнения логики с одного пульта.

Проблема: Не читается один пульт.

Что есть:

1) Программируемое радио реле (програмируется от кнопки)

2) Пульт (1) програмируемый паяльником (перемычки)

3) Пульт (2) с жестко запрограмированными кодами

4) Приемник 2PH50220A-I CZS-3 (подключается к ардуино)

Выяснено что:

- Радио реле реагирует на все пульты

- Пульт (1) не читается ардуино

- Пульт (2) читается ардуино

- Выпаивание приемника с реле и подключение его к ардуино не изменило первые два пункта

- На четырех выше пунктах использовалась библиотека RCSwitch

- Библиотека RemoteReceiver не работает с этими элементами, но работает с приемником и пультом от радиореле, которые были одним комплектом на отличной от 433 частоте.

С лева на право: радио реле, пульт (1), пульт (2), модуль для ардуино

Подозреваю, что что-то не так с библиотеками.

b707
Offline
Зарегистрирован: 26.05.2017

Вот аналогичная тема  на форуме.

Брелок внешне другой, но внутри, думаю, похож . Проблема та же - брелок заведомо рабочий, но Ардуина его не видит. Проделал кучу тестов., пришел к выводу, что проблема именно в несовместимости брелка и библиотеки RCSwitch. Возможно, что брелок передает код не вполне точно, с ошибками - и библиотека не может его понять. А в радиореле, скорее всего, прошивка приемника игнорирует часть ошибок, поэтому работает.

Надо попытаться прочитать посылку брелка напрямую, без библиотеки. Планировал этим занятся, но пока руки не дошли.

Kyrkyl777
Offline
Зарегистрирован: 21.06.2018

Дополнительно могу добавить.

Был еще один брелок. Сначала не работал, но поменяв модуль для ардуинки на аналогичный, заработал. Работал с библиотекой RemoteReceiver. Но тогда как раз не читался пульт (2).

Что то с библиотеками намутили. Не всегда коректно сигнал ловится.

Хотя есть ощущение, если б какой сигнал ловился, была б ошибка. 

if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");

Но в ответ тишина от других пультов.