Нужна помощь по радиомодулю и ИК передатчику

nehidd
Offline
Зарегистрирован: 09.12.2012

Доброго времени суток! Нужна помощь реально разбирающихся людей в этой теме. Решил сделать умный дом на базе ардуино и готовых моделей.

Есть такая штучка http://www.aliexpress.com/item/Keyless-Entery-Door-Lock-Remote-Control-S... а так же есть несколько таких комплектов http://www.ebay.com/itm/261041100836?ssPageName=STRK:MEWNX:IT&_trksid=p3... Для программирования использовалась библиотека VirtualWare и её примеры. Пробовал принимать сигнал и от пульта и на одной плате ставить передатчик и приемник, но все без толку. Где-то что-то делаю не так, а что именно не могу разобраться. Так же есть проблема с посылкой полученного от пульта ИК сигнала. В этом все я новичок и пока все делаю по примерам.

В общем, нужен человек, который бы смог помочь разобраться с этими и другими проблемами, которые, скорее всего, будут возникать. Можем договорится на постоянную помощь или даже обучение некоторым вещам (не безвозмездно конечно).

Если кто-то сможет помочь в этом жду вас в личку.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Это не ИК. Потому с ик пульта ничего не получите. Про радиоканал расскажут те, кто знает.

nehidd
Offline
Зарегистрирован: 09.12.2012

kisoft пишет:
Это не ИК. Потому с ик пульта ничего не получите. Про радиоканал расскажут те, кто знает.

То что это не ИК знаю. Я, наверное, не так выразился. По ИК - это как бы отдельная задача. Есть ИК приемник, удалось получить код с пульта и включать/выключать светодиод по нажатию разных кнопок. А как послать этот же код телику (от него использовал пульт) пока не разобрался. Только не могу понять причина в неправильном подключении передатчика, его выборе (есть пару модулей) или программе.

P.S. только увидел, что тут нету личных сообщений. Поэтому просьба откликнуться просто в тему.

General
Offline
Зарегистрирован: 09.12.2012

С nehidd работаю совместно, поэтому хотел бы обратить внимание "не безвозмездно конечно" - научиться хочется, поэтому совсем не безвозмездно :). Можте кому-то и наши знания оптимизаторов помогут. Надеюсь ктонибудь, кто разбирается - откликнется. 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

В форуме много тем по ИК, поищите. Если в двух словах, то у каждого бренда своя кодировка. Есть библиотека IRremote, можно использовать её для начала. Во всяком случае можно посмотреть исходники.

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

nehidd пишет:

А как послать этот же код телику (от него использовал пульт) пока не разобрался. Только не могу понять причина в неправильном подключении передатчика, его выборе (есть пару модулей) или программе.

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

nehidd
Offline
Зарегистрирован: 09.12.2012

Evgen пишет:

nehidd пишет:

А как послать этот же код телику (от него использовал пульт) пока не разобрался. Только не могу понять причина в неправильном подключении передатчика, его выборе (есть пару модулей) или программе.

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

C помощью указанной выше библиотке. Сначала получаю код кнопки с помощью одного скетча, потом посылаю его обратно. В IRremote есть примеры.

Но у меня возникла проблема с посылкой сигнала с помощью sendRaw. Например, телику четко посылается код через sendNec, а тот же код кнопки, но уже посланный sendRaw (посылаю уже, как массив полученных данныы) не хочет работать совсем. Может кто сталкивался с этим?

Дурачёк
Дурачёк аватар
Offline
Зарегистрирован: 25.11.2012

Сталкивался, разница в интервалах между посылками...

nehidd
Offline
Зарегистрирован: 09.12.2012

Дурачёк пишет:

Сталкивался, разница в интервалах между посылками...

Как решали, если не секрет? Я делаю это так:

unsigned int powerOn[68] = {4818,8900,......};
irsend.sendRaw(powerOn, 68, 32);

Пробовал много разных вариантов и никакого результата. Может поделитесь опытом? :)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

nehidd, зачем Вам это нужно? (sendRaw), sendNEC же работает.

Могу сказать, что если теликом или подобной аппаратурой управлять, то проблем нет, все протоколы описаны. А если кондиционером, например, то протоколы не описаны, потому в таких случаях RAW может и поможет, только не с этой библиотекой, она не очень точно (а это не всегда и нужно) измеряет интервалы.

 

nehidd
Offline
Зарегистрирован: 09.12.2012

Мне как раз кондиционером и надо управлять, но я уже понял, что задача это не всегда решаемая.

"nehidd, зачем Вам это нужно? (sendRaw), sendNEC же работает." - я просто думал, что делаю что-то не так с посылкой через Raw и поэтому не получается управлять тюнером и кондишкой.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

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

Еще, если у Вас реальные цифры:

unsigned int powerOn[68] = {4818,8900,......};
irsend.sendRaw(powerOn, 68, 32);

То это ни под какой протокол не подходит. http://www.sbprojects.com/knowledge/ir/xsat.php здесь есть про протоколы, если инетересно.

 

Дурачёк
Дурачёк аватар
Offline
Зарегистрирован: 25.11.2012

Если хотите универсальности, придётся свою библиотеку писать, с концептуально иным подходом.

Записываем в буффер pulseln()ы, ищем повторяющиеся последовательности, находим конкретные тайминги, конкретной функции, конкретного устройства, которые потом можем легко воспроизвести и управлять любым устройством. Ну а в одном, конкретном случае, можно выгрузить последовательность через ком порт, и по искать самому в екселе.

nehidd
Offline
Зарегистрирован: 09.12.2012

kisoft пишет:

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

Еще, если у Вас реальные цифры:

unsigned int powerOn[68] = {4818,8900,......};
irsend.sendRaw(powerOn, 68, 32);

То это ни под какой протокол не подходит. http://www.sbprojects.com/knowledge/ir/xsat.php здесь есть про протоколы, если инетересно.

 

Цифры реальные, полученный через примр библиотеки DUMP. мне тоже кажется, что с ними что-то не так, иначе бы телик работал. т.к. через NEC все работает отлично. У меня есть еще ТВ тюнер с неопознанным протоколом, там тоже глухо.

К сожалению в этом новичок и пока вряд ли смогу вычислить нужные значения.

nehidd
Offline
Зарегистрирован: 09.12.2012

Вот полный код

{4818, 8900, 4450, 550, 550, 550, 550, 550, 550, 600, 500, 600, 550, 550, 550, 550, 550, 600, 500, 550, 1650, 600, 550, 550, 1650, 600, 1650, 550, 1650, 550, 1700, 600, 500, 550, 1700, 550, 1650, 600, 500, 600, 1650, 550, 1650, 550, 600, 550, 500, 600, 550, 550, 600, 550, 500, 600, 1650, 550, 550, 600, 500, 550, 1700, 600, 1650, 550, 1650, 550, 1650, 600}

все коды начинаются примерно с одинаковых порядков чисел

А по радио модулю можете что-то сказать? На вид там все просто и примеры есть, а работать никак не хочет. Готов 500р. заплатить за дельный совет.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

У Вас явно первое число 4818 - это из 0 элемента массива, оно - лишнее для кода, а если взять остальное, то остается код NEC. В 0 элементе хранится длительность паузы, до начала кода. Её выводить не нужно.

sendRaw считает, что первое число - это MARK, уберите его и всё получится. У Вас сейчас выводится "инверсный" код, вместо MARK - SPACE и наоборот. Попробуйте.

 

 

nehidd
Offline
Зарегистрирован: 09.12.2012

kisoft пишет:

У Вас явно первое число 4818 - это из 0 элемента массива, оно - лишнее для кода, а если взять остальное, то остается код NEC. В 0 элементе хранится длительность паузы, до начала кода. Её выводить не нужно.

sendRaw считает, что первое число - это MARK, уберите его и всё получится. У Вас сейчас выводится "инверсный" код, вместо MARK - SPACE и наоборот. Попробуйте.

