top of page
Pantalla LCD TFT Ref. TJC-9341-032
320 x 240 pixeles, 3.2"
65k colores
Backlight a LED blanco
Ángulo de visión amplio
Permite control total para crear formas gráficas, texto y números
Controlador del LCD ILI9341 on-board
Controlador touch XPT2046 on-board
Conector para tarjetas de memoria SD
Conector de 40 pines que proporciona las señales de los buses del LCD, touchscreen, tarjeta SD chip de memoria flash (Chip no incluido)
Interface en modo de 16 bits
Voltaje de señales lógicas: 3.3 V.

Librerías para Arduino:

En los ejemplos no olvide configurar el controlador a ILI9341_16 y los pines deseados RS, WR, CS, RST en la sentencia de "UTFT myGLCD(Controller, RS, WR, CS, RST);". Ej: UTFT myGLCD(ILI9341_16,38,39,40,41);

Librería gráfica UTFT modificada para soportar el ILI9341 y ejemplos para Arduino
http://www.electronicoscaldas.com/datasheet/UTFT_ILI9341.zip

Librería touch y ejemplos para Arduino
http://www.rinkydinkelectronics.com/library.php?id=55

Pantalla Tactil A Color Display TFT 3.2 Pulgadas Para Arduino Mega

SKU: 362
$567,24Precio
Impuesto incluido
  • // UTFT_Demo_320x240 
    // Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
    // web: http://www.RinkyDinkElectronics.com/
    //
    // This program is a demo of how to use most of the functions
    // of the library with a supported display modules.
    //
    // This demo was made for modules with a screen resolution 
    // of 320x240 pixels.
    //
    // This program requires the UTFT library.
    //

    #include <UTFT.h>

    // Declare which fonts we will be using
    extern uint8_t SmallFont[];

    // Set the pins to the correct ones for your development shield
    // ------------------------------------------------------------
    // Arduino Uno / 2009:
    // -------------------
    // Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
    // DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
    //
    // Arduino Mega:
    // -------------------
    // Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
    // CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
    //
    // Remember to change the model parameter to suit your display module!
    UTFT myGLCD(ILI9341_16,38,39,40,41);

    void setup()
    {
      randomSeed(analogRead(0));
      
    // Setup the LCD
      myGLCD.InitLCD();
      myGLCD.setFont(SmallFont);
    }

    void loop()
    {
      int buf[318];
      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, 319, 13);
      myGLCD.setColor(64, 64, 64);
      myGLCD.fillRect(0, 226, 319, 239);
      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, 227);

      myGLCD.setColor(0, 0, 255);
      myGLCD.drawRect(0, 14, 319, 225);

    // Draw crosshairs
      myGLCD.setColor(0, 0, 255);
      myGLCD.setBackColor(0, 0, 0);
      myGLCD.drawLine(159, 15, 159, 224);
      myGLCD.drawLine(1, 119, 318, 119);
      for (int i=9; i<310; i+=10)
        myGLCD.drawLine(i, 117, i, 121);
      for (int i=19; i<220; i+=10)
        myGLCD.drawLine(157, i, 161, i);

    // Draw sin-, cos- and tan-lines  
      myGLCD.setColor(0,255,255);
      myGLCD.print("Sin", 5, 15);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(sin(((i*1.13)*3.14)/180)*95));
      }
      
      myGLCD.setColor(255,0,0);
      myGLCD.print("Cos", 5, 27);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(cos(((i*1.13)*3.14)/180)*95));
      }

      myGLCD.setColor(255,255,0);
      myGLCD.print("Tan", 5, 39);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(tan(((i*1.13)*3.14)/180)));
      }

      delay(2000);

      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);
      myGLCD.setColor(0, 0, 255);
      myGLCD.setBackColor(0, 0, 0);
      myGLCD.drawLine(159, 15, 159, 224);
      myGLCD.drawLine(1, 119, 318, 119);

    // Draw a moving sinewave
      x=1;
      for (int i=1; i<(318*20); i++) 
      {
        x++;
        if (x==319)
          x=1;
        if (i>319)
        {
          if ((x==159)||(buf[x-1]==119))
            myGLCD.setColor(0,0,255);
          else
            myGLCD.setColor(0,0,0);
          myGLCD.drawPixel(x,buf[x-1]);
        }
        myGLCD.setColor(0,255,255);
        y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100)));
        myGLCD.drawPixel(x,y);
        buf[x-1]=y;
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled rectangles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20));
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled, rounded rectangles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20));
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled circles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillCircle(100+(i*20),60+(i*20), 30);
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some lines in a pattern
      myGLCD.setColor (255,0,0);
      for (int i=15; i<224; i+=5)
      {
        myGLCD.drawLine(1, i, (i*1.44)-10, 224);
      }
      myGLCD.setColor (255,0,0);
      for (int i=224; i>15; i-=5)
      {
        myGLCD.drawLine(318, i, (i*1.44)-11, 15);
      }
      myGLCD.setColor (0,255,255);
      for (int i=224; i>15; i-=5)
      {
        myGLCD.drawLine(1, i, 331-(i*1.44), 15);
      }
      myGLCD.setColor (0,255,255);
      for (int i=15; i<224; i+=5)
      {
        myGLCD.drawLine(318, i, 330-(i*1.44), 224);
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random circles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=32+random(256);
        y=45+random(146);
        r=random(30);
        myGLCD.drawCircle(x, y, r);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random rectangles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(207);
        x2=2+random(316);
        y2=16+random(207);
        myGLCD.drawRect(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random rounded rectangles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(207);
        x2=2+random(316);
        y2=16+random(207);
        myGLCD.drawRoundRect(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(209);
        x2=2+random(316);
        y2=16+random(209);
        myGLCD.drawLine(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

      for (int i=0; i<10000; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        myGLCD.drawPixel(2+random(316), 16+random(209));
      }

      delay(2000);

      myGLCD.fillScr(0, 0, 255);
      myGLCD.setColor(255, 0, 0);
      myGLCD.fillRoundRect(80, 70, 239, 169);
      
      myGLCD.setColor(255, 255, 255);
      myGLCD.setBackColor(255, 0, 0);
      myGLCD.print("That's it!", CENTER, 93);
      myGLCD.print("Restarting in a", CENTER, 119);
      myGLCD.print("few seconds...", CENTER, 132);
      
      myGLCD.setColor(0, 255, 0);
      myGLCD.setBackColor(0, 0, 255);
      myGLCD.print("Runtime: (msecs)", CENTER, 210);
      myGLCD.printNumI(millis(), CENTER, 225);
      
      delay (10000);
    }
     

  • // UTFT_Demo_320x240 
    // Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
    // web: http://www.RinkyDinkElectronics.com/
    //
    // This program is a demo of how to use most of the functions
    // of the library with a supported display modules.
    //
    // This demo was made for modules with a screen resolution 
    // of 320x240 pixels.
    //
    // This program requires the UTFT library.
    //

    #include <UTFT.h>

    // Declare which fonts we will be using
    extern uint8_t SmallFont[];

    // Set the pins to the correct ones for your development shield
    // ------------------------------------------------------------
    // Arduino Uno / 2009:
    // -------------------
    // Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
    // DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
    //
    // Arduino Mega:
    // -------------------
    // Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
    // CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
    //
    // Remember to change the model parameter to suit your display module!
    UTFT myGLCD(CTE32,38,39,40,41);

    void setup()
    {
      randomSeed(analogRead(0));
      
    // Setup the LCD
      myGLCD.InitLCD();
      myGLCD.setFont(SmallFont);
    }

    void loop()
    {
      int buf[318];
      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, 319, 13);
      myGLCD.setColor(64, 64, 64);
      myGLCD.fillRect(0, 226, 319, 239);
      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, 227);

      myGLCD.setColor(0, 0, 255);
      myGLCD.drawRect(0, 14, 319, 225);

    // Draw crosshairs
      myGLCD.setColor(0, 0, 255);
      myGLCD.setBackColor(0, 0, 0);
      myGLCD.drawLine(159, 15, 159, 224);
      myGLCD.drawLine(1, 119, 318, 119);
      for (int i=9; i<310; i+=10)
        myGLCD.drawLine(i, 117, i, 121);
      for (int i=19; i<220; i+=10)
        myGLCD.drawLine(157, i, 161, i);

    // Draw sin-, cos- and tan-lines  
      myGLCD.setColor(0,255,255);
      myGLCD.print("Sin", 5, 15);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(sin(((i*1.13)*3.14)/180)*95));
      }
      
      myGLCD.setColor(255,0,0);
      myGLCD.print("Cos", 5, 27);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(cos(((i*1.13)*3.14)/180)*95));
      }

      myGLCD.setColor(255,255,0);
      myGLCD.print("Tan", 5, 39);
      for (int i=1; i<318; i++)
      {
        myGLCD.drawPixel(i,119+(tan(((i*1.13)*3.14)/180)));
      }

      delay(2000);

      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);
      myGLCD.setColor(0, 0, 255);
      myGLCD.setBackColor(0, 0, 0);
      myGLCD.drawLine(159, 15, 159, 224);
      myGLCD.drawLine(1, 119, 318, 119);

    // Draw a moving sinewave
      x=1;
      for (int i=1; i<(318*20); i++) 
      {
        x++;
        if (x==319)
          x=1;
        if (i>319)
        {
          if ((x==159)||(buf[x-1]==119))
            myGLCD.setColor(0,0,255);
          else
            myGLCD.setColor(0,0,0);
          myGLCD.drawPixel(x,buf[x-1]);
        }
        myGLCD.setColor(0,255,255);
        y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100)));
        myGLCD.drawPixel(x,y);
        buf[x-1]=y;
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled rectangles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20));
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled, rounded rectangles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20));
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some filled circles
      for (int i=1; i<6; i++)
      {
        switch (i)
        {
          case 1:
            myGLCD.setColor(255,0,255);
            break;
          case 2:
            myGLCD.setColor(255,0,0);
            break;
          case 3:
            myGLCD.setColor(0,255,0);
            break;
          case 4:
            myGLCD.setColor(0,0,255);
            break;
          case 5:
            myGLCD.setColor(255,255,0);
            break;
        }
        myGLCD.fillCircle(100+(i*20),60+(i*20), 30);
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some lines in a pattern
      myGLCD.setColor (255,0,0);
      for (int i=15; i<224; i+=5)
      {
        myGLCD.drawLine(1, i, (i*1.44)-10, 224);
      }
      myGLCD.setColor (255,0,0);
      for (int i=224; i>15; i-=5)
      {
        myGLCD.drawLine(318, i, (i*1.44)-11, 15);
      }
      myGLCD.setColor (0,255,255);
      for (int i=224; i>15; i-=5)
      {
        myGLCD.drawLine(1, i, 331-(i*1.44), 15);
      }
      myGLCD.setColor (0,255,255);
      for (int i=15; i<224; i+=5)
      {
        myGLCD.drawLine(318, i, 330-(i*1.44), 224);
      }
      
      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random circles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=32+random(256);
        y=45+random(146);
        r=random(30);
        myGLCD.drawCircle(x, y, r);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random rectangles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(207);
        x2=2+random(316);
        y2=16+random(207);
        myGLCD.drawRect(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

    // Draw some random rounded rectangles
      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(207);
        x2=2+random(316);
        y2=16+random(207);
        myGLCD.drawRoundRect(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

      for (int i=0; i<100; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        x=2+random(316);
        y=16+random(209);
        x2=2+random(316);
        y2=16+random(209);
        myGLCD.drawLine(x, y, x2, y2);
      }

      delay(2000);
      
      myGLCD.setColor(0,0,0);
      myGLCD.fillRect(1,15,318,224);

      for (int i=0; i<10000; i++)
      {
        myGLCD.setColor(random(255), random(255), random(255));
        myGLCD.drawPixel(2+random(316), 16+random(209));
      }

      delay(2000);

      myGLCD.fillScr(0, 0, 255);
      myGLCD.setColor(255, 0, 0);
      myGLCD.fillRoundRect(80, 70, 239, 169);
      
      myGLCD.setColor(255, 255, 255);
      myGLCD.setBackColor(255, 0, 0);
      myGLCD.print("That's it!", CENTER, 93);
      myGLCD.print("Restarting in a", CENTER, 119);
      myGLCD.print("few seconds...", CENTER, 132);
      
      myGLCD.setColor(0, 255, 0);
      myGLCD.setBackColor(0, 0, 255);
      myGLCD.print("Runtime: (msecs)", CENTER, 210);
      myGLCD.printNumI(millis(), CENTER, 225);
      
      delay (10000);
    }

bottom of page