MűhelyA legtöbb LCD nem értelmezi közvetlenül a standard képformátumokat, mint például a JPEG vagy a PNG. Ehelyett nyers pixel -adatokat használnak, amelyeket gyakran hexadecimális formátumban ábrázolnak. Először át kell konvertálnunk a képet képadat -tömbre az LCD Image Converter szoftver letöltésével és a következő lépések követésével:
Akár tanul, prototípus -készítést, vagy szeretne szórakozni az elektronikával való játékban, ez az oktatóanyag felvázolja a Hex képadatok SD -kártyáról történő olvasásának alapjait, és megjeleníti azt egy TFT LCD -n. Ez csak egy kiindulási pont, és a bővítés lehetőségei végtelenek. Nagyon reméljük, hogy élvezte ezt az oktatóanyagot!
Kérjük, írja be a kulcsszavakat
- Nyissa meg az LCD Image Converter szoftvert.
- Kattintson a „Feltöltés” gombra az Arduino programjának programozásához.
- A TFT LCD alkalmazása új élményt nyújt a kórteremben
- Kategóriák
- Töltse fel a kódot Arduino -ba
- Vállalati hírek
- Egy kenyérlemez
- Milyen előnyei vannak a négyzet alakú monitornak?
- Olyan dolgok, amelyekre szükséged lesz
- Kapacitív VS ellenálló érintés
Jumper vezetékek
Lépjen a Image - A képfájlfelbontásnak meg kell egyeznie az LCD felbontásával.
Másolja a példakódot az Arduino IDE -be
Történelem | Telugu | Egy SD -kártya |
---|---|---|
1 | Lao | Lao |
2 | NC | NC |
3 | NC | NC |
4 | NC | NC |
5 | NC | NC |
6 | GND | NC |
7 | SDO | Hír |
8 | 3.3 V -os | Hír |
9 | VDD | NC |
10 | SDA | Lao |
11 | CSX | Ipari hírek |
12 | DCX | Ipari LCD |
13 | WRX | Hír |
14 | RDX | NC |
15 | Db0 | NC |
16 | DB1 | NC |
17 | DB2 | NC |
18 | DB3 | NC |
19 | DB4 | NC |
20 | DB5 | NC |
21 | DB6 | NC |
22 | DB7 | Arduino 11. tű |
23 | DB8 | Arduino Pin 33 |
24 | VDDI | Arduino Pin 34 |
25 | DB10 | Arduino Pin 35 |
26 | DB11 | Arduino 36. tű |
27 | DB12 | Arduino 37 -es tű |
28 | DB13 | Arduino Pin 38 |
29 | DB14 | Arduino 39 -es tű |
30 | DB15 | Hír |
31 | DB9 | Hír |
32 | Im0 | Lao |
33 | Lao | Lao |
34 | Szimbólum | Lao |
35 | LED - K1 | Lao |
36 | LED - K2 | Lao |
37 | LED - K3 | Lao |
38 | üzbég | Hír |
39 | Lao | Lao |
40 | TE | NC |
TFT LCD és Arduino esedékes pinout
3M érintőképernyő | Egy SD -kártya |
---|---|
Lao | Testreszabási szolgáltatás |
Retx | Arduino esedékes SPI PIN 6 |
IM2 | Arduino esedékes SPI PIN 1 |
Miso | Arduino esedékes SPI PIN 3 |
CS | Ipari monitor |
5V | Arduino esedékes SPI PIN 4 |
Hír | NC |
Arduino PIN 40
Miért választja a kaszinó képernyő ívelt képernyők használatát?LCD PINMiután a kód sikeresen feltöltötte, a képnek meg kell jelennie az LCD képernyőn.