СПАСИБО ОГРОМНОЕ!!!! Да, действительно, убрал первую цифру и заработало. Тюнер конечно не четко, но там и с пульта не всегда получается, надо целиться. А посылаемый на него сигнал почему-то выключает на нем звук (пробовал 2 разных кода). Но и это круто!

P.S. Кондишка так и не заработала, но до этого, видимо, я еще не дорос.

Пока у меня осталась вообще не решена задача с радиомодулями(((

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Кстати, в sendRaw можно задать частоту. Это может помочь для кондиционера, попробуйте ему скормить коды (без 0 элемента!) и третий параметр 56 (это частота 56 КГц). Возможно это сработает, кто знает. Отпишите результат, если попробуете.

 

nehidd
Offline
Зарегистрирован: 09.12.2012

УРААА! Все заработало! В общем проблема была в буфере, у меня длина в 228 получается. Я менял буфер на 200 и получал 200, но думал - это максимальная, как в в другой теме указано, а потом поставил 300 и получил уже все данные, которые отправились без проблем на частоте 36КГц. Еще раз большое спасибо за помощь!

General
Offline
Зарегистрирован: 09.12.2012

nehidd, выложи код - тема уже встрачалась и может помочь другим. 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Еще, уточни частоту (36 или 56) и тип кондиционера, чтобы совсем было понятно.

nehidd
Offline
Зарегистрирован: 09.12.2012

Вот код. Там через монитор вводится 1 - включается кондиционер, 2 - телевизор. Кондиционер Arvin. Частоту подобрал перебором и она оказалась 36КГц. Кондиционер включается ровно на тех параметрах, на которых была записана кнопка включения.

#include <IRremote.h>
IRsend irsend;
unsigned int powerOn[228] = {3300, 1750, 450, 1250, 450, 1250, 450, 400, 450, 450, 450, 400, 450, 1250, 450, 400, 450, 450, 450, 1250, 450, 1250, 450, 400, 450, 1250, 450, 450, 400, 450, 450, 1250, 450, 1250, 450, 400, 450, 1250, 450, 1250, 450, 450, 450, 400, 450, 1250, 450, 400, 450, 450, 450, 1250, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 450, 400, 400, 500, 1250, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450, 450, 400, 1300, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 1300, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 1250, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450};
void setup() {
  Serial.begin(9600);
}
void loop() {
 if(Serial.available() > 0)
   {
    int a = Serial.read();
     if(a == 49){
       irsend.sendRaw(powerOn, 228, 36);
       Serial.println("Cond on");
     } 
     if(a == 50){
      irsend.sendNEC(0xBD6897, 32);
       Serial.println("TV on");
     } 
    a = 0;
   }
}

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Отлично, хороший пример для подражания. Вопрос, проблема решена, информацией поделился ;)

General
Offline
Зарегистрирован: 09.12.2012

nehidd, насколько возможно разобрать код на составляющие чтобы не запоминать все комбиначии пульта, а составлять их самостоятельно и отправлять ?

Pavel_
Offline
Зарегистрирован: 19.03.2012

nehidd пишет:

unsigned int powerOn[228] = {3300, 1750, 450, 1250, 450, 1250, 450, 400, 450, 450, 450, 400, 450, 1250, 450, 400, 450, 450, 450, 1250, 450, 1250, 450, 400, 450, 1250, 450, 450, 400, 450, 450, 1250, 450, 1250, 450, 400, 450, 1250, 450, 1250, 450, 450, 450, 400, 450, 1250, 450, 400, 450, 450, 450, 1250, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 450, 400, 400, 500, 1250, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450, 450, 400, 1300, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 400, 1300, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 400, 450, 450, 450, 400, 450, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 1250, 450, 400, 450, 450, 400, 450, 450, 1250, 450, 400, 450};

Объясните пожалуйста, почему длина = 228 ?

Pavel_
Offline
Зарегистрирован: 19.03.2012

Pavel_ пишет:
Объясните пожалуйста, почему длина = 228 ?

разобрался...по примеру

Цитата:

With that i got the RAW data from my Samsung remote control which was following

// power button
FFFF807F
Decoded SAMSUNG: FFFF807F (32 bits)
Raw (68): 6306, 4500, -4500, 600, -1600, 600, -1650, 600, -500, 650, -500, 550, -550, 600, -500, 600, -1650, 600, -500, 600, -1650, 600, -1650, 600, -500, 600, -500, 600, -1650, 600, -500, 600, -1650, 600, -500, 600, -1650, 600, -500, 600, -550, 550, -550, 600, -500, 600, -550, 600, -500, 600, -500, 600, -550, 600, -1600, 600, -1650, 550, -1650, 600, -1650, 600, -1650, 550, -1650, 650, -1600, 600,

That HEX code didnt work at all, so i moved on to raw code. The first thing to do with the raw code is to remove the first numeric-value AND convert all negatives to positive values as following code shows:

unsigned int powerOn[68] = {4500, 4500, 600, 1600, 600, 1650, 600, 500, 650, 500, 550, 550, 600, 500, 600, 1650, 600, 500, 600, 1650, 600, 1650, 600, 500, 600, 500, 600, 1650, 600, 500, 600, 1650, 600, 500, 600, 1650, 600, 500, 600, 550, 550, 550, 600, 500, 600, 550, 600, 500, 600, 500, 600, 550, 600, 1600, 600, 1650, 550, 1650, 600, 1650, 600, 1650, 550, 1650, 650, 1600, 600};

And then send that code as RAW to the device:

Pavel_
Offline
Зарегистрирован: 19.03.2012

Ну вот и я, наконец-то победил свой кондей!

Сперва как обычно, сграбил с пульта ИК-код с помощью примера IRrecvDump в библиотеке IRremote

и получил вот такой ИК-код

C6F15FF
Unknown encoding: C6F15FF (32 bits)
Raw (132): 21796 4600 -2500 350 -400 350 -900 350 -950 350 -400 350 -900 350 -400 350 -350 400 -350 350 -350 350 -950 350 -350 400 -350 350 -350 350 -950 400 -300 350 -400 350 -950 350 -350 350 -400 350 -350 350 -400 350 -900 350 -400 350 -350 400 -900 350 -400 350 -350 350 -350 400 -350 350 -950 350 -350 400 -300 400 -350 350 -400 350 -350 350 -350 400 -900 350 -400 350 -350 350 -350 400 -350 350 -400 350 -350 350 -350 400 -900 350 -400 350 -350 400 -300 400 -350 350 -400 350 -900 350 -400 350 -350 350 -950 350 -350 350 -400 350 -350 400 -350 350 -350 350 -950 350 -950 350 -350 350 -400 350 -350 400

далее подкорректировал ИК-код как в примерах выше, залил скетч в ардуинку с полученным ИК-кодом и стал отпралвть его на ИК-диод, но кондишен упорно его игонорировал...

Сграбил ИК-код с ардуинки, с помощью IRrecvDump и получил в общем-то такой-же кода как с оригинального пульта.

После, еще нескольких подобных безрезультатных опытов пришел к выводу, что надо грабить ИК-код другим способом, не с помощью библиотеки IRremote.

На параллельном форуме нашел хороший пример и с помощью этого примера сразу сграбил ИК-код с пульта и с ардуинки, для их сравнения.

вот что получил 1-пульт 2-ардуинка

0000000000000000000000000000000000000000000000000000111111111111111111110100000101011101110101010101101010101010011110010111101111111111111111111100001111111111111111111111111111111111111111END
0000000000000000000000000000000000000000000000000000111111111111111111110100001100011101010111111010101000110101010101110001001111111111111111111111111111111111111111111111111111111111111111END

как оказалось, в конце ИК-кода с пульта всегда присутствовала некая серия нулей, а в ИК-коде с ардуинки их почему-то не было... видимо - это какое-то "слово" об окончании ИК-команды.

Тогда я предположил, что библиотека IRremote увидев в конце кода данную серию нулей решала, что ИК-код закончился и как бы обрезала его.... В общем я просто увеличил длинну ИК-кода и в место [132]-которую определила библиотека, я постаивл [133] и все сразу заработало - появилась серия недастающих нулей в ИК-коде и кондей стал бесприкословно выполнять ИК-команду Вкл-Выкл от ардуинки ))

Марка кондея McQuay.

 

arduino161080
Offline
Зарегистрирован: 13.01.2014
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 1644 1250 -400 1250 -400 450 -1200 1250 -400 1250 -400 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 3292 1250 -400 1250 -400 400 -1250 1250 -400 1250 -400 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): -12120 1250 -400 1250 -400 450 -1200 1250 -400 1250 -400 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 10502 1250 -400 1250 -400 450 -1200 1250 -400 1250 -400 450 -1200 450 -1200 450 -1200 400 -1250 450 -1200 450 -1200 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 18476 1250 -400 1250 -400 450 -1200 1300 -350 1300 -350 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 1300 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): -7518 1250 -400 1250 -400 400 -1250 1250 -400 1250 -400 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 17176 1250 -400 1250 -400 450 -1200 1250 -400 1250 -400 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 450 -1200 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): 6394 1250 -400 1250 -400 400 -1250 1250 -400 1250 -400 450 -1200 400 -1250 400 -1250 450 -1200 450 -1200 400 -1250 1250 
A32AB931
Unknown encoding: A32AB931 (32 bits)
Raw (24): -6950 1250 -400 1250 -400 400 -1250 1250 -400 1250 -400 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 400 -1250 1250 

Прошу помощи распознать что за пульт такой.В общем то сам пульт от вентилятора фирмы AEG,но вот его код ну никак через raw не хочет слаться.

Все рабочие, пробовал на ARDUINO принимать пульт от спутникового ресивера, распознал как NEC засунул RAW код в скетч с 21 сообщения с поправкой на срез первого числа.
Все работает и по протоколу NEC и прямой передачей Raw.
Но вот это чудо ну никак не поддается.Куда копать не могу уже придумать.
Код прилагается.
 
 
Koncert-master
Offline
Зарегистрирован: 31.03.2020

Здравствуйте, устал уже разбираться и никак не пойму в чем дело. Китайские пистолеты для лазертага. Примники на частоте 38, спойокно принимают любые сигналы, но считать сам сигнал адекватно не получается каждый раз разные коды и всегда UNKNOWN Сравнивал уже по всякому. Друг с другом пистолеты работают корректно и все понимают, но смоделировать сигнал не получается. Тут два варианта кодов просканированных граббером из IR-Remote, в чем их отличие, и что надо изменить, чтобы их корректно считать?

Protocol=UNKNOWN Data=0xCC014102 (32 bits)

Result in internal ticks (50 us) - always without trailing gap

rawData[41]:

     +  32, -  8     +  8, -  8     +  6, -  10     +  8, -  8

     +  8, -  15     +  8, -  16     +  8, -  15     +  8, -  15

     +  7, -  9     +  8, -  8     +  8, -  8     +  7, -  9

     +  15, -  8     +  8, -  9     +  8, -  7     +  8, -  8

     +  16, -  8     +  7, -  9     +  8, -  7     +  16, -  15

     +  7

Result in microseconds - without trailing gap for IRremote versions >= 3.*

rawData[41]:

     +1600, - 400     + 400, - 400     + 300, - 500     + 400, - 400

     + 400, - 750     + 400, - 800     + 400, - 750     + 400, - 750

     + 350, - 450     + 400, - 400     + 400, - 400     + 350, - 450

     + 750, - 400     + 400, - 450     + 400, - 350     + 400, - 400

     + 800, - 400     + 350, - 450     + 400, - 350     + 800, - 750

     + 350

 

Result as internal ticks (50 us) array - always without trailing gap

uint8_t rawTicks[41] = {32,8, 8,8, 6,10, 8,8, 8,15, 8,16, 8,15, 8,15, 7,9, 8,8, 8,8, 7,9, 15,8, 8,9, 8,7, 8,8, 16,8, 7,9, 8,7, 16,15, 7};  // Protocol=UNKNOWN Data=0xCC014102 (32 bits)

 

Result as microseconds array - with trailing gap for IRremote versions 2.*

uint16_t rawData[42] = {21810, 1600,400, 400,400, 300,500, 400,400, 400,750, 400,800, 400,750, 400,750, 350,450, 400,400, 400,400, 350,450, 750,400, 400,450, 400,350, 400,400, 800,400, 350,450, 400,350, 800,750, 350};  // Protocol=UNKNOWN Data=0xCC014102 (32 bits)

 

Pronto Hex as string

char ProntoData[] = "0000 006D 0015 0000 003E 000F 000F 000F 000C 0013 000F 000F 000F 001D 000F 001F 000F 001D 000F 001D 000D 0011 000F 000F 000F 000F 000D 0011 001D 000F 000F 0011 000F 000D 000F 000F 001F 000F 000D 0011 000F 000D 001F 001D 000D 0806 "

 

 

Protocol=UNKNOWN Data=0x9F5121E0 (32 bits)

Result in internal ticks (50 us) - always without trailing gap

rawData[41]:

     +  31, -  8     +  8, -  9     +  7, -  8     +  8, -  8

     +  8, -  16     +  7, -  16     +  7, -  16     +  7, -  17

     +  8, -  8     +  8, -  8     +  6, -  10     +  7, -  9

     +  15, -  8     +  8, -  8     +  6, -  10     +  7, -  9

     +  15, -  8     +  8, -  8     +  7, -  9     +  15, -  16

     +  8

Result in microseconds - without trailing gap for IRremote versions >= 3.*

rawData[41]:

     +1550, - 400     + 400, - 450     + 350, - 400     + 400, - 400

     + 400, - 800     + 350, - 800     + 350, - 800     + 350, - 850

     + 400, - 400     + 400, - 400     + 300, - 500     + 350, - 450

     + 750, - 400     + 400, - 400     + 300, - 500     + 350, - 450

     + 750, - 400     + 400, - 400     + 350, - 450     + 750, - 800

     + 400

 

Result as internal ticks (50 us) array - always without trailing gap

uint8_t rawTicks[41] = {31,8, 8,9, 7,8, 8,8, 8,16, 7,16, 7,16, 7,17, 8,8, 8,8, 6,10, 7,9, 15,8, 8,8, 6,10, 7,9, 15,8, 8,8, 7,9, 15,16, 8};  // Protocol=UNKNOWN Data=0x9F5121E0 (32 bits)

 

Result as microseconds array - with trailing gap for IRremote versions 2.*

uint16_t rawData[42] = {21438, 1550,400, 400,450, 350,400, 400,400, 400,800, 350,800, 350,800, 350,850, 400,400, 400,400, 300,500, 350,450, 750,400, 400,400, 300,500, 350,450, 750,400, 400,400, 350,450, 750,800, 400};  // Protocol=UNKNOWN Data=0x9F5121E0 (32 bits)

 

Pronto Hex as string

char ProntoData[] = "0000 006D 0015 0000 003C 000F 000F 0011 000D 000F 000F 000F 000F 001F 000D 001F 000D 001F 000D 0021 000F 000F 000F 000F 000C 0013 000D 0011 001D 000F 000F 000F 000C 0013 000D 0011 001D 000F 000F 000F 000D 0011 001D 001F 000F 0806 "

 

rkit
Offline
Зарегистрирован: 23.11.2016

Koncert-master пишет:

спойокно принимают любые сигналы, но считать сам сигнал адекватно не получается каждый раз разные коды и всегда UNKNOWN

