Radio-sniffer 433/315 MHz. Открывашка для шлагбаумов и ворот

Сейчас почти в каждом дворе наставили шлагбаумов, на работе ворота, дома пульты от люстры и даже шторы раздвигаются дистанционно. Как это работает, смотрим видос на моем канале youtube:

Схема соединения модулей

Схема соединения довольна простая, при желании ее должен осилить любой старшеклассник.

Приемник подключается к ардуинке всего 3 проводками. Передатчик тоже тремя проводками. Дисплей — четырьмя. Аккум прямо впаивается в ардуинку.

Пины подключения приемника и кнопки OK лучше не менять, т.к. скетч использует прерывания INT0 и INT1. Я использую приемник и передатчик на 433 МГц, но все должно работать и на 315-ти мегагерцовых модулях.

схема соединения радиосниффера

Механическая сборка в корпус

В качестве корпуса используется коробочка от тик-така.

Скетч и Библиотеки

Скетч найдёте на странице проекта на GitHub. Для чтения радиопультов я не использую библиотеки библиотеки типа RC-switch или radiobutton. Скетч достаточно универсален самостоятельно распознает любой цифровой повторяющийся сигнал содержащий до 160 переключений и содержащий защитные паузы от 5 до 30 мс. При этом фиксируется длительность единицы и нуля, полярность сигнала, наличие преамбул и дополнительных бит. Полученные данные скетч может сохранять в EEPROM и синтезировать на их основе исходный сигнал.

Не забудьте нажимать reset на ардуино как только закончится компиляция скетча и появится надпись «Загрузка». Этот программатор автоматом не посылает сигнал ресет.

Энергопотребление и сбережение

Т.к. девайс должен функционировать длительное время автономно, нужно позаботиться от энергосбережении. Поэтому за основу взята arduino pro mini с пониженной частотой 8МГц и пониженным питанием 3.3В. Все модули питаются также от 3.3В. Также из ардуино отпаян индикатор питания. Программно сделано следующее:

  • Понижена тактовая частота до 2 МГц
  • Отключена неиспользуемая периферия МК: АЦП, компаратор, SPI, неиспользуемые порты ввода-вывода
  • При ожидании используется режим глубокого сна с потреблением в 150 мкА!
  • При необходимости OLED дисплей переводится в режим сна
  • Модуль передатчика включается только в момент передачи
  • Модуль приемника отключается при передаче
Потребление тока всем девайсом в режиме глубокого сна

Как заряжать аккумулятор?

Для зарядки аккумулятора от usb использую замечательный модуль 134N3P. У него два гнезда. Внимание! Для подключения к блоку питания используется microUSB. В режиме Normal одного заряда хватит на несколько месяцев работы.

Описание режимов работы радио-сниффера

Режим NORMAL: после включения сниффер загружает из EEPROM ардуино текущий ключ, показывает его код на дисплее, а также тип ключа и количество ключей в EPPROM. При этом сниффер уже слушает эфир. Если он “услышал” новый ключ, то дисплей отобразит серийник этого ключа. Долгое удержание ОК сохранит ключ в EEPROM. Кнопками влево и вправо можно листать ключи из списка. По нажатию на кнопку ОК сниффер передает текущий ключ в эфир. Т.е. его можно использовать как пульт. Через 5 секунд бездействия девайс засыпает. Потребление тока опускается до 140 мкА.

Режим AUTO:  Переключение между режимами происходит двойным кликом по кнопке ОК. Текущий режим отображается в правом нижнем углу дисплея. Режим авто отличается от нормал тем, что “подслушанный” ключ автоматически добавляется в EEPROM, если конечно там такого ключа еще нет. Если сниффер услышал новый ключ, то из буззера раздается писк. В этом режиме снифеер не засыпает. Потребление тока составляет 14 мА.

Режим SILENCE: тоже что и режим  авто, только при этом отключается дисплей и не пищит буззер. В этом режиме сниффер можно оставить на несколько суток и он тихонечко будет сохранять в EEPROM все, что услышит. В EEPROM влазит максимум 30 ключей. Очистить eeprom можно одновременным нажатием на кнопки влево и вправо. Потребление тока в этом режиме составляет 7 мА.

Что умеет читать/повторять?

