Lekce 7 – modul displeje z NOKIE 5110 II. díl

23.02.2013 15:33

     Zdravím opět všechny po krátké době. Dnes si v pokračování 7. lekce ukážeme zapojení senzoru intenzity osvětlení. Jená se o levná modul s několika součástkami, který světlo převádí do analogové hodnoty 0-5V což se náramně hodí pro naše Arduino. Obsahuje též digitální výstup, ketrý se spíná, když intezita osvětlení dosáhne požadované hodnoty nastavené odporovým trimrem na modulu. Toto však nevyužijeme a budeme si všímat pouze analogového výstupu.

Na obrázku níže vidíte, že modul má celkem 4 piny. Popis zapojení s Arduinem je jednoduchý:

  • Vcc – 5V
  • GND – GND
  • DO – A0
  • DI – nezapojeno

 

blogmedia-dscf2341-jpg.jpg

Zapojení bude stejné jako v předchozím případě. Pouze změna je v tom, že displej napájím napětím 5V z Arduina a podsvětlení je zapojeno na zem přes odpor 1,2kOhm, aby mi to moc nezářilo do očí.

blogmedia-dscf2365-jpg.jpg

Vzhledem k tomu, že jsem chtěl vyjadřovat analogovou hodnotu ze senzoru jinak než číselnou formou, upravil jsem trošku naší knihovnu a přidal 3 nové funkce, které vykreslují hodnotu ve sloupci. Ukázky mužete vidět na videu níže.

 

Nejprve uvedu zdrojový kód pro tento program:

V programu vidíte funkci HorizontalBar(int Hodnota, int radek);. Tak nám vykreslí takový “progres bar” v horizontální poloze. Hodnotu pro vykreslení zadávejte v rozmezí 0 až 100. Proto je ve funkci převod analogové hodnoty do procentuelního vyjádření a vzhledem k tomu, že analogový výstup senzoru dává tím větší napětí čím je víc tma, tak si hodnotu obrátíme. Viz přepočet ve funkci (1023 – sensorValue)/(1023/100), kdyby senzor dával hodnoty opačně, tzn. čím více světla tím větší napětí přepočet by byl sensorValue/(1023/100). Pozn. výpočet jednoho procenta hodnoty není 1024/100, ale 1023/100. Vysvětlení – maximální hodnota dosažená u funkce analogRead(pin) je 1023. Rozlišení je 1024 hodnot avšak musí být započítána i nula, protože je to také hodnota. Tudíž 1% = 1023/100. Dálší paramer funkce je int radek. Můžeme tedy zapsat číslo od 0 (pro první řádek) až 5 (pro 6. řádek), je to tedy index řádku. Funkce nezobrazuje samotné popisky nebo hodnoty – v našem případě se nápis grafu (čísla 0,50 a 100) dopsal do programu zvlášť a je napsrosto volitelný. Míasto toho mužeme použít teyt Světlo a Tma atd.

Popis nových funkcí:

blogmedia-bar01-jpg.jpg HorizontalBar(int Hodnota, int radek);

Hodnota: 0 – 100

radek: 0 – 5

příklad:

HorizontalBar(47,2);

– zobrazí graf s hodnotou 47 na 3. řádku.

 

blogmedia-ba02-jpg.jpg  

HorizontalBar2(int Hodnota, int radek);

Hodnota: 0 – 100

radek: 0 – 5

příklad:

HorizontalBar2(75,5);

– zobrazí graf s hodnotou 75 na 4. řádku.

blogmedia-bar03-jpg.jpg VerticalBar(int Hodnota, int left);

Hodnota: 0 – 100

left: 0 – 83

příklad:

VerticalBar(80,41);

– zobrazí graf s hodnotou 80 na 42. bodu zleva

 

  Novou knihovnu Nokia5110 v1.2, zdrojový kód a obrázky z lekce si můžete stáhnout zde.  

Napsat komentář

Translate »