A képek megjelenítése a TFT LCD -n - Fejnap
A TFT LCD -k egyik leggyakrabban használt alkalmazás a képek megjelenítése. Ez ideálisvá teszi őket különféle projektekhez, például digitális fotókeretekhez, digitális feliratokhoz és DIY projektekhez. Ebben a cikkben megmutatjuk, hogyan lehet képeket megjeleníteni egy TFT LCD -n egy SD -kártya és az Arduino esedékes felhasználásával.
- Hogyan jelenítsünk meg képeket egy TFT LCD -n
- A TFT LCD -k, vagy a vékony - Film Transistor Liquid - Crystal Displays egy olyan típusú LCD, amelyet általában különféle eszközökben használnak, beleértve okostelefonokat, táblagépeket és TVS.TFT LCDSA -t
- és SD -kártya az Arduino -hoz, amely a grafika megjelenítéséért és az SD -kártyához való hozzáféréshez esedékes.
- Az SD -kártyáról származó kép megjelenítésének képernyője, a képfeldolgozás és az Arduino által kezelt megjelenítéssel.
- Bevezetés a kapacitív érintőképernyő TP elvehöz
- A TFT LCD, SD kártya és az Arduino közötti kapcsolási rajz, amely a képernyőn megjelenik.
- Másolja és illessze be a Hex értékeket egy szövegszerkesztőbe, és mentse el a fájlt „image1.txt” néven.
Arduino esedékes mikrovezérlő tábla
Töltse ki a Pinout leírását és a csatlakozásokat a TFT LCD, az SD Card Breakout Board és az Arduino közötti kapcsolathoz.
/* /Newhaven Display invests time and resources providing this open source code, /Please support Newhaven Display by purchasing products from Newhaven Display! * * This code is provided as an example only and without any warranty by Newhaven Display. * Newhaven Display accepts no responsibility for any issues resulting from its use. * The developer on the final application incorporating any parts of this * sample code is responsible for ensuring its safe and correct operation * and for any consequences resulting from its use. * See the GNU General Public License for more details. */ #include#include#include/**************************************************** * PINOUT: Arduino Due ->2.4" TFT * *****************************************************/ #define RS 2 #define WR 11 const char slave = 0x38; const int ChipSelect = 49; int image_value = 0; File myFile; /**************************************************** * Function Commands * ******************************************************/ void comm_out(unsigned char c) { PIOB ->PIO_CODR = 1<< 25; //RS LOW REG_PIOC_ODSR = c<< 1; PIOD ->PIO_CODR = 1<< 7; //WR LOW PIOD ->PIO_SODR = 1<< 7; //WR HIGH } void data_out(unsigned char d) { PIOB ->PIO_SODR = 1<< 25; //RS HIGH REG_PIOC_ODSR = d<< 1; PIOD ->PIO_CODR = 1<< 7; //WR LOW PIOD ->PIO_SODR = 1<< 7; //WR HIGH } //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Window Set Function //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void window_set(unsigned s_x, unsigned e_x, unsigned s_y, unsigned e_y) { comm_out(0x2a); //SET column address data_out((s_x)>>8); //SET start column address data_out(s_x); data_out((e_x)>>8); //SET end column address data_out(e_x); comm_out(0x2b); //SET page address data_out((s_y)>>8); //SET start page address data_out(s_y); data_out((e_y)>>8); //SET end page address data_out(e_y); } /**************************************************** * Initialization and Setup Routine * *****************************************************/ void setup() { delay(100); pinMode(RS,OUTPUT); pinMode(WR,OUTPUT); PIOC->PIO_OER = 0xFFFFFFFF; digitalWrite(WR, LOW); comm_out(0x28); //display off comm_out(0x11); //exit SLEEP mode delay(100); comm_out(0x36); //MADCTL: memory data access control data_out(0x10); //changing from 0x88 comm_out(0x21); //display inversion comm_out(0x3A); //COLMOD: Interface Pixel format *** 65K-colors in 16bit/pixel (5-6-5) format when using 16-bit interface to allow 1-byte per pixel data_out(0x55); //0x55 = 65k //0x65 = 262k comm_out(0xB2); //PORCTRK: Porch setting data_out(0x0C); data_out(0x0C); data_out(0x00); data_out(0x33); data_out(0x33); comm_out(0xB7); //GCTRL: Gate Control data_out(0x35); comm_out(0xBB); //VCOMS: VCOM setting data_out(0x2B); comm_out(0xC0); //LCMCTRL: LCM Control data_out(0x2C); comm_out(0xC2); //VDVVRHEN: VDV and VRH Command Enable data_out(0x01); data_out(0xFF); comm_out(0xC3); //VRHS: VRH Set data_out(0x11); comm_out(0xC4); //VDVS: VDV Set data_out(0x20); comm_out(0xC6); //FRCTRL2: Frame Rate control in normal mode data_out(0x0F); comm_out(0xD0); //PWCTRL1: Power Control 1 data_out(0xA4); data_out(0xA1); comm_out(0xE0); //PVGAMCTRL: Positive Voltage Gamma control data_out(0xD0); data_out(0x00); data_out(0x05); data_out(0x0E); data_out(0x15); data_out(0x0D); data_out(0x37); data_out(0x43); data_out(0x47); data_out(0x09); data_out(0x15); data_out(0x12); data_out(0x16); data_out(0x19); comm_out(0xE1); //NVGAMCTRL: Negative Voltage Gamma control data_out(0xD0); data_out(0x00); data_out(0x05); data_out(0x0D); data_out(0x0C); data_out(0x06); data_out(0x2D); data_out(0x44); data_out(0x40); data_out(0x0E); data_out(0x1C); data_out(0x18); data_out(0x16); data_out(0x19); comm_out(0x2A); //X address set data_out(0x00); data_out(0x00); data_out(0x00); data_out(0xEF); comm_out(0x2B); //Y address set data_out(0x00); data_out(0x00); data_out(0x01); data_out(0x3F); delay(10); comm_out(0x29); //display ON delay(10); SD.begin(ChipSelect); } /***************************************************** * Loop Function, to run repeatedly * *****************************************************/ void loop() { SD_Card_Image(1); delay(5000); //SD_Card_Image(2); //delay(5000); //SD_Card_Image(3); //delay(5000); //SD_Card_Image(4); //delay(5000); //SD_Card_Image(5); //delay(5000); } void SD_Card_Image(unsigned char image){ /*The images used are in a textfile*/ unsigned char dummy; unsigned int incr =0; switch (image){ case 1: image_value=1; myFile = SD.open("image1.txt"); break; case 2: image_value=2; myFile =SD.open("image2.txt"); break; case 3: image_value=3; myFile = SD.open("image3.txt"); break; case 4: image_value=4; myFile = SD.open("image4.txt"); break; case 5: image_value=5; myFile = SD.open("image5.txt"); break; } comm_out(0x2A); /*X address set*/ data_out(0x00); data_out(0x00); data_out(0x00); data_out(0xEF); comm_out(0x2B); /*Y address set*/ data_out(0x00); data_out(0x00); data_out(0x01); data_out(0x3F); comm_out(0x2C); /*command to begin writing to frame memory */ byte data_in1,data_in2,data_in,data_out_value; uint8_t data_send; char data_conv[1]={0}; int i; int track ; while (myFile.available()){ /*convert the input char data to integers*/ dummy = myFile.read(); dummy = myFile.read(); data_in1 = myFile.read(); data_in2 = myFile.read(); data_in=data_in1; if(data_in >=48 && data_in<=57){ /*if values are in range of 0-9 values*/ data_in1 = data_in-48; track=1; } if(data_in<=102 && data_in>=97){ /*if values are in range of a-f*/ data_in1 = data_in - 87; track=1; } if( data_in ==32/*Space*/ || data_in==44 /*comma*/ || data_in == 120 /*x*/){ dummy =data_in; track=0; data_in1 =0; data_in2 =0; } data_in=data_in2; if(data_in >=48 && data_in<=57){ /*if values are in range of 0-9 values*/ data_in2 = data_in-48; track=1; } if(data_in<=102 && data_in>=97){/*if values are in range of a-f*/ data_in2 = data_in - 87; track=1; } if( data_in ==32/*Space*/ || data_in==44 /*comma*/ || data_in == 120 /*x*/){/*skip dummy data*/ dummy =data_in; track=0; data_in1 =0; data_in2 =0; } dummy = myFile.read(); dummy = myFile.read(); data_out_value = data_in1<<4 | data_in2; data_out(data_out_value); } myFile.close(); }
kültéri érintőképernyős monitor
Az ablak alsó részén kattintson a „Előnézet megjelenítése” elemre.
- Az utolsó lépés a kód feltöltése az Arduino IDE -be.
- Milyen termékeket és szolgáltatásokat kell tudnia?
- Technológiai fejlesztés és az érintőképernyő -képernyőn megjelenő képernyők
Vigye át a szöveges fájlt egy SD -kártyára, és helyezze be az SD -kártyát a kitörési táblába.

Egy Newhaven
/* /Newhaven Display Időt és erőforrásokat fektet be, biztosítva ezt a nyílt forráskódot, /kérjük, támogassa a Newhaven kijelzőt, ha termékeket vásárol a Newhaven Display -től! * * Ezt a kódot csak példaként adják meg, és a Newhaven Display garanciája nélkül. * A Newhaven Display nem vállal felelősséget a felhasználásából származó problémákért. * A végleges alkalmazás fejlesztője, amely magában foglalja a * mintakód bármely részét, felelős a biztonságos és helyes működésének biztosításáért *, valamint a felhasználás következményeinek biztosításáért. * További részletekért lásd a GNU Általános Nyilvános Licencét. */? Char Slave = 0x38; - Reg_pioc_odsr = d << 1; // - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = // ablakkészlet funkció funkció // - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - // Az oszlop címe (S_X) >> 8. data_out (e_y) >> 8); PinMode (RS); comm_out (0x21); comm_out (0xB2) data_out (0x2b); data_out (0x11); comm_out (0xe0): Data_out (0x09) (0x15); Data_out (0x0c) (0x2d) (0x44); Data_out (0x00) (0x00); Sd.begin (chipselect); // SD_IMAGE (2). textfile*/ unsigned char dummy; unsigned int incr =0; switch (image){ case 1: image_value=1; myFile = SD.open("image1.txt"); break; case 2: image_value=2; myFile =SD.open("image2.txt"); break; case 3: image_value=3; myFile = SD.open("image3.txt"); break; case 4: Image_value = SD. comm_out (0x2b); data_conv [1] {0; data_in <= 57) Ha az értékek 0 - /vessző*- - if (data_in <= 102 && data_in) {/*Ha az értékek a - f*/data_in2 tartományban vannak. data_in1 = date2;
SD kártya kitörési tábla pinout: