Lekce 28 - Arduino a TFT dotykový displej TFT_320QVT - část I.
03.03.2014 15:59Translate to English
Dnes si k Arduinu připojíme dotykový TFT displej. Já jsem pro tento účel vybral cenově přijatelný modul s displejem s obchodním označením TFT_320QVT. Na modulu se nachází z druhé strany slot na SD kartu, ale tomu věnovat dnes nebudeme. Někdo se může zaleknout 40 pinového konektoru, ketrý na modulu je, ale zapojení není bůhvíjak složité. 5 pinů z toho je nezapojených a označených NC (not connected), 4 piny pro SD slot a zbytek tedy bude pro TFT displej (když nebudete chtít využít dotykové funkce, ale pouze displej pro zobrazení tak dalších 5 pinů odpadne). Nicméně pro zapojení vybereme Arduino MEGA, abychom měli dostatek volných pinů i pro nějaké čidlo apod.
Já jsem nejprve pro zapojení přemýšlel o upravě kabelu pro IDE připojení starších HDD nebo optických mechanik. Tak jsem našel nejdříve problém v tom, že tento kabel má (myslím, že všechny) zaslepený jeden pin na konektoru, a to ten, který je zrovna připojen jako datový k displeji. Takže i po provrtání dírky v konektoru jsem v mém případě zjistil, že není vůbec zapojen. Další problém také v tom, že můj typ kabelu má poněkud více žil. Nepočítal jsem to, ale pouze odhadem jich bude 60-70, co by představovalo další problém v hledáním jednotlivých žil a zkoumání, ke kterému pinu jsou připojeny. Tyto pokusy jsem tedy zanechal a toto, jak jsem si myslel, elegantní řešení jsem zavrhnul. Použije nějaké standardní propojovací vodiče, které doma nalezneme.
Pro práci s displejem jsem si na internetu nalezl knihovnu UTFT,k která by měla s displejem spolupracovat. Pro stažení knihovny, klikněte zde a přidejte ji do prostředí Arduino IDE tak jak jsme zvyklí. Po rozbalení archivu, nalezneme soubor UTFT.pdf, který obsahuje kompletní manuál a jsou tam popsané veškeré funkce. My musíme vzít v potaz, že knihovna ač tedy podporuje tento displej, zná ho zřejmě jenom na nějakém shieldu, z tohoto důvodu budeme muset při zapojení dodržovat určitá pravidla. Já si v manuálu našel tabulku jak displej připojit:
Pin na modulu TFT | Pin na Arduinu MEGA |
DB0 | D37 |
DB1 | D36 |
DB2 | D35 |
DB3 | D34 |
DB4 | D33 |
DB5 | D32 |
DB6 | D31 |
DB7 | D30 |
DB8 | D22 |
DB9 | D23 |
DB10 | D24 |
DB11 | D25 |
DB12 | D26 |
DB13 | D27 |
DB14 | D28 |
DB15 | D29 |
RS | je to jedno, můžeme v programu nastavit (D38) |
WR | je to jedno, můžeme v programu nastavit (D39) |
RD | +5V |
CS | je to jedno, můžeme v programu nastavit (D40) |
REST | je to jedno, můžeme v programu nastavit (D41) |
Seznam podporovaných displejů knihovnou UTFT je ke stažení v pdf zde.
Jako první jsem si zapojil DB0 až DB15. Poté RS, WR, RD, CS a REST. Nakonec napájení 5V a GND, nesmíme zapomenout také na podsvětlení displeje u pinu LED_A na +3,3V (s 5V by hrozilo poškození podsvícení)!!. Zapojeno by jsme měli mí bez problému. K samotné funkci displeje je tedy zapotřebí 23 propojovacích vodičů male - female.
Teď k samotnému programu. Já jsem program co nejvíce zjednodušil a trošku popsal co která funkce dělá. Více vysvětlení najdete v samotném manuálu. Program je zde:
Komu se po nahrání programu zobrazilo toto, tak Vám gratuluji :-). Za zmínku ještě stojí, že při inicializaci displeje je ve funkci myGLCD(ITDB32S,38,39,40,41); jako první parametr uveden ITDB32S - to je je náš typ displeje, pokud podle návodu vyberete jiný, tak funkčnost nezaručuji.
Ještě si tedy vyzkoušíme, aby se nám na displeji zobrazovalo něco užitečného. K Arduinu jsem tedy připojil na sběrnici I2C (U Arduina MEGA pin 20 a 21) hodinový modul (lekce 11) a také levné čidlo pro teplotu a vlhkost DHT11 na digitální pin 2 (viz lekce 6 s čidlem). Program si trošku upravíme. Graficky to není zdařilé, ale k posouzení funkčnosti to bude stačit. Tak tedy zde je zdrojový kód:
Zde výsledek:
Příště si připojíme a zpovozníme funkci dotykové obrazovky. :-)
———
ZpětDiskusní téma: Lekce 28 - Arduino a TFT dotykový displej - část I.
Datum | 23.05.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Problém s TFT_320QVT |
Myslím, že by se mělo jednat o přehřívání displeje. Když je studený nemělo by se to objevovat. Já už ani nevím jak jsem to vyřešil, ale zkus snížit napájecí napětí podsvícení.
———
Datum | 31.05.2014 |
---|---|
Vložil | Harmison |
Titulek | Re: Problém s TFT_320QVT |
Zdravím všechny příznivce Arduina a autorovi děkuji za tvorbu a údržbu těchto stránek ;-)
A nyní již k samotnému dotazu.
TFT_320QVT má I/O piny na 3,3V a neměly by být připojeny na 5V - mohlo by tak dojít i k poškozen displeje. U displejů umístěných na "schieldech" jsou napěťové úrovně již přizpůsobeny.
Můžete zkusit připojit jednotlivé piny displeje k Arduinu přes rezistory 10K (případně i vyšší) a pin RD pak přímo na 3,3V místo na 5V. Toto by mělo nežádoucí artefakty alespoň do značné míry omezit.
Jako typ displeje nastavte SSD1289.
———
Datum | 10.06.2014 |
---|---|
Vložil | Filip Kubín |
Titulek | Re: Re: Problém s TFT_320QVT |
Můj problém vyřešil nakonec tento modul zakoupený na ebay. Možná byl jen špatný kontakt na vodičích, sám nevím.
https://www.elecfreaks.com/store/lcd-tft01-arduino-mega-shield-v20-shd10-p-214.html
———
Datum | 15.03.2014 |
---|---|
Vložil | setros |
Titulek | Driver? |
Jaký to má driver pro řízení displeje? Nikde jsem to u těchto typů nesehnal.
———
Datum | 15.03.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Driver? |
Mylím, že to je ILI9325, ale nejsem si na 100% jistý.
———
Datum | 15.03.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Driver? |
Protože knihovní UTFT podporuje celou řadu displejů, přikládám seznam v pdf a je ke stažení zde na https://files.arduino8.webnode.cz/200000576-970549ab34/UTFT_Supported_display_modules_-_controllers.pdf
———
Datum | 15.03.2014 |
---|---|
Vložil | setros |
Titulek | Re: Driver? |
Tak jsem zapátral a měl by to být SSD1289. Driver ILI9325 se používá do 2,8" displeje (většinou).
———
Datum | 06.03.2014 |
---|---|
Vložil | standa |
Titulek | Možnost sehnání |
Zdárek chtěl bych se zeptat kde se dá display sehnat dík
———
Datum | 08.03.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Možnost sehnání |
Zadej do vyhledavače nebo na ebay
3.2 TFT LCD Module Display