duinozone.cz - Arduino a Raspberry fórum

Autor Téma: Grafický displej LCD na Arduinu  (Přečteno 13936 krát)

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #15 kdy: Srpen 02, 2015, 15:22:05 odpoledne »
zkus se podívat na ten LD_5110 basic
http://www.rinkydinkelectronics.com/library.php?id=44
 to je slušný ovladač a nebo se podívej sem (spíš od 1/2 dolu):
http://nicuflorica.blogspot.cz/2013/06/afisajul-folosit-la-telefoanele-nokia_17.html

Offline astromik

  • Pokročilý bastlíř
  • ***
  • Příspěvků: 115
Re:Grafický displej LCD na Arduinu
« Odpověď #16 kdy: Srpen 02, 2015, 15:49:43 odpoledne »
Myslím, že na 3 velké číselné údaje a k tomu ještě nějaké popisy je NOKIA 5110 dost malý displej.


Zkusím naznačit, jak jsem to dělal já, třeba ti to pomůže.

Použil jsem sice jako základ tuhle knihovnu:
  https://docs.google.com/file/d/0B3zDjPrpMsPaWFZ5UXFBallzRU0/edit?usp=sharing

 - ale dost jsem si jí přizpůsobil.

V podstatě jde o to, že je třeba nejdřív nadefinovat font.
Je dobré, když je výška fontu v bodech celým násobkem 8. Pokud plánuješ, že bude několik velkých čísel nad sebou, tak při definici nezapomeň na prázdné řádky na spodní (nebo horní) straně fontu.

Příklad mojí definice znaků vypadá takhle:

Já jsem měl jistotu, že nad i pod velkými čísly bude prázdný prostor, tak jsem mohl nadefinovat znaky přes všech 16 mikrořádek.

Definici jsem uložil do EEPROM jako sled bajtů. Pro uvedený znak "6" jsem do EEPROM uložil toto (v hexadecimálu):
7E, BD, DB, C7, C3, 81, 00, 7F, BE, DD, E1, DD, BE, 7F

Jak je vidět na obrázku, využil jsem toho, že prostřední část fontu (bajty C7 a E1) se VŽDYCKY 6x opakuje, takže jsem ušetřil místo v EEPROM a ten opakující-se bajt jsem tam dal jen 1x. Opakování jsem pak řešil dále v programu.


Podobným způsobem jsem nadefinoval všechny ostatní čísla.


Když jsem pak potřeboval nějaký znak zobrazit na displeji, postupoval jsem takto:

1) Určil jsem, na které adrese v EEPROM začíná definice požadovaného znaku. ( číslo * 14 + počáteční adresa)

2) Pomocí knihovní funkce "LCD.GotoXY(x,y)" jsem nastavil levý horní roh displeje, kam se má znak tisknout (x je sloupec 0 až 72; y je řádka 0 až 4).

3) Pomocí knihovní funkce "LCD.LcdWrite(HIGH, data)" jsem poslal do displeje ve smyčce 4 bajty (data), které jsem načetl z EEPROM. Adresu EEPROM jsem po každém odeslání na displej zvětšil.

4) Po 4 bajtech jsem "expandoval" tu prostřední část fontu tak, že jsem ještě 5x poslal do displeje poslední načtený kód z EEPROM, ale v tomhle případě jsem adresu EEPROM nezvětšoval.

5) Stejně jako v bodě 3) jsem odeslal další 4 bajty z EEPROM do displeje (tentokrát už zase s přičítáním adresy). Tím je hotové zobrazení horní poloviny znaku.

6) Pak následovalo přepnutí na nižší řádku pomocí funkce "LCD.GotoXY(x,y)" (X zůstává stejné, jako v bodě 2) ; Y se zvětší o 1)

7) Přesně jako v bodech 3), 4), a 5) se vykreslí spodní část znaku.



 ***  HOTOVO ***