Когда в сигнала мусор это не "спокойно принимают".

Koncert-master
Offline
Зарегистрирован: 31.03.2020

Датчик в виде модуля с обвязкой, любые пульты, с любого расстояние код декодируют абсолютно спокойно, без всякого мусора. И про разные коды в данном варианте - с расстояния " в упор" , хотя остальные работают с 10 метров. Ключевой вопрос поэтому не в приемниках, а именно в сигнале с самих пистолетов, если код разбить на RAW, то его можно отправлять/принимать. НО тут как я понимаю в принципе у пистолетов есть вариабельность в таймингах, вопрос в каких и где

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Ну если Вы читать не умеете, то Вам в шопу. А если умеете, то опубликуйте Ваши претензии к ардуинке правильно

rkit
Offline
Зарегистрирован: 23.11.2016

Koncert-master пишет:

считать сам сигнал адекватно не получается

Koncert-master пишет:

если код разбить на RAW, то его можно отправлять/принимать.

Путаетесь в показаниях.

Koncert-master
Offline
Зарегистрирован: 31.03.2020

Я поэтому и скинул массивы с данными сигналов, т.е. они "верные", но этот протокол не читается как стандартный и тут два варианта этого сигнала, я пытаюсь понять чем они отличаются и как сделать, чтобы узнать все допуски у этого сигнала, чтобы сделать из него протокол или хотя бы понять логику их отправки и сделать подобие протокола. Я попросил глянуть профессиональным взглядом людей на эти два сигнала и предположить и ли достоверно сказать, чем они отличаются и какая тут закономерность. 

Koncert-master
Offline
Зарегистрирован: 31.03.2020

А если уж Вы такой умный так продемонстрируйте свой ум, либо не занимайте свое и мое время на бесполезные комментарии)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Koncert-master пишет:

А если уж Вы такой умный так продемонстрируйте свой ум, либо не занимайте свое и мое время на бесполезные комментарии)

Ваша квалификация недостаточна, чтобы суметь отличить полезный комментарий от бесполезного. Поэтому, если Вы чего-то не поняли, это совершенно не означает, что данный комментарий был бесполезным. Вам следовало бы затратить некоторые усилия и все-таки попытаться его понять. Иначе какой смысл помещать на форум вопросы, если Вы не желаете обдумывать полученные ответы?

Koncert-master
Offline
Зарегистрирован: 31.03.2020

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

Koncert-master
Offline
Зарегистрирован: 31.03.2020

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

rkit
Offline
Зарегистрирован: 23.11.2016

Koncert-master пишет:

Приемник абсолютно исправный и работает с любыми источниками корректно, кроме этих пистолетов.

Это значит, что приемник с пистолетами несовместим, дятел. Как тебе еще сказать?

Koncert-master
Offline
Зарегистрирован: 31.03.2020

Да, именно поэтому я и сказал, что приемник исправен и совместим)) ПРИЕМНИК ИЗ САМОГО ПИСТОЛЕТА, как он может быть несовместим с пистолетами, если он в них стоит?)))  он принимает корректно коды любых пультов и декодирует их в IT-Remote на базовой частоте 38. Это абсолютно такой же приемник, он работает с пультами и с обычными и между самими пистолетами.
 Если отправлять чисто те тайминги "карказябры", которые получается разбить на чистый RAW сигнал, он также на них реагирует. И даже если взять несколько вариантов этих карказябров, пистолет также на них реагиурует , как будто в него попадают с другого пистолета(т.е. на все 3 разных варианта таймингов, а их можент быть и 10 и 100 и 1000).
Вопрос именно в какой-то паузе RAW сигнала, стартовой, конечной, может диапазон какого-то тайминга от и до он шлет я хз, т.е. именно в том - что шлют сами пистолеты.

rkit
Offline
Зарегистрирован: 23.11.2016

Просто иди на хуй. Серьезно. В первом сообщении не работает с пистолетами, в следующем работает, потом опять не работает, потом опять работает. Иди-иди.