От самых простых 12 битных пультов от шлагбаума CAME, различных 24 битный пультов от ворот найс, люстр и прочих китайских радиорэле до 64 битных ключей KeeLoq с динамической и псевдодинамической частью от откатных ворот AN-motors и автосигналок типа Пантера и Шэрхан.

Естественно, воспроизводить динамические ключи таким способом бессмысленно. 

ПРОИЗВОДСТВО и РАСПРОСТРАНЕНИЕ настоящих снифферов НЕЗАКОННО!

Статья 138 часть 1 уголовного кодекса: незаконное производство, приобретение или продажа спец. средств, для тайного получения информации. Карается лишением свободы до 4 лет. 

К таким средствам относятся не только аппаратура для прослушки, но и перехват информации с технических каналов связи. Т.е. все чужие (не ваши) автосигнализации и системы управления доступом такие, как ворота, шлагбаумы и домофоны законом запрещено прослушивать.

Хочу всех предостеречь. У вас как у пользователя шлагбаума или автоматических ворот может возникнуть чувство ложной безопасности. При этом проникнуть на участок вашего загородного дома или вывезти со склада материальные ценности может оказаться не так сложно.  С помощью данного самодельного девайса вы можете протестировать свою систему на безопасность.

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

Поддержи Автора!

Если вам понравился проект — поддержите автора!

Если вам нравится самоделка, вы можете заказать комплект для самостоятельной сборки

  • Комплект для самостоятельной сборки 1400 руб

Доставка в ваш город составляет примерно 250 руб и уже включена в стоимость.

Вырученные средства пойдут на на закупку материалов для новых проектов, оборудования для съемки, содержание сайта и доменного имени.

Необходимые Материалы

Полезные ссылки

