. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Návrh detektoru přiblížení s MAX44000
18. července 2014 - 8:34 | Pandatron | Návrh detektoru přiblížení s MAX44000 | Komentářů: 2  

Návrh detektoru přiblížení s MAX44000

Příklad a zhodnocení jednotlivých úskalí návrhu optického detektoru přiblížení, určeného pro použití nejen v mobilních aplikacích.

Detektory přiblížení, využívající k detekci odrazu světelného paprsku, se již dávno nepoužívají pouze v průmyslových zařízeních. Velkého rozmachu zaznamenávají právě nyní, s rozšířením dotykových obrazovek do přenosných zařízení a především smartphonů. Na jednu stranu je jejich nespornou výhodou výrazně lepší a jednodušší ovládání zařízení, což v řadě případů může tvořit i zcela nové výzvy. Ovšem zároveň s tím vzniká také požadavek na řadu další, rozšiřujících funkcí, jako je například detekce stavu, kdy uživatel telefonuje a přístroj má u ucha. Dotyk s uchem je samozřejmě v tuto chvíli nežádoucí, neboť může způsobit nechtěnou operaci stisku.

Nejrozšířenějším způsobem, jakým lze tento problém řešit a zároveň do zařízení přidal další možnosti, je integrace detektoru přiblížení (někdy ne zrovna vhodně označovaném jako „fotobuňka“). Senzor umožňuje displej jednoduše vypnout ve chvíli, kdy je v jeho blízkosti detekována překážka a uživatel telefonuje.

Jedním z obvodů, které jsou přímo určené pro zajištění této funkce, je i obvod MAX44000 od společnosti Maxim. Ve srovnání s diskrétním provedení se jedná se o poměrně jednoduché řešení, disponující navíc digitálním výstupem. Následující článek vychází z technické dokumentace tohoto obvodu a přibližuje návrh detektoru přiblížení právě pro zařízení s dotykovým displejem.


Obr. 1: Princip optického detektoru přiblížení
viz. článek: Snímání dotyku pomocí LED

Obvod MAX44000
Obvody MAX44000 od společnosti Maxim představují světelný a infračervený, bezkontaktní detektor přiblížení. Jejich předností je kombinace širokého dynamického rozsahu okolního světla s integrovaným infračerveným čidlem. V jeho případě je dostupný rozsah měření od 0,03 až do 65.535 lux s průměrnou spotřebou obvodu pouhých 11 uA.


Obr. 2: Vnitřní blokové schéma MAX44000

Všechny hodnoty i konfigurace obvodu je dostupná prostřednictvím standardního sériového rozhraní I2C a k dispozici je rovněž programovatelný výstup přerušení, umožňující snadnou detekci překážky bez zbytečného zatěžování řídicího procesoru.

Základní technické vlastnosti:

  • Programovatelný zisk zeleného a IR kanálu
  • Integrovaný pulzní budič LED s rozsahem proudu od 10 do 110 mA
  • Nízkopříkonový provoz:
    Klidový stav: 5 uA
    Aktivní stav: 70 uA (včetně 100 mA pulzního proudu LED)
  • Napájecí napětí: 1,7 až 3,6 V
  • Rozsah provozních teplot od -40 do +105 °C
  • Dostupný v kompaktním provedení UTDFN s rozměry 2 x 2 x 0,6 mm

Výhodou použití obvodu v zapojení detektoru přiblížení je například jednoduché nastavení výstupního proudu buzením LED z obvodu a nikoliv externě, diskrétním rezistorem s pevnou hodnotou. Takto lze v rozumných mezích prakticky libovolně nastavit přesně takový proud, jaký je v dané situaci potřeba, stejně jako efektivně optimalizovat výkon LED a celkovou spotřebu energie.


Obr. 3: Základní zapojení obvodu MAX44000

Jelikož rodina obvodů MAX44000 využívá standardního sériového rozhraní typu I2C, lze je velice snadno integrovat do většiny zařízení, využívajících toto rozhraní ke komunikace s jinými obvody. Kromě toho, jak již bylo uvedeno dříve, obvody obsahují také výstup signálu přerušení. Kombinací těchto dvou prvků je zaručena kompatibilita prakticky s většinou přenosných zařízení a zároveň je minimalizováno množství nutných prostředků.

Kromě toho je k dispozici i řada rozšiřujících funkcí. Například právě obvody MAX44000 umožňují nejen detekci přiblížení, ale poskytují také informaci o intenzitě okolního světla. Takové řešení eliminuje nutnost použití více senzorů.

Aplikace detektoru přiblížení
Zvolené obvody MAX44000 jsou dostupné ve skutečně kompaktním provedení UDFN pouzdra s rozměry pouhých 2 x 2 x 0,6 mm, které šetří již tak nabité místo na desce mobilního zařízení. Navíc, jak již bylo uvedeno, obvody umožňují pohodlné řízení výstupní proudu LED a to v rozmezí od 0 do 110 mA, což šetří potřebu použití externích obvodů.


Obr. 4: Zapojení obvodu MAX44000 s blokováním

Tomu by však mělo odpovídat také reálné zapojení obvodu, především pak při použití vyšších proudů. Jelikož LED je z důvodu úspory energie buzena pulsně, může špičkový proud, šířený po obvodu napájení, produkovat nežádoucí rušení. V zásadě existují dva způsoby, jakým se lze toho zbavit. První možností je použití blokovacího kondenzátoru přímo na piny integrovaného budiče a druhou možností je kompletní oddělení napájecího zdroje MAX44000 od vysílací diody. První řešení je samozřejmě levnější, ale nevýhodou je nutnost umístění kondenzátoru v těsné blízkosti daného obvodu a diody.

Stejně pečlivě je nutné zvážit rovněž také vliv krycího skla na samotný detektor. Většina dnešních smartphonů, ne-li tedy všechny, mají na přední straně umístěné krycí sklo, které je v některých případech z desénových důvodů černé. Toto sklo má na detektor vliv jak v podobě oslabení intenzity dopadajícího světla z okolního prostředí, tak i v podobě možnosti vzniku tzv. přeslechů od světla, vyzařovaného z displeje i samotné LED.


Obr. 5: Ukázka odrazů od krycího skla

Tento vliv lze řešit například použitím optické přepážky mezi vysílačem a přijímače (viz. předchozí obrázek), která výrazně omezí množství dopadajícího světla, nebo umístěním vysílače a přijímače co nejblíže krycímu sklu telefonu.

Definice prahu rozhodování
Dalším velkým problémem je také správné určení rozhodovací hranice, při jaké vzdálenosti telefonu od předmětu má dojít ke zhasnutí displeje. Zároveň je také nutné použít určitou úroveň hystereze i jistou dávku inteligence, aby se zabránilo vzniku falešných „poplachů“. Dobrým příkladem mohou být například lidé se světlými vlasy, kteří navíc telefon nepřikládají až k uchu, takže se zpět odráží mnohem více světla.

Obvody MAX44000 disponují velmi dobrou citlivostí (2,7 nW/cm2 / LSB) pro standardní, 850 nm IR vysílač. To znamená, že obvod je možné použít jak v kombinaci s černým sklem, tak i v případě uživatelů s tmavými vlasy. Kromě toho je však senzor schopný provozu i při slunečním záření až d intenzity 100.000 lux, především při provozu ve venkovním prostředí.

Aplikovaná hystereze musí zároveň počítat s tím, že uživatel nemusí telefon přiložit až k uchu, ale může ho držet v takové vzdálenosti, která je blízko rozhodovací úrovně. V tom případě není možné neustále zapínat a vypínat displej, ale je třeba určit softwarově takovou hodnotu pro vypnutí a následné zapnutí displeje, aby se tomu předešlo. Rovněž je vhodné použít i určitou minimální dobu, po kterou je displej zhasnut.

Následující ukázkový kód přibližuje možnost vytvoření jednoduché hystereze. Je však nutné upozornit, že při čtení a zápisu po sběrnici I2C nedochází k automatické inkrementaci registrových adres (jako tomu bývá například u polovodičových pamětí). Více informací k vlastní komunikaci je dostupných například v článku: The Importance of Being Earnest (About Reading from an ADC on the I2C Interface).

 #define MAX44000_ADDR	0x94
 #define INT_STATUS_REG	0x00
 #define OFF_THRESHOLD	4600
 #define OFF_DELAY		1
 #define ON_THRESHOLD	4000
 #define ON_DELAY		3

 uint8 screenStatus;	// 0 means off, 1 means on

/*
  i2cWriteBytes()

  Arguments:
	uint8 address - device address
	uint8 start_reg - register where the first byte is written
	uint8 *data - data to write
	uint8 nbytes - number of bytes to write

  Consecutively writes several bytes to some i2c device starting at some
  specified address -- implemented elsewhere
*/
 void i2cWriteBytes(uint8 address,uint8 start_reg,uint8 *data,uint8 nbytes);

/*
  MAX44000InterruptHandler()

Následující kód ukazuje obsluhu obvodu MAX44000 v přerušení.

 */
 void MAX44000InterruptHandler() {

	uint8 i2cData[3];

	i2cRead1Byte(MAX44000_ADDR,INT_STATUS_REG,&i2cData);
	if (i2cData&0x01 != 0)
		return;	// check to make sure interrupt really fired
				// this simultaneously clears the interrupt flag

	if (screenStatus) {
		i2cData[0] = ON_DELAY;
		i2cData[1] = ON_THRESHOLD >> 8 & 0xBF; // set ABOVE = 0
		i2cData[2] = ON_THRESHOLD & 0xFF;
	} else {
		i2cData[0] = OFF_DELAY;
		i2cData[1] = OFF_THRESHOLD >> 8 | 0x40; // set ABOVE = 1
		i2cData[2] = OFF_THRESHOLD & 0xFF;
	} // set the new threshold depending on what the screen status was

	// set the delay and threshold after each interrupt
	i2cWriteBytes(MAX44000_ADDR,0x0A,i2cData,3);

	return;
 } // MAX44000InterruptHandler

Více informací k obvodu MAX44000 je možné nalézt například na stránce Ambient and Infrared Proximity Sensor a Designing a Proximity Sensor into a Handheld Touch-Screen Application.

Odkazy & Download:
Domovská stránka výrobce obvodů
Přehled distributorů

The Importance of Being Earnest (About Reading from an ADC on the I2C Interface)
Designing a Proximity Sensor into a Handheld Touch-Screen Application
Ambient and Infrared Proximity Sensor







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (2):

Zobrazit starší 30 dnů (2)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
Nano SocketLAN
Miniaturní modul Nano SocketLAN určený ke snadnému připojení jakékoli aplikace do sítě 10/100BaseT Ethernet LAN.
Skladem od 887 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007