1474276662 VÝROBNÍ ČÍSLO 5.0" TFT LCD displej SSD1963 1. POPIS Jedná se o kvalitní displej, který disponuje velkou úhlopříčkou. Rozlišení displeje je 800 x 480 pixelů. Displej je tedy schopen zobrazit i složitější grafiku. Podporuje dotykové ovládání a připojení SD karty. Antireflexní povrchová úprava zlepšuje čitelnost displeje na přímém slunci. Displej je přímo kompatibilní se shieldem s kódem produktu 1427735951, který doporučujeme použít v kombinaci s vývojovým kitem Arduino Mega (je však možné použít i jiné vývojové kity). Základní charakteristika: Úhlopříčka 5.0" Podpora SD karty Podpora dotykového ovládání 2. SPECIFIKACE Driver SSD1963 Úhlopříčka 5,0" Typ displeje LCD TFT Odezva 12 ms Vstupní napětí 3,3 V Kontrast 500:1 Max. proud 450 ma Typ paměťové karty SD Datové rozhraní 16 bitů (paralelní) Rozměry (mm) 120 x 90 Rozlišení 800 x 480 Hmotnost 135
3. ZAPOJENÍ K připojení displeje je doporučeno použít TFT LCD shield V2.2 (kód produktu 1427735951) a Arduino Mega 2560. Jednotlivé komponenty do sebe zapadají a snadno se spojí dohromady. Po zapojení stačí nahrát následující program. 4. UKÁZKA PROGRAMU K správné funkci musí uživatel nainstalovat knihovnu UTFT.h. Tento kód je příkladem z této knihovny a kompatibilní s Arduino Mega 2560. Dále je pro správnou funkci vhodné připojit TFT LCD shield mezi Arduino a TFT displej. #include <UTFT.h> // Declare which fonts we will be using extern uint8_t SmallFont[]; UTFT myglcd(itdb50,38,39,40,41); void setup() randomseed(analogread(0)); 2
// Setup the LCD myglcd.initlcd(); myglcd.setfont(smallfont); void loop() int buf[798]; int x, x2; int y, y2; int r; // Clear the screen and draw the frame myglcd.clrscr(); myglcd.setcolor(255, 0, 0); myglcd.fillrect(0, 0, 799, 13); myglcd.setcolor(64, 64, 64); myglcd.fillrect(0, 466, 799, 479); myglcd.setcolor(255, 255, 255); myglcd.setbackcolor(255, 0, 0); myglcd.print("* Universal Color TFT Display Library *", CENTER, 1); myglcd.setbackcolor(64, 64, 64); myglcd.setcolor(255,255,0); myglcd.print("<http://www.rinkydinkelectronics.com/>", CENTER, 467); myglcd.setcolor(0, 0, 255); myglcd.drawrect(0, 14, 799, 465); // Draw crosshairs myglcd.setcolor(0, 0, 255); myglcd.setbackcolor(0, 0, 0); myglcd.drawline(399, 15, 399, 464); myglcd.drawline(1, 239, 798, 239); for (int i=9; i<790; i+=10) myglcd.drawline(i, 237, i, 242); for (int i=19; i<470; i+=10) myglcd.drawline(397, i, 402, i); // Draw sin-, cos- and tan-lines myglcd.setcolor(0,255,255); myglcd.print("sin", 5, 15); for (int i=1; i<798; i++) myglcd.drawpixel(i,239+(sin(((i*1.13)*3.14)/180)*200)); 3
myglcd.setcolor(255,0,0); myglcd.print("cos", 5, 27); for (int i=1; i<798; i++) myglcd.drawpixel(i,239+(cos(((i*1.13)*3.14)/180)*200)); myglcd.setcolor(255,255,0); myglcd.print("tan", 5, 39); for (int i=1; i<798; i++) myglcd.drawpixel(i,239+(tan(((i*0.9)*3.14)/180))); myglcd.setcolor(0, 0, 255); myglcd.setbackcolor(0, 0, 0); myglcd.drawline(399, 15, 399, 464); myglcd.drawline(1, 239, 798, 239); // Draw a moving sinewave x=1; for (int i=1; i<(798*20); i++) x++; if (x==799) x=1; if (i>799) if ((x==399) (buf[x-1]==239)) myglcd.setcolor(0,0,255); else myglcd.drawpixel(x,buf[x-1]); myglcd.setcolor(0,255,255); y=239+(sin(((i*1.65)*3.14)/180)*(200-(i / 100))); myglcd.drawpixel(x,y); buf[x-1]=y; 4
// Draw some random filled rectangles for (int i=0; i<50; i++) x=2+random(746); y=16+random(397); x2=x+50; y2=y+50; myglcd.fillrect(x, y, x2, y2); // Draw some random filled, rounded rectangles for (int i=0; i<50; i++) x=2+random(746); y=16+random(397); x2=x+50; y2=y+50; myglcd.fillroundrect(x, y, x2, y2); // Draw some random filled circles for (int i=0; i<50; i++) x=27+random(746); y=41+random(397); myglcd.fillcircle(x, y, 25); // Draw some lines in a pattern 5
myglcd.setcolor (255,0,0); for (int i=15; i<463; i+=5) myglcd.drawline(1, i, (i*1.66)-10, 463); myglcd.setcolor (255,0,0); for (int i=463; i>15; i-=5) myglcd.drawline(798, i, (i*1.66)+30, 15); myglcd.setcolor (0,255,255); for (int i=463; i>15; i-=5) myglcd.drawline(1, i, 770-(i*1.66), 15); myglcd.setcolor (0,255,255); for (int i=15; i<463; i+=5) myglcd.drawline(798, i, 810-(i*1.66), 463); // Draw some random circles for (int i=0; i<250; i++) x=32+random(736); y=45+random(386); r=random(30); myglcd.drawcircle(x, y, r); // Draw some random rectangles for (int i=0; i<250; i++) x=2+random(796); y=16+random(447); x2=2+random(796); 6
y2=16+random(447); myglcd.drawrect(x, y, x2, y2); // Draw some random rounded rectangles for (int i=0; i<250; i++) x=2+random(796); y=16+random(447); x2=2+random(796); y2=16+random(447); myglcd.drawroundrect(x, y, x2, y2); for (int i=0; i<250; i++) x=2+random(796); y=16+random(447); x2=2+random(796); y2=16+random(447); myglcd.drawline(x, y, x2, y2); for (int i=0; i<10000; i++) myglcd.drawpixel(2+random(796), 16+random(447)); 7
myglcd.fillscr(0, 0, 255); myglcd.setcolor(255, 0, 0); myglcd.fillroundrect(320, 190, 479, 289); myglcd.setcolor(255, 255, 255); myglcd.setbackcolor(255, 0, 0); myglcd.print("that's it!", CENTER, 213); myglcd.print("restarting in a", CENTER, 239); myglcd.print("few seconds...", CENTER, 252); myglcd.setcolor(0, 255, 0); myglcd.setbackcolor(0, 0, 255); myglcd.print("runtime: (msecs)", CENTER, 450); myglcd.printnumi(millis(), CENTER, 465); delay (10000); 8