552 комментария к «Radio-sniffer 433/315 MHz. Открывашка для шлагбаумов и ворот»

  1. «В скетче есть параметр, который задает количество считываний. Можно поставить 1 и будет читать с 1 раза.»
    Будут ошибочные записи, много. Проверял. Уменьшение мин. паузы дало стабильный результат.

    А для чего в скетче void sendRawKey() ?

    1. Эта функция отправляет полученный сигнал из массива, как есть без изменений. ВОспроизводит 100% любой сигнал, но занимает много оперативки и не сохраняет его в eeprom

    2. Добрый вечер Андрей! Я собрал зтот проэкт,но передача кода не работает,не могли бы вы скинуть на почту Bolt201@yandex.ru свои поправки в скетче,вкакой строке и какой пораметр изменить.Я не силен в програмировании,только начал этим заниматься.Заранее благодарен,С уважением Сергей

  2. Подскажите, а почему вы не хотите создавать темы по вашим проектам, ну, на радиокоте например, там вроде демократично вполне. Просто есть вопросы, часть ответов было уже, я прочитал, но тут это крайне неудобно. И еще тут пишут, что не читает Nice Flor-s, а почему? К сожалению не имею оригинального брелка, но воспользовался симулятором на ардуино с фрикер клуба (там правда пауза не верно прописана была, просто не выполнялась) вполне читает, определяет как 52 бита, как и должен. Не отображал последний байт из-за побитового сдвига на 3, при чтении из памяти, поправил. Добавил определение типа. Понятно, что отправлять его смысла нет, но и не требуется от этого устройства, но понять что за тип кода на шлаге помогает. Так все таки, видит он по умолчанию Nice Flor-s или у меня симулятор кривой?

    1. Я пробовал Flor-s. Если уменьшить в скетче количество успешных повторов до 1 — читается успешно. Не все мои проекты по тематике подходят радиокоту.

    2. «Если уменьшить в скетче количество успешных повторов до 1 — читается успешно.»
      А почему так? Я сужу по : https://vrtp.ru/index.php?showtopic=27867 Пульта flor-s, как сказал, не имею. Есть пауза 18500 между посылками, 5 посылок, динамическая часть кода меняется только если удерживать кнопку (счетчик повторов), либо при повторном нажатии. Подскажите причину, чтоб код подогнать под флорс? А форум бы любой не помешал, жаль не хотите 🙂

    3. Доброй ночи Андрей,скинте плиз переделаный скетч

    4. Андрей будте добры скинуть скетч со всеми вашими поправками пожалуйста!

  3. Может я плохо искал, но есть ли док по управлению устройством? Двойное нажатие ОК — смена режима, одновременное нажатие вправо/влево — обнуление EEPROM. Как сохранить в EEPROM? Может есть еще какие-то комбинации?

    1. Да… Надо читать внимательней:) >Долгое удержание ОК сохранит ключ в EEPROM.

  4. Два вопроса: 1 — для чего функция sendRawKey (которая не вызывается) ? 2 — почему не удаётся с этого снифера сделать клон кода на китайский пульт ду и как это можно сделать?

    1. 1. Эта функция отправляет прочитанный ключ «как есть», т.е. без анализа и раскладывания на биты и байты
      2. Китайские пульты используют именно такой подход, как п. 1. Но на это требуется больше памяти

    2. У меня, часть обучаемых устройств стала принимать код от этого снифера, после изменения скетча, в части добавления возможности при удержании кнопки слать код до ее отпускания (им не хватало повторов). А еще часть…, как оказалось некоторые пульты имеют такие startPause [160, -4864], ловил снифер без изменения размера паузы их с трудом, и как -5000 конечно. Так и отправлял, соответственно копия не работала. После корректировки мин. паузы, все работает четко. Что скопировал, то сумел отдать на другие пульты.

  5. Добрый день. Подскажите пожалуйста почему с этого снифера не удаётся склонировать прочитанный ранее код на китайский 433 пульт? Процедура проходит, но любой склонированный код определяется потом сниффером как ff:ff:ff. Каким образом это можно всё-таки сделать?

  6. Добрый день ! Не хотите добавить функцию глушилки сигнала , было бы замечательно))

    1. Сделайте кнопку для этих целей, пропишите скетч, если вкл кнопка, то передаёт сигнал через 30 милисекунд постоянно. Это и есть мусор в эфире.

  7. При компиляции: Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\RadioSniffer-master: нет заголовочных файлов (.h), найденных в C:\Program Files (x86)\Arduino\libraries\RadioSniffer-master
    Неверная библиотека найдена в C:\Program Files (x86)\Arduino\libraries\RadioSniffer-master: нет заголовочных файлов (.h), найденных в C:\Program Files (x86)\Arduino\libraries\RadioSniffer-master
    Что не так?

  8. Здравствуйте, скажите пожалуйста, в каком формате запоминается код? Если я задумаю код перекинуть на другую ардуинку для управления радиорозетками.

    1. Что вы под форматом понимаете, формат цифровой ))), а как вы будете перекидывать? Формат — структура вот тут: struct tpKeyData {}, объявлена в начале скетча.
      В памяти нули и единицы… Сначала решите как другая ардуина будет получать ключ, тогда и формат вывода понятен станет.

  9. Может не так сформулировал, раньше считывал пульты китайскими наборами через библиотеки типа rc-switch-master и др. код типа (1234567,24) 24 битный. У вас похоже на машинный код. Ваш sniffer можно отсканировать модулем на 433 мгц с библиотеками и записать код в другой скетч для ардуинки?

    1. Снифер это не мой, но отвечу, считать можно другими сниферами, граберами, пультами, радиомостами. Проверено, все работает (а почему не работать?) Даже киилок можно поймав отправить на устройство способное его корректно использовать и соответственно открывать то, что не может отрыть этот снифер, но способен поймать и записать, в этом для меня главная ценность этого проекта. ))) Все это проверено. Надеюсь добавить по человечески еще флорс и еще некоторые форматы, и вообще здорово будет. Скетч корректировал (кое что писал выше), но ничего существенного, в части вас интересующей итак все работает. Что такое 1234567? В HEX 24 бит это :123456… Машинный код — это о чем?

    1. Обычный калькулятор Windows, в режиме «программист» тоже вполне с этим справляется.

    1. Алексей, что конкретно вас интересует? Что не работает так, как хотелось бы? Напишите конкретнее, чем смогу, помогу. Во первых, я несколько раз переделывал скетч, включая интерфейс, под разные свои нужды. Во вторых, мне кажется не корректно тут обсуждать другие варианты скетча, а вопросы обязательно возникнут.

  10. Добрый день, подскажите пожалуйста куда копать куда смотреть, собрал, определяет и записывает ключи от CAME брелков , аппарата с газированными напитками, но ключи не воспроизводятся , открывать не хочет, причем дверные звонки не считывает, пробовал 4 разных
    Передатчики и приемники менял разные но результата нет, подскажите пожалуйста

    1. Алексей, код то хоть одинаковый снифер принимает, от ваших брелков. Или периодически меняющийся, если кнопку брелка жать многократно? Даже не спрашиваю тип пульта, протокола, но может хоть ссылку на фото брелка? А дверные звонки ваши должен считывать? У них в протоколе, есть повторяющаяся дважды пауза, длительностью попадающая в диапазон указанный в скетче, за которой следует повторяющийся дважды код? Устройство не может ловить все из эфира, на частоте 433,92 МГц, нужно понимать, что ловить хотите. Иначе наловите мусор один, и что с ним делать?

  11. А на ардуино нано можно организовать данный проект? И если да то скетч корректировать?

  12. Добрый день , подскажите у меня получилось расстояние сантиметров 20, как приемника так и передатчика , в чем может быть бело. Приемник и передатчик в топку?

  13. День добрый !
    подскажите пожалуйста,
    собрал схему на адруино нано ,
    схема не работает
    пишет что в памяти нет ключей.
    скетч сделан только для адруино мини ?
    что изменить в скетче чтобы работало на адруино нано.

  14. Кто знает, что прописать или подправить в скетче чтобы читал Nice Flor-s.

  15. Добрый друзья. Собрал я данный девайс согласно автора. Но есть несколько вопросов. По умолчанию устройство готово к получению пока не нажать кнопку , и как тухнет дисплей гаснет и питание на передатчик
    Можно ли сделать так чтоб он сканил по умолчанию не нажимаю все время кнопку «ок» ?

  16. здравствуйте! подскажите кто-нибудь. при попытке скомпилировать скетч и залить на ардуино нано выдает ошибку в этой строчке btn_right.setClickTimeout(300 >> prescal);
    Что может быть?

  17. Один вопрос, на фото видно, что зарядник аккума минусом подключен к порту RX, так и должно быть?

  18. добрый день собрал, всё работает, есть одна маленькая неприятность ловит с расстояния максимум 10см, arduino mikro подкинул осциллограф на D2, пульт нажимаю на расстоянии 10 метров посылки видны чёткие а снифер не принимает.
    куда капать?

  19. ответ на мой вопрос:
    строка 243 меняем значение 24 на 12
    if ((duration > minPause)&&(duration = 12)){ //похоже на очередной синхроимпульс
    строку 247 не трогаем и наче будет весь шлам принимать сплошные ошибки.

    1. А что за пульт у вас с ключом меньше 12 Бит, от чего он? Ведь именно это параметр вы изменили.

  20. подскажите, что делать, все собрал:
    загружается
    кнопки работают
    но эфир не слушает?

    1. такая же ситуация, не слушает. что делать?

  21. В скетче упоминаются библиотеки:
    #include
    #include
    #include
    А где находятся сами библиотеки?

  22. В скетче упоминаются библиотеки:
    EEPROM.h
    avr/sleep.h
    avr/power.h
    А где находятся сами библиотеки?

  23. Здравствуйте! Как сделать что бы удалялась только выбранная запись? Данные в первой ячейке (где хранится количество ключей) и при необходимости нулевой ячейке (индекс ключа) уменьшаем на 1. Сдвигаем все ключи (записываем) на предыдущее место ключа (например 4 ключ на место 3). Но никак не могу разобраться с keydata и длинной записанного ключа. Как вытащить из Eeprom всю длину определенного ключа (по индексу?) и все его данные? И как потом записать все эти данные в другое поле? Буду благодарен за ответ!

    1. Разобрался, как удалить выбранную запись! Функция EEPROM_get_key возвращает весь ключ по выбранному индексу, и перезаписываем каждый ключ на предыдущее место!

    2. А напишите, пожалуйста, кусок рабочей процедуры удаления и сдвига кшюча из памяти. Думаю, многие не очень хорошо владеющие программированием люди будут благодарны.

    3. Михаил добрый день! Расскажите по поводу удаления выбранного ключа и может вы знаете как реализовать в коде непрерывную передачу выбранного кода по зажатию кнопки «ОК». если возможно пришлите на почту — kipia75@yandex.ru заранее спасибо

  24. Михаил, не могли бы поделится изменениями в скетче про удаление выбранного номера ключа?

  25. Доброго времени суток.
    Все спаял по одноименной технологии,но никак не могу залить скетч.Не силен я в программировании.
    Вот что пишет:
    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp: In member function ‘void Adafruit_CircuitPlayground::playTone(uint16_t, uint16_t, bool)’:

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:215:3: error: ‘PLLFRQ’ was not declared in this scope

    PLLFRQ = (PLLFRQ & 0xCF) | 0x30; // Route PLL to async clk

    ^~~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:215:3: note: suggested alternative: ‘PCIFR’

    PLLFRQ = (PLLFRQ & 0xCF) | 0x30; // Route PLL to async clk

    ^~~~~~

    PCIFR

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:3: error: ‘TCCR4A’ was not declared in this scope

    TCCR4A = _BV(COM4A0) | _BV(PWM4A); // Clear on match, PWMA on

    ^~~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:3: note: suggested alternative: ‘TCCR0A’

    TCCR4A = _BV(COM4A0) | _BV(PWM4A); // Clear on match, PWMA on

    ^~~~~~

    TCCR0A

    In file included from c:\users\����97\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

    from c:\users\����97\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

    from C:\Users\����97\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino/Arduino.h:28,

    from C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground/Adafruit_Circuit_Playground.h:20,

    from C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:30:

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:17: error: ‘COM4A0’ was not declared in this scope

    TCCR4A = _BV(COM4A0) | _BV(PWM4A); // Clear on match, PWMA on

    ^

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:17: note: suggested alternative: ‘COM0A0’

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:31: error: ‘PWM4A’ was not declared in this scope

    TCCR4A = _BV(COM4A0) | _BV(PWM4A); // Clear on match, PWMA on

    ^

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:216:31: note: suggested alternative: ‘PWM’

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:217:3: error: ‘TCCR4B’ was not declared in this scope

    TCCR4B = _BV(PWM4X) | scalebits; // PWM invert

    ^~~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:217:3: note: suggested alternative: ‘TCCR0B’

    TCCR4B = _BV(PWM4X) | scalebits; // PWM invert

    ^~~~~~

    TCCR0B

    In file included from c:\users\����97\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

    from c:\users\����97\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

    from C:\Users\����97\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino/Arduino.h:28,

    from C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground/Adafruit_Circuit_Playground.h:20,

    from C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:30:

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:217:17: error: ‘PWM4X’ was not declared in this scope

    TCCR4B = _BV(PWM4X) | scalebits; // PWM invert

    ^

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:217:17: note: suggested alternative: ‘PWM’

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:218:3: error: ‘TCCR4D’ was not declared in this scope

    TCCR4D = 0; // Fast PWM mode

    ^~~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:218:3: note: suggested alternative: ‘TCCR0A’

    TCCR4D = 0; // Fast PWM mode

    ^~~~~~

    TCCR0A

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:219:3: error: ‘TCCR4E’ was not declared in this scope

    TCCR4E = 0; // Not enhanced mode

    ^~~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:219:3: note: suggested alternative: ‘TCCR0A’

    TCCR4E = 0; // Not enhanced mode

    ^~~~~~

    TCCR0A

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:220:3: error: ‘DT4’ was not declared in this scope

    DT4 = 0; // No dead time

    ^~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:220:3: note: suggested alternative: ‘DD4’

    DT4 = 0; // No dead time

    ^~~

    DD4

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:226:3: error: ‘TC4H’ was not declared in this scope

    TC4H = hi1;

    ^~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:226:3: note: suggested alternative: ‘PC4’

    TC4H = hi1;

    ^~~~

    PC4

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:227:3: error: ‘OCR4C’ was not declared in this scope

    OCR4C = lo1; // TOP

    ^~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:227:3: note: suggested alternative: ‘OCR2A’

    OCR4C = lo1; // TOP

    ^~~~~

    OCR2A

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:229:3: error: ‘OCR4A’ was not declared in this scope

    OCR4A = lo2; // 50% duty

    ^~~~~

    C:\Program Files\Arduino\libraries\Adafruit_Circuit_Playground\Adafruit_CircuitPlayground.cpp:229:3: note: suggested alternative: ‘OCR2A’

    OCR4A = lo2; // 50% duty

    ^~~~~

    OCR2A

    exit status 1
    Ошибка компиляции для платы Arduino Pro or Pro Mini.

  26. Михаил а поделиться скетчем, к деления нужного ключа, не могли бы

    1. добавляем в void loop() :

      if (btn_left.isHolded()) { //если зажать левую кнопку то удалится выбранная ячейка
      int index_=EEPROM_key_index;
      for (byte i=EEPROM_key_index; i0) {
      EEPROM_key_count=EEPROM_key_count-1;
      EEPROM.update(0, EEPROM_key_count);
      OLED_printError(F(«The key deleted»), false);
      delay(200);
      OLED_printKey(&keyData1);
      }

      if (EEPROM_key_count==0) EEPROM_key_index=0;
      Sd_ReadOK();
      EEPROM.update(1, EEPROM_key_index);
      stTimer = millis();
      }

      также написана небольшая функция

      bool EPPROM_Add(tpKeyData* kd){
      EEPROM.put(EEPROM_key_index*sizeof(tpKeyData), *kd);
      return true;
      }

    2. «for (byte i=EEPROM_key_index; i0) {» — а что такое ‘i0″ в этой строчке?
      p.s. тем, кто будут сложности со строкой «OLED_printError(F(«The key deleted»), false);» попробуйте поменять кавычки с « на «.

    3. Черт, форум текст меняет — вместо кавычки треугольными скобками — кавычка двойным апострофом.
      Михаил, а где и как используется функция EPPROM_Add? Уж не добавляет ли ключ из монитора порта при подключении к компьютеру?

    4. Да, комментарии не предназначены, что бы писать скетч, меняются символы
      вместо for (byte i=EEPROM_key_index; i0) {
      должно быть
      for (byte i=EEPROM_key_index; i<EEPROM_key_count; i++){

    5. Давайте проще поступим, пишите на timmn@mail.ru, так и быстрее отвечу и пришлю, правки.

  27. При подключении пина (SDA) индикатора к ардуино посылки брелков не принимаются, индикатор работает. При отключении этого пина от ардуино приёмник ловит посылки (видно в мониторе порта), но, естественно, нет индикации. Кто нибудь сталкивался с таким поведением сниффера? В чём может быть проблема?

  28. Уважаемый Михаил ! Спасибо за интересную разработку.
    Моделирую в протеусе.
    Пожалуйста, вышлите мне симулятор сигналов на ардуино.
    С фрикер клуба скачать не удалось — регистрация приостановлена…
    С благодарностью.
    Геннадий

  29. При подключении преобразователя USB to serial RS232, при наличии батареи, нужен ли провод питания? На схеме вроде показан модуль на базе чипе CP2102, а он сам вырабатывает 3,3в. Или во время программирования надо отключать батарею?

    1. Если конвертор выдает 3.3В (или 5, в зависимости от ого, какую ардуину шьете), и провод Vсс соединен с платой ардуины, дополнительного питания ей не нужно. А можно и оставить, при одинаковых напряжениях никакого криминала не будет. А можно Vcc ардуины и преобразователя уровней и вообще не соединять, если есть масса и уровни напряжения батареи и преобразователя одинаковые.

  30. Здравствуйте.Переназначил кнопку «ок» на порт «4», соотв. + приемника подвинул на контакт «3»(у меня приемник другой, так удобнее).Но столкнулся с тем, что теперь нажатие клавиши «ок» не выводит ут-во из сна.В остальном функционал реализован.В чем причина ошибки?
    Спасибо.

    1. Причина в том, что ардуинку выводит из сна внешнее прерывание. А они генерится при нажатии кнопки ОК. Вы можете переназначит кнопку, но у этой ардуинки всего два внешних прерывания и они жестко привязаны к конкретным пинам

    2. Прерывания жестко висят на ноге, что у Вас назначена на кн-ку «Ок».Понял, Спасибо!

  31. Ни как не пойму. Есть автоматические ворота с брелком. Нажимаю кнопку на брелоке, снифер сканирует, сохраняю в память. При повторном нажатии брелока, код меняется, снифер пишет, что он уже имеется в памяти. Получается так, что брелок с динамическим кодом, снифер понимает, что при каждом нажатии команда с того же брелока, а воспроизвести не может. То же самое происходит со второй кнопкой брелока, первое нажатие сохраняется, последующие уже нет, хотя в строке совсем другие символы.

    1. Пункт «схема соединения модулей» четвёртая строчка сверху.

    2. «Ни как не пойму. Есть автоматические ворота с брелком. Нажимаю кнопку на брелоке, снифер сканирует, сохраняю в память. При повторном нажатии брелока, код меняется, снифер пишет, что он уже имеется в памяти.»
      Он вам прямым текстом пишет тип кодировки. Читаем, гуглим. Часть ключа меняется с каждой посылкой, снифер знает какая часть ключа меняется, поэтому ее не учитывает, и пишет вам, что пульт тот же. Но алгоритма замены он не знает, для его подсчета нужен «мануфактурный код». Добудьте его, под ваш пульт, добавьте в скетч, тогда будет работать ))) Но думаю вам проще купить пульт-копировщик в который уже вшит мануфактурник, не тем путем пошли, для вашего случая.

  32. Добрый день ! Может кто нибудь подсказать на avsheremet@yandex.ru что нужно поправить что бы функционал был полный ? (читает, созраняет, но воспроизводит всегда одно и то же судя по осциллографу)

  33. Андрей, не могли бы вы поделиться измененным скетчем для непрерывной выдачи сохраненного кода в эфир при удержании кнопки. demosvlz@mail.ru

  34. 1. Допустим полученный код h5E9921 Dec:6199585 он 24 разрядный (010111101001100100100001) и принимается и отправляется правильно.
    Так вот вопрос если сигнал код 12 битный допустим h1F4 Dec: 500 (000111110100) как он принимается не правильно или правильно еще не понял, но отсылается он не правильно, получается что он посылает импульсы (000000011111
    ), что соответствует h1F, то есть не учитывая второго байта.
    2. Допустим нужно послать 24 битный код, но код состоит из 12 битных чисел (то есть до 4096), то заполняем паузами эти все нули или как?
    Допустим Dec: 500 в 24 разрядном коде (0000 0000 0000 0001 1111 0100)
    Или такого не может быть, но тогда 12 битные коды начинаются от 256 до 4096?

  35. Добрый день! Собрал повторил прибор по вашему видео, заряжал аккумулятор с помощью модуля tp4050 пульт считал от люстры, однако при нажатии кнопки ок код не передаётся…..

  36. Андрей здравствуйте!!! Подскажите пожалуйста как вы это организовали??? Привожу часть вашего комментария от 06.11.2020 в 23:36
    «У меня, часть обучаемых устройств стала принимать код от этого снифера, после изменения скетча, в части добавления возможности при удержании кнопки слать код до ее отпускания (им не хватало повторов).»

    1. Андрей здравствуйте!!! Подскажите пожалуйста как вы это организовали??? Привожу часть вашего комментария от 06.11.2020 в 23:36
      «У меня, часть обучаемых устройств стала принимать код от этого снифера, после изменения скетча, в части добавления возможности при удержании кнопки слать код до ее отпускания (им не хватало повторов).»
      byte ANmotorsByte = random(256);
      do {
      for (byte k = 0; k < 4; k++){
      …………………………………………………………………..
      …………………………………………………………………….
      ……………………………………………………………………
      } while (btn_ok.isHold()); // отправляем ключ пока не будет отпущена кнопка
      digitalWrite(txPin, LOW);
      digitalWrite(TM_Vcc_Pin, LOW); // выключаем передачик
      digitalWrite(RVR_Vcc_Pin, HIGH); //включаем приемник

      Куда вставить и что вместо многоточий, не должно вызвать проблем.

  37. Добрый день! Хочу приобрести у вас это изобретение! Есть пару вопросов , как можно с вами связаться?

  38. Добрый день. Так и не могу понять почему не принимает сигналы.( В чем может быть проблема? Помогите пожалуйста.

Добавить комментарий для Иван Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх