NEC IR komunikace se jeví jako UNKNOW

Odpovědět
KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

NEC IR komunikace se jeví jako UNKNOW

Příspěvek od KamilV » 03 dub 2018, 16:06

Ahoj,
řeším situaci, kdy na vzdálenost kolem 8 m potřebuju přenést integer pomocí IR.

Používám na to dálkový ovladač s možností "naučit se" libovolný povel. Takže si mohu zvolit libovolný protokol, vybral jsem si NEC, ale nijak na tom netrvám.

Mám jedno arduino uno (klon), s IR diodou TSAL6100 připojenou přímo na pin arduina, bez rezistoru. Z ní ovladač "učím" příkazy, např. pro požadovaný int=106:

Kód: Vybrat vše

#include <IRremote.h>
IRsend irsend;
[ ... ]
irsend.sendNEC(106, 32);
Ovladač samotný je tovární výrobek a funguje na velkou vzdálenost. Po každém "naučení se" povelu signalizuje, že tato operace proběhla korektně.

Pak mám druhé arduino uno (klon), s receiverem VS1838B připojeným přímo na pin arduina, bez rezistoru. Dle popisu by měl fungovat až na 18 m. Zde bych chtěl přečíst integer odeslaný ovladačem.
Čtu jej takto:

Kód: Vybrat vše

#include <IRremote.h>
IRrecv irrecv(PIN_LED_IR);
decode_results results;

void setup() {
	irrecv.enableIRIn();
}

void loop() {
	if (irrecv.decode(&results)) {
		Serial.println(results.value);
		Serial.println(results.decode_type);
		irrecv.resume();
	}
	delay(100);
}
Pokud jsem s ovladačem ve vzdálenosti cca do 1 m, funguje příklad výborně, nejprve se dumpne int 106, potom se dumpne decode_type NEC.

Problém nastane, pokud se s ovladačem vzdálím, s rostoucí vzdáleností se častěji a častěji začne objevovat decode_type UNKNOW a integer různé, patrně náhodné hodnoty (např. 304861). Kolem vzdálenosti 3 m už jsou všechny přijaté zprávy typu UNKNOW.

Kde hledat chybu? Předpokládám, že je vše na 38 kHz, nevím ale, zda by se případná nesourodost mohla projevovat tak, že by to na malou vzdálenost fungovalo a na větší už ne.

Díky

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: NEC IR komunikace se jeví jako UNKNOW

Příspěvek od KamilV » 09 dub 2018, 09:37

Pokud by někdo řešil něco podobného, tak náhodné výsledky způsobuje přijímač VS1838B. Sice je udáván dosah cca 17 m, ale použitelné je to na pár metrů.

Našel jsem pak tento článek: https://www.analysir.com/blog/2014/12/0 ... -revealed/

Na jeho základě jsem VS1838B vyměnil za TSOP34438 a komunikace probíhá na cca 8 m, což je pro mne dostačující...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů