21. Прием сигнала с беспроводных датчиков (протокол 2262,1527)
В данной статье рассмотрим приемник сигнала с беспроводных датчиков движения, радиогерконов, звонков и пультов ДУ с 24-битным протоколом кодеров 2260/2262/2264/1527. Также будут представлены четырехкнопочные передатчики для эмуляции беспроводных датчиков, звонков и управления различными радиореле с протоколами 2260/2262/2264/1527, продающихся на ebay и aliexpress.

Схема приемника и передатчика:


Схема практически не отличается от представленных ранее устройств дистанционного управления.

Протокол передачи 2260/2262/2264/1527:
 
Протокол передачи 2260/2262/2264/1527

Кодер SC1527:
-  1 импульс преамбулы, 24 импульса данных
-  адрес пульта уже зашит в микросхеме
-  последние 4 бита в посылке - это код нажатой кнопки

Кодер PT2262:
-  24 импульса данных, 1 завершающий импульс
-  адрес пульта задается перемычками (одна перемычка задает 2 бита в посылке)
-  последние 8 бит (4 перемычки) в посылке - это код нажатой кнопки

Преамбула - импульс 500 мкс и пауза 16 мс (соотношение 1:32).
Единица     - импульс 1500 мкс и пауза 500 мкс (соотношение 3:1).
Ноль           - импульс 500 мкс и пауза 1500 мкс (соотношение 1:3).
Длина посылки всегда одинаковая.

Принцип работы программы приемника: приемник принимает код из эфира (если в течении 2,5мс импульсов нет, то посылка считается принятой) и проверяет, в какой ячейке своей EEPROM он может находится. Если такой код найден, то подпрограмма возвращает номер ячейки EEPROM и выполняется соответствующая команда (переключается соответствующее реле на выходе), если код не найден, то контроллер опять переходит к опросу приемника. Для большей помехозащищенности должно прийти не менее двух одинаковых посылок, как это сделано в декодере PT2294. Длительность сигналов импульс/пауза может варьироваться в пределах 100..2500 мкс с соотношениемот 1:2 до 1:5 (стандартное значение 1:3, но как правило в кодерах оно не выдерживается).
 
Протокол передачи 2260/2262/2264/1527
 
Выходы приемника могут работать в четырех режимах: Key, TimerSec, TimerMin и Trigger.
-  Key: нажали кнопку пульта - выход включился, отпустили кнопку - отключился. Задержка отключения 300мс.
-  TimerSec: нажали кнопку пульта - выход включился на Х секунд, еще раз нажали - отключился.
-  TimerMin: нажали кнопку пульта - выход включился на Х минут, еще раз нажали - отключился.
-  Trigger: нажали кнопку пульта - выход включился, еще раз нажали - отключился.
Каждый выход настраивается в EEPROM индивидуально.
 
Так как для формирования интервалов времени в режиме "Таймер" используется общий для всех каналов генератор, то задержки отключения выходов могут плавать:
-  для режима "ТаймерСек" погрешность будет составлять до минус 1 секунды.
-  для режима "ТаймерМин" погрешность будет составлять до минус 1 минуты.

Привязка пультов и датчиков к приемнику (для прошивок с одним пультом)
Режим программирования активируется удержанием кнопки PRG на 8 секунд.
При входе в режим программирования включится Led.
Далее необходимо на пульте нажать подряд 4 кнопки или произвести сработку датчиков движения, далее приемник сам выйдет из режима программирования. При запоминании кнопки Led мигнет на 100мс. При выходе из режима программирования Led отключается.
Каждая кнопка привязывается к своему выходу приемника последовательно от 1 до 4. Если какой-либо выход не нужен, то при программировании необходимо повторно нажать ту же кнопку пульта (при одинаковых кодах кнопок сработает первое по ходу условие).
Выход из режима программирования можно произвести удержанием кнопки PRG на 8 секунд.

Привязка пультов и датчиков к приемнику (для прошивок с несколькими пультами)
Режим программирования активируется удержанием кнопки PRG на 5 секунд.
Включится светодиод. Если отпустить кнопку, то программируется первый пульт. Если продолжить удерживать кнопку, то через 2 секунды светодиод мигнет на 200мс - это режим программирования второго пульта и т.д. После 6 пульта, произойдет выход из режима программирования (Led гаснет).
Далее необходимо на пульте нажать подряд 4 кнопки или произвести сработку датчиков движения, далее приемник сам выйдет из режима программирования. При запоминании кнопки Led мигнет на 100мс. При выходе из режима программирования Led погаснет.
Каждая кнопка привязывается к своему выходу приемника последовательно от 1 до 4. Если какой-либо выход не нужен, то при программировании необходимо повторно нажать ту же кнопку пульта (при одинаковых кодах кнопок сработает первое по ходу условие).
Выход из режима программирования можно произвести в любой момент долгим удержанием кнопки PRG.

Приемник с прошивкой RF_2262_4_RELE_vХ.Хu может выступать в качестве сканера кодов, для этого в схеме предусмотрен транзистор, с коллектора которого можно снять сигнал на TTL-USB конвертор и считать данные программой-терминалом на ПК. При приеме любого кода формата 2260/2262/2264/1527, приемник отправляет на выход этот код в формате UART 9600 8n1.

Для более простой настройки EEPROM передатчиков был написан калькулятор кодов под Windows.


Печатные платы для устройств не разрабатывались, потому как схемы довольно простые. Внешний вид при тестировании:
 
 
Прошивки.
Перед прошивкой контроллера PIC12F629/675 обязательно считать данные с него и записать на листочек (лучше на корпусе контроллера) калибровочную константу внутреннего генератора! Она находится в последней ячейке памяти, выглядит как 34XX (например 3430, 347F). При дальнейшем программировании этого контроллера необходимо вписать эту константу в последнюю ячейку памяти. Восстановление константы.

