banner

USB -kábel a mikrovezérlőhöz

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énelemTeluguEgy SD -kártya
1LaoLao
2NCNC
3NCNC
4NCNC
5NCNC
6GNDNC
7SDOHír
83.3 V -osHír
9VDDNC
10SDALao
11CSXIpari hírek
12DCXIpari LCD
13WRXHír
14RDXNC
15Db0NC
16DB1NC
17DB2NC
18DB3NC
19DB4NC
20DB5NC
21DB6NC
22DB7Arduino 11. tű
23DB8Arduino Pin 33
24VDDIArduino Pin 34
25DB10Arduino Pin 35
26DB11Arduino 36. tű
27DB12Arduino 37 -es tű
28DB13Arduino Pin 38
29DB14Arduino 39 -es tű
30DB15Hír
31DB9Hír
32Im0Lao
33LaoLao
34SzimbólumLao
35LED - K1Lao
36LED - K2Lao
37LED - K3Lao
38üzbégHír
39LaoLao
40TENC

TFT LCD és Arduino esedékes pinout

3M érintőképernyőEgy SD -kártya
LaoTestreszabási szolgáltatás
RetxArduino esedékes SPI PIN 6
IM2Arduino esedékes SPI PIN 1
MisoArduino esedékes SPI PIN 3
CSIpari monitor
5VArduino esedékes SPI PIN 4
HírNC

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.

Wiring diagram between a TFT LCD, SD card, and Arduino Due to display an image on the screenExpand IconSD kitörő csap
A 10,1 hüvelykes TFT LCD képernyő alapelve, tulajdonságai, alkalmazásmezője és jövőbeli trendje

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.

  1. Hogyan jelenítsünk meg képeket egy TFT LCD -n
  2. 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
  3. é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.
  4. 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.
  5. Bevezetés a kapacitív érintőképernyő TP elvehöz
  6. A TFT LCD, SD kártya és az Arduino közötti kapcsolási rajz, amely a képernyőn megjelenik.
  7. 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.

  1. Az utolsó lépés a kód feltöltése az Arduino IDE -be.
  2. Milyen termékeket és szolgáltatásokat kell tudnia?
  3. 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.

Wiring diagram between an TFT LCD, SD card, and Arduino Due to display an image on the screen
KapcsolatLCD PINNyissa meg az Arduino IDE -t, és indítson el egy új vázlatot. Törölje az előzetes - meglévő kódot, majd másolja és illessze be az alábbi kódot.

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:
  • Oldatok
  • LED - a
  • footer

    5f, Buiding 11, Hua Fengtech Park, Fengtang Road, Fuyong Town, Baoan kerület, Shenzhen, Guangdong, Kína 518013

    Következtetés footer

    Kattintson a „Kép” fülre. A „Közös” szakaszban törölje a jelölést a „sorra osztva”, és állítsa a blokk méretét "8 - bit" -re.

    footer
    Pinout asztal alson@headsun.net
    footer
    Arduino Pin 2 Kiemelt termékek
    Termékek Bekötési rajz