Na displeji by měla svítit velká "6", která je vysoká přes dvě řádky.

« Poslední změna: Srpen 02, 2015, 15:52:46 odpoledne od astromik »

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #17 kdy: Srpen 02, 2015, 21:51:34 odpoledne »
podobně se vlastně řeší velký font pro alfanumerické LCD:
http://forum.arduino.cc/index.php?topic=44427.0

Offline Snork86

  • Bastlíř amatér
  • **
  • Příspěvků: 56
Re:Grafický displej LCD na Arduinu
« Odpověď #18 kdy: Duben 07, 2016, 15:15:30 odpoledne »
Prosím o radu, potřeboval bych nějaký grafický displej připojený přes co nejmenší počet drátů a velký maximálně 8*6cm. Nechci nějaký shield pro Uno nebo Mega, mám arduino nano v bedně a ve víku bedny potřebuju nějaký displej. Proto co nejméně drátů mezi víkem a bednou, už takhle jich tam mám až moc :-) Displej nemusí být dotykový a maximální cena 500Kč.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #19 kdy: Duben 07, 2016, 18:35:54 odpoledne »
vyrazně menší al e po 5-ti drátech je LCD dispaly z nokie 5110.
http://arduino8.webnode.cz/news/lekce-7-modul-displeje-z-nokie-5110/
Ten se dá koupit jako modul ...

Offline Snork86

  • Bastlíř amatér
  • **
  • Příspěvků: 56
