Čidlo gest (APDS9960) společně s IR dálkovým ovladačem

Odpovědět
AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Čidlo gest (APDS9960) společně s IR dálkovým ovladačem

Příspěvek od AstroMiK » 19 dub 2019, 19:04

Ahoj.

Nezkoušel jste někdo ve svých projektech použít čidlo pro běžné IR dálkové ovládání (pro televizní ovladač) a zároveň s tím ještě čidlo gest APDS9960?

Mně se to nějak nedaří.
Samotné infra dálkové ovládání (DO) sice funguje celkem spolehlivě, ale když k tomu přidám to čidlo gest, tak gesta rozezná (pohyb vlevo / vpravo / nahoru /dolu .....), ale kódy z DO se přestanou vyhodnocovat.


V příloze jsou dva ukázkové programy.
Jeden je jen pro DO - ten funguje.
Druhý tam má doplněné čidlo gest - tam fungují už jen gesta.

Mám to postavené na STM32F103 (BluePill).
Celkové napájení je 5V (z USB), ale čidlo gest mám napájené z 3,3V stabilizátoru z desky. Piny SDA a SCL (PB7, PB6) jdou přes převodník úrovní
(na straně u čidla gest je 3,3V, u BluePill je 5V).
Čidlo DO jsem zkoušel napájet z 3,3V i z 5V (na desce je připojené na pin PB9, který je tolerantní k 5V)

Původně jsem si myslel, že když čidlo gest používá taky infra přisvícení, tak že to nějak ovlivňuje čidlo DO.
To se sice ukázalo jako správná úvaha (když jsem kouknul osciloskopem na signál z čidla DO, tak tam byl vidět obdélníkový signál 244Hz 86%),
ale i když jsem čidlo DO opticky odstínil (obdélníky zmizely), tak se stav nezlepšil. Pořád to vyhodnocuje správně gesta, ale ignoruje DO.


Jen infra dálkové ovládání:
jen_do.ino
(2.33 KiB) Staženo 182 x


Infra DO + čidlo gest:
do_gest.ino
(3.03 KiB) Staženo 184 x

RoboP
Příspěvky: 1
Registrován: 22 lis 2019, 15:43
Reputation: 0

Re: Čidlo gest (APDS9960) společně s IR dálkovým ovladačem

Příspěvek od RoboP » 22 lis 2019, 16:07

Ahoj
napadlo ma iba že ak sa po porvom preruseni nezmeni InfraKod z 0 na x už sa ti nespusti interrupt na sledovanie DO
skúsil by som :
... spustit interrupt na konci INTERRUPT_infra a nie po prvom výpise

btw. načo.. ten prevodnik úrovni ?

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Čidlo gest (APDS9960) společně s IR dálkovým ovladačem

Příspěvek od AstroMiK » 22 lis 2019, 17:12

Díky za reakci na toto staré téma.

Teď bohužel nemám čidlo gest k dispozici, ale objednával jsem ho asi před 14 dny, tak až dorazí, tak to vyzkouším.


Možná máš pravdu, že mohlo dojít k tomu, že při přerušení proměnná "InfraKod" zůstala rovna 0 .

Už si přesně nepamatuji proč, ale záměrně jsem se v programu snažil to přerušení znovu povolit až po provedení příslušné akce (v příkladu tedy až po výpisu).
Takže by v mém případě možná pomohlo na konec INTERRUPT_infra doplnit něco jako:

if (InfraKod == 0) InfraKod = 999;

A ve vyhodnocovací části pak přijatý kód 999 ignorovat jako nějakou chybu příjmu dálkového ovladače (neznámé tlačítko) a interrupt znova povolit.



Převodník úrovní jsem použil kvůli tomu, že ve skutečnosti mám na té I2C sběrnici připojenou ještě spoustu dalších periférií
(RAM, EEPROM, RTC ...)
Všechny tyhle periférie jsou napájené z 5V. BluePill zvládá 5V na I2C pinech bez problému.

Jenže čidlo gest je napájené jen 3,3V a 5V nezvládá.
Kdyby se mu na pinu SDA objevilo 5V z komunikace s těmi paměťmi, mohlo by mu to vadit.
(Podle kat. listu je maximální povolené napětí na SDA i SCL jen 3,8V.)
Proto jsem tam raději zařadil ten převodník úrovní.

Odpovědět

Kdo je online

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