Обновление 27.04.2017: добавил поддержку PIC12F675 во всех прошивках.
Обновление 08.05.2017: в приемник добавил режимы TimerSec и TimerMin (таймер отключения выходов).
Обновление 15.06.2017: в приемниках введен режим адаптации к длительности импульсов.
Обновление 11.03.2018: в приемниках добавил настройку в EEPROM: выходы прямые/инверсные.
Обновление 12.03.2018: в приемниках решил проблему периодического зависания при подаче питания.
Обновление 13.03.2018: добавил поддержку PIC12F683 во всех прошивках (в железе не тестировал).
Обновление 29.03.2018: расширенный диапазон длительности RF импульсов у приемников.
Обновление 03.08.2018: доработана подпрограмма декодирования сигналов у приемников.
Обновление 06.08.2018: исправлены баги в коде пультов, первая посылка отправляется минимум 3 раза.
Обновление 30.01.2019: добавлены прошивки приемников с привязкой до 6 пультов..
 
Передатчик с 4мя кнопками сигналов формата SC1527.
Поддерживается до четырех нажатых кнопок и один общий адрес пульта.
Кнопка 1 (GPIO.2) выдает на передатчик адрес и код кнопки BIN(00000001).
Кнопка 2 (GPIO.3) выдает на передатчик адрес и код кнопки BIN(00000010).
Кнопка 3 (GPIO.4) выдает на передатчик адрес и код кнопки BIN(00000100).
Кнопка 4 (GPIO.5) выдает на передатчик адрес и код кнопки BIN(00001000).
В EEPROM настраивается только адрес пульта. Подробное описание в архиве.
Прошивка, исходник v2.0

Передатчик с 4мя кнопками сигналов формата PT2260/2262/2264.
Поддерживается одна нажатая кнопка, на каждую кнопку может быть свой адрес пульта.
Кнопка 1 (GPIO.2) выдает на передатчик код 1.
Кнопка 2 (GPIO.3) выдает на передатчик код 2.
Кнопка 3 (GPIO.4) выдает на передатчик код 3.
Кнопка 4 (GPIO.5) выдает на передатчик код 4.
В EEPROM настраивается четыре кода кнопок с адресами пультов. Подробное описание в архиве.
Прошивка, исходник v2.0

Передатчик с 4мя кнопками сигналов формата PT2260/2262/2264.
Поддерживается до четырех нажатых кнопок и один общий адрес пульта.
Кнопка 1 (GPIO.2) выдает на передатчик адрес и код кнопки BIN(00000011)
Кнопка 2 (GPIO.3) выдает на передатчик адрес и код кнопки BIN(00001100)
Кнопка 3 (GPIO.4) выдает на передатчик адрес и код кнопки BIN(00110000)
Кнопка 4 (GPIO.5) выдает на передатчик адрес и код кнопки BIN(11000000)
В EEPROM настраивается только адрес пульта. Подробное описание в архиве.
Прошивка, исходник v2.0a

Приемник сигналов формата PT2260/2262/2264/1527.
Выходы срабатывают при совпадении входящего и записанного кодов.
Выходы могут работать в четырех режимах: Key, TimerSec, TimerMin и Trigger. Режим работы и временные интервалы для каждого выхода настраиваются в EEPROM индивидуально.
Подробное описание в архиве.
Прошивка, исходник v2.4
Прошивка, исходник v2.5 можно привязать до 6 пультов.

Приемник сигналов формата PT2260/2262/2264/1527 + передача кодов в UART.
Выходы срабатывают при совпадении входящего и записанного кодов.
Выходы могут работать в двух режимах: Key и Trigger. Режим работы для каждого выхода настраивается в EEPROM индивидуально.
Подробное описание в архиве.
Прошивка, исходник v1.4u
Прошивка, исходник v1.5u можно привязать до 6 пультов.

Схема приемника и передатчика.

Ну и напоследок Калькулятор кодов протоколов 2260/2262/2264/1527.

Key - нажали кнопку пульта - выход включился, отпустили кнопку - отключился. Задержка отключения 300мс.
TimerSec - нажали кнопку пульта - выход включился на Х секунд, еще раз нажали - отключился.
TimerMin - нажали кнопку пульта - выход включился на Х минут, еще раз нажали - отключился.
Trigger - нажали кнопку пульта - выход включился, еще раз нажали - отключился.

Форум.


.
 
Категория: Управление и контроль | Добавил: Boroda (08.04.2017) W
Просмотров: 15838 | Комментарии: 4 | Теги: управление нагрузками, SC1527, беспроводные датчики, PT2262, PIC12F629, радиоуправление
Всего комментариев: 4
3 pomor2000   (14.03.2018 01:23) [Материал]
Очень хорошая работа. Спасибо!

1 yablochkin68   (17.08.2017 22:43) [Материал]
Уважаемый Boroda!!!! А можно ли прошивки на PIC12F683  Зарание БОЛЬШОЕ ВАМ СПАСИБО! 
с уважением yablochkin68@mail.ru

2 Boroda   (13.03.2018 20:36) [Материал]
Добавил!

4 voodoo5   (15.02.2021 14:08) [Материал]
здрасте. при постройке дома своими руками хочу немного сэкономить. на вас наткнулся скача ваш проект для rf2262 для FLPROG. не могу понять как работает бибилиотека... и есть более конкретный вопрос. по сути есть несколько передатчиков (кнопки) 8шт (выключатели свет)
хочу чтобы ардуина при считывани кода (кнопки) включала определенное реле . так вот осталось мне только победить как считать передаваемы код кнопки??? не подскажите?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]