Re:Grafický displej LCD na Arduinu
« Odpověď #20 kdy: Duben 08, 2016, 10:19:31 dopoledne »
Displej z 5110 nemám rád, nějak se s ním nekamarádím, nikdy mi nešel tak, jak bych chtěl. A OLED http://www.ebay.com/itm/0-96-I2C-IIC-SPI-Serial-128X64-White-OLED-LCD-LED-Display-Module-for-Arduino-/201428440360?hash=item2ee6121528:g:MOYAAOSwv0tVeD0N se mi líbí mnohem víc. Další plus je připojení přes i2c. Mám ho rád, ale na tenhle můj projekt je moc malý. Klasika 16x2 znaky je super, ale moc široký a má málo řádků.
Takže hledám něco lepšího, koukal jsem se na displeje přes SPI, ale tomu nějak nerozumím :-(

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #21 kdy: Duben 08, 2016, 14:50:43 odpoledne »
lcd pres SPI je moc obecny pojem. vetsinou se jedna o klasicky 16x2 s posuvnym registrem ve funkci prevodniku seriove na paralelni komunikaci. modul nokie je druha varianta spi lcd. i2c graficke lcd nemam rad. slozita a dlouha komunikace me vzdy vadila. navic pro nejakou wxtra grafiku neni moc mista v pameti arduina. kdyz jsem zkousel vytvorit prvni verze dinduina tak jsem tam chtel pouzit lcd 8x2. nejen kvuli velikosti ale taky kvuli uspory pameti procesoru.

Offline tribal.cz

  • Bastlíř amatér
  • **
  • Příspěvků: 71
Re:Grafický displej LCD na Arduinu
« Odpověď #22 kdy: Duben 14, 2016, 07:58:42 dopoledne »
koukni na arduino8.cz někde na začátku tam je tutoriál na displej 5110,s knihovnou která pokud se nepletu toto umí

Offline Snork86

  • Bastlíř amatér
  • **
  • Příspěvků: 56
Re:Grafický displej LCD na Arduinu
« Odpověď #23 kdy: Duben 14, 2016, 08:16:26 dopoledne »
Díky, ale displej z 5110 je moc malý, potřebuju zobrazit poměrně hodně informací a navíc v docela extrémních podmínkách, tak bych potřeboval něco asi tak 8x5cm.

I když možná se na vše vykašlu a hodím tam 20x4 znakový přes i2c :-D

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #24 kdy: Duben 14, 2016, 21:06:27 odpoledne »
Jednu dobu jsem si hrál s těmimo moduly a používal jsem tuto knihovnu:
http://www.rinkydinkelectronics.com/library.php?id=47
Ta má  4 velikosti fontu : 2x základní znaky včetně číslovek a pak ještě 2x větší pouze číslovky.
Můžeš samozřejmně použít klidně všechny 4 velikosti na 1 obrazovku.

Offline Snork86

  • Bastlíř amatér
  • **
  • Příspěvků: 56
Re:Grafický displej LCD na Arduinu
« Odpověď #25 kdy: Duben 15, 2016, 09:02:18 dopoledne »
posjirka nemáš zkušenosti s něčím větším? Displej z 5110 je prostě moc malý a v místech kam to potřebuji budou náročné podmínky, chci velký a přehledný displej alespoň 2x větší, než ten z 5110.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #26 kdy: Duben 15, 2016, 09:31:22 dopoledne »
no já mám doma toto:
http://www.ebay.com/itm/2-4-TFT-LCD-Shield-SD-Socket-Touch-Panel-Module-for-Arduino-UNO-R3-New-FE-/331471673005?hash=item4d2d4056ad
bohužel používá 8 DI + 4 AI vstupy a když chceš použít i SD kartu tak  ti zustane pouze 2x AI + 2xDI/UART = USB kom.

Pro Arduino MEGA asi dobrý, ale pro UNO je to moc veliký obr.
Navíc tam mám problém, že asi nedoléhá úplně LCD na PCB, takže tam mám 2 linky, které problikávají.

Nejlepší je pak asi řešení přes WEB stránku, nebo použít Bluetooth a komunikovat s mobilem/tabletem.

V této oblasti jsem ovšem amatérem, a vím pouze o tom co používám. Nemám rozhled přes celé spektrum možností. Třeba ti nekdo napíše lepší řešení ...

Offline astromik

  • Pokročilý bastlíř
  • ***
  • Příspěvků: 115
Re:Grafický displej LCD na Arduinu
« Odpověď #27 kdy: Duben 15, 2016, 20:08:56 odpoledne »
Já mám zkušenost s tímhle displejem:
http://www.astromik.org/raspi/42.htm

O kousek ale nevyhovuje ta požadovaná velikost.
Rozměry celé desky jsou 9 x 7 cm, samotný displej má 8 x 5 cm.

Zkoušel jsem to na Raspberry Pi, ale určitě budou někde existovat i hotové knihovny pro Arduino.

Displej se ovládá přes 3 dráty + 2 dráty napájení.
Rozlišení je 128 x 64 bodů v grafickém režimu nebo 16 x 4 znaky v textovém režimu.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:Grafický displej LCD na Arduinu
« Odpověď #28 kdy: Duben 15, 2016, 21:05:30 odpoledne »
to mě zajímá :)
na Arduinu je pouze zaopjení paralelní komunikace ale našel jsem k němu knihovnu pro seriovou komunikaci
https://code.google.com/archive/p/u8glib/downloads
i tutorial:
http://www.machiavellico.com/?p=372
http://nicuflorica.blogspot.cz/2014/06/afisajul-grafic-monocrom-lcd12864-cu.html
asi si na ebayi něco objednám :)

jinak pro paralelní kom. je vše tu:
http://playground.arduino.cc/Code/LCD12864
« Poslední změna: Duben 15, 2016, 21:08:14 odpoledne od posjirka »

Offline Snork86

  • Bastlíř amatér
  • **
  • Příspěvků: 56
Re:Grafický displej LCD na Arduinu
« Odpověď #29 kdy: Duben 15, 2016, 22:46:01 odpoledne »
Ale to vypadá moc zajímavě ;-)

Ještě takový blbý začátečnický dotaz, pokud povedu datové dráty k displeji podél (25cm) napájení 15W LED řízené PWM signálem, displeji se to asi nebude moc líbit, že ne?