Você está na página 1de 85

24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Início  Arduino  3 projetos incríveis com o Display Touch Arduino Shield

3 projetos incríveis com o Display Touch


Arduino Shield
Arduino, Display 
19 de janeiro de 2015 
Adilson Thomsen

Tenha em um mesmo produto um display grá co com resolução de 320×240 e uma tela touch para os seus
projetos Arduino, com o Display Touch Arduino Shield de 2,4″:


r
Pesquisar produtos…
m n 0 0

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 1/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Esse display tft de 2,4¨ tem resolução de 320×240 pixels, com um esquema de cores de 18 bits que permite
a exibição de até 262.000 tonalidades diferentes, tela touch resistiva e um slot para cartão microSD, tudo
isso controlado pelo driver ILI9325 (datasheet). Seu formato de shield permite que você acesse todas as
funções do display apenas encaixando a placa no Arduino.

Para uso dos programas aqui apresentados com outras versões do controlador, como o S6D0154, ST7781 e
ILI9335, siga as instruções no nal deste post. Para o controlador ILI9341, altere as linhas correspondentes
que estão indicadas nos programas.

Pinagem e conexão ao Arduino

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 2/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Para utilizar o Display Touch Arduino com um Arduino Uno, simplesmente encaixe o display na placa. Um
detalhe importante é que você deve utilizar algum material isolante para que o conector USB do Arduino
não entre em contato com componentes e/ou trilhas da placa, causando algum curto-circuito.

A tabela abaixo mostra os pinos utilizados pelo shield na conexão com um Arduino Uno. Esse TFT Shield
com controlador ILI9341 e os programas aqui apresentados funcionam normalmente com o Arduino Mega.

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 3/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Programas e bibliotecas
Para utilizar o Display Touch Arduino Shield com os três exemplos à seguir, vamos precisar das bibliotecas:

Adafruit_GFX
Adafruit_TFTLCD
Touchscreen

As bibliotecas estão disponíveis  neste link. Faça o download, descompacte o arquivo e coloque as
bibliotecas dentro da pasta LIBRARIES da IDE do seu Arduino. Reinicie a IDE para que as bibliotecas sejam
corretamente carregadas.

Programa 1 – Grá cos e texto


Nesse primeiro exemplo, vamos   mostrar algumas funções de grá cos e texto que podemos gerar com
esse display tft. Você pode alterar as cores do texto,  tamanho de fonte, cor, etc e criar praticamente
qualquer tipo de desenho.

O programa consiste em demonstrar as funções de texto, com alteração de tamanho, posicionamento e


cor, e também as funções de desenho, como retângulos, triângulos, retângulos preenchidos e círculos.

1 //Programa: Teste Display Touch Arduino - Texto e Graficos


2 //Autor: FILIPEFLOP
3  
4 #include <Adafruit_GFX.h>    // Core graphics library
5 #include <Adafruit_TFTLCD.h> // Hardware-specific library
6  
7 //Definicao de cores
8 #define BLACK           0x0000

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 4/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

9 #define BLUE            0x001F
10 #define RED             0xF800
11 #define GREEN           0x07E0
12 #define CYAN            0x07FF
13 #define MAGENTA         0xF81F
14 #define YELLOW          0xFFE0
15 #define WHITE           0xFFFF
16  
17 //CS, CD, WR, RD, RESET
18 Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);
19  
20 void setup(void)
21 {
22   Serial.begin(9600);
23   Serial.println("Teste de LCD 8 Bits");
24   tft.reset();
25   delay(500);
26   //tft.begin(0x9341) //Use esta linha para o controlador 9341
27   tft.begin(0x9325);
28 }
29  
30 void loop()
31 {
32   //tft.setRotation(3); //Use esta linha para o controlador 9341
33   tft.setRotation(1);
34   teste_texto(RED);
35   delay(2000);
36   tft.setRotation(0);
37   teste_linhas(CYAN);
38   delay(500);
39   teste_retangulo_cheio(YELLOW, MAGENTA);
40   delay(500);
41   tft.fillScreen(BLACK);
42   teste_circulos(10, MAGENTA);
43   delay(500);
44   teste_triangulos();
45   delay(500);
46   teste_retangulos();
47   delay(500);
48 }
49
50 void teste_texto(uint16_t color)
51 {
52   tft.fillScreen(BLACK);
53   tft.setTextColor(WHITE);
54   tft.setTextSize(3);
55   tft.setCursor(0, 20);
56   tft.println("FILIPEFLOP");
57   tft.setTextColor(GREEN);
58   tft.setCursor(0, 50);
59   tft.println("Arduino");
60   tft.setTextColor(BLUE);
61   tft.setCursor(0, 80);
62   tft.println("Raspberry");
63   tft.setTextColor(YELLOW);
64   tft.setCursor(0, 110);
65   tft.println("Embarcados");
66   tft.setTextColor(CYAN);
67   tft.setTextSize(5);
68   tft.setCursor(0, 150);
69   tft.println("1234567890");
70   delay(2000);
71 }
72
73 void teste_linhas(uint16_t color)
74 {
75   tft.fillScreen(BLACK);
76   for (uint16_t x = 0; x < tft.width(); x += 6)
77   {

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 5/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

78     tft.drawLine(0, 0, x, tft.height() - 1, color);


79   }
80   for (uint16_t y = 0; y < tft.height(); y += 6)
81   {
82     tft.drawLine(0, 0, tft.width() - 1, y, color);
83   }
84 }
85
86 void teste_retangulo_cheio(uint16_t color1, uint16_t color2)
87 {
88   tft.fillScreen(BLACK);
89   for (uint16_t x = tft.width() - 1; x > 6; x -= 6)
90   {
91     tft.fillRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2 , x, x, color1);
92     tft.drawRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2 , x, x, color2);
93   }
94 }
95
96 void teste_circulos(uint8_t radius, uint16_t color)
97 {
98   for (uint16_t x = radius; x < tft.width(); x += radius * 2)
99   {
100     for (uint16_t y = radius; y < tft.height(); y += radius * 2) {
101       tft.fillCircle(x, y, radius, color);
102     }
103   }
104   for (uint16_t x = 0; x < tft.width() + radius; x += radius * 2)
105   {
106     for (uint16_t y = 0; y < tft.height() + radius; y += radius * 2)
107     {
108       tft.drawCircle(x, y, radius, WHITE);
109     }
110   }
111 }
112
113 void teste_triangulos()
114 {
115   tft.fillScreen(BLACK);
116   for (uint16_t i = 0; i < tft.width() / 2; i += 5)
117   {
118     tft.drawTriangle(tft.width() / 2, tft.height() / 2 - i,
119                      tft.width() / 2 - i, tft.height() / 2 + i,
120                      tft.width() / 2 + i, tft.height() / 2 + i, tft.Color565(0, 0, i));
121   }
122 }
123
124 void teste_retangulos()
125 {
126   tft.fillScreen(BLACK);
127   for (uint16_t x = tft.width(); x > 20 ; x -= 6)
128   {
129     tft.fillRoundRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2 , x, x, x / 8,  tft.
130   }
131 }

Programa 2 – Utilizando o Touch Screen


Agora vamos utilizar o touch screen, simulando botões na tela para acionamento de portas. Você pode
utilizar este programa como base para acionar as portas do Arduino ou efetuar a leitura de algum sensor.
Carregue o programa no Arduino e você terá uma tela como essa, onde utilizamos as funções do touch
screen nos botões do lado direito:

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 6/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

1 //Programa : Teste Display Touch Arduino - Touchscreen


2 //Autor : FILIPEFLOP
3
4 #include <Adafruit_GFX.h>    // Core graphics library
5 #include <Adafruit_TFTLCD.h> // Hardware-specific library
6 #include <TouchScreen.h>
7
8 #define YP A1 // Y+ is on Analog1 (use A3 para o 9341)
9 #define XM A2 // X- is on Analog2 (use A2 para o 9341)
10 #define YM 7 // Y- is on Digital7 (use 9 para o 9341)
11 #define XP 6 // X+ is on Digital6 (use 8 para o 9341)
12
13 #define TS_MINX 170 // Use 150 para o 9341
14 #define TS_MINY 165 // Use 120 para o 9341
15 #define TS_MAXX 920
16 #define TS_MAXY 940
17
18 TouchScreen ts = TouchScreen(XP, YP, XM, YM, 100);
19  
20 //Definicao de cores
21 #define BLACK           0x0000
22 #define BLUE            0x001F
23 #define RED             0xF800
24 #define GREEN           0x07E0
25 #define CYAN            0x07FF
26 #define MAGENTA         0xF81F
27 #define YELLOW          0xFFE0
28 #define WHITE           0xFFFF
29
30 //PP_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
31 Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);
32
33 // Armazena o estado dos botões
34 bool valor_botao1 = 0;
35 bool valor_botao2 = 0;
36 bool valor_botao3 = 0;
37 bool valor_botao4 = 0;
38
39 #define MINPRESSURE 10
40 #define MAXPRESSURE 1000
41
42 void setup(void)
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 7/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

43 {
44   Serial.begin(9600);
45   Serial.println("TFT Test");
46   //identifier == 0x9325;
47   tft.reset();
48   delay(500);
49   //uint16_t identifier = tft.readID(0x0);
50   //Serial.print("Driver encontrado: ");
51   //Serial.println(identifier, HEX);
52
53 //tft.begin(0x9341); //Use esta linha para o controlador 9341
54 tft.begin(0x9325);
55   //tft.initDisplay();
56   tft.fillScreen(BLACK);
57   tft.setRotation(1);
58
59   // Inicio - Texto e botoes
60   tft.drawRoundRect(5, 15, 312, 50, 5, WHITE);
61   tft.drawRoundRect(255, 15, 62, 50, 5, WHITE);
62   tft.setTextColor(YELLOW);
63   tft.setTextSize(3);
64   tft.setCursor(15, 30);
65   tft.println("Led Amarelo");
66
67   tft.drawRoundRect(5, 70, 312, 50, 5, WHITE);
68   tft.drawRoundRect(255, 70, 62, 50, 5, WHITE);
69   tft.setTextColor(GREEN);
70   tft.setTextSize(3);
71   tft.setCursor(15, 85);
72   tft.println("Led Verde");
73
74   tft.drawRoundRect(5, 125, 312, 50, 5, WHITE);
75   tft.drawRoundRect(255, 125, 62, 50, 5, WHITE);
76   tft.setTextColor(BLUE);
77   tft.setTextSize(3);
78   tft.setCursor(15, 140);
79   tft.println("Led Azul");
80
81   tft.drawRoundRect(5, 180, 312, 50, 5, WHITE);
82   tft.drawRoundRect(255, 180, 62, 50, 5, WHITE);
83   tft.setTextColor(RED);
84   tft.setTextSize(3);
85   tft.setCursor(15, 195);
86   tft.println("Led Vermelho");
87
88   //Preenchimento OFF
89   tft.setTextColor(WHITE);
90   tft.setCursor(260, 30);
91   tft.println("OFF");
92   tft.setCursor(260, 85);
93   tft.println("OFF");
94   tft.setCursor(260, 140);
95   tft.println("OFF");
96   tft.setCursor(260, 195);
97   tft.println("OFF");
98 }
99
100 void loop()
101 {
102   TSPoint p = ts.getPoint();
103   pinMode(XM, OUTPUT);
104   digitalWrite(XM, LOW);
105   pinMode(YP, OUTPUT);
106   digitalWrite(YP, HIGH);
107   pinMode(YM, OUTPUT);
108   digitalWrite(YM, LOW);
109   pinMode(XP, OUTPUT);
110   digitalWrite(XP, HIGH);
111

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 8/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

112   if (p.z > MINPRESSURE && p.z < MAXPRESSURE)


113   {
114     p.x = tft.width() - (map(p.x, TS_MINX, TS_MAXX, tft.width(), 0));
115     p.y = tft.height() - (map(p.y, TS_MINY, TS_MAXY, tft.height(), 0));
116     if (p.y > 200)
117     {
118       Serial.print("py: ");
119       Serial.print(p.y);
120       Serial.print(" px: ");
121       Serial.print(p.x);
122
123       //Testa botao amarelo
124       if (p.x > 235 & p.x < 295)
125       {
126         if (valor_botao1 == 0)
127         {
128           tft.fillRoundRect(256, 16, 60, 48, 5, YELLOW);
129           mostra_on(269, 30);
130           valor_botao1 = !valor_botao1;
131         }
132         else
133         {
134           tft.fillRoundRect(256, 16, 60, 48, 5, BLACK);
135           mostra_off(260, 30);
136           valor_botao1 = !valor_botao1;
137         }
138       }
139
140       //Testa botao verde
141       if (p.x > 160 & p.x < 198)
142       {
143         if (valor_botao2 == 0)
144         {
145           tft.fillRoundRect(256, 71, 60, 48, 5, GREEN);
146           mostra_on(269, 85);
147           valor_botao2 = !valor_botao2;
148         }
149         else
150         {
151           tft.fillRoundRect(256, 71, 60, 48, 5,  BLACK);
152           mostra_off(260, 85);
153           valor_botao2 = !valor_botao2;
154
155         }
156       }
157
158       //Testa botao azul
159       if (p.x > 65 & p.x < 126)
160       {
161         if (valor_botao3 == 0)
162         {
163           tft.fillRoundRect(256, 126, 60, 48, 5, BLUE);
164           mostra_on(269, 140);
165           valor_botao3 = !valor_botao3;
166         }
167         else
168         {
169           tft.fillRoundRect(256, 126, 60, 48, 5,  BLACK);
170           mostra_off(260, 140);
171           valor_botao3 = !valor_botao3;
172         }
173       }
174
175       //Testa botao vermelho
176       if (p.x > 0 & p.x < 58)
177       {
178         if (valor_botao4 == 0)
179         {
180           tft.fillRoundRect(256, 181, 60, 48, 5, RED);

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 9/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

181           mostra_on(269,195);
182           valor_botao4 = !valor_botao4;
183         }
184         else
185         {
186           tft.fillRoundRect(256, 181, 60, 48, 5,  BLACK);
187           mostra_off(260,195);
188           valor_botao4 = !valor_botao4;
189         }
190       }
191     }
192   }
193 }
194
195 void mostra_on(int x, int y)
196 {
197   tft.setTextColor(BLACK);
198   tft.setCursor(x, y);
199   tft.println("ON");
200   delay(100);
201 }
202
203 void mostra_off(int x, int y)
204 {
205   tft.setTextColor(WHITE);
206   tft.setCursor(x, y);
207   tft.println("OFF");
208   delay(100);
209 }

Programa 3 – Mostrando imagens


Por último, vamos utilizar um programa para mostrar no display imagens armazenadas no cartão microSD.
Os arquivos de imagem devem estar no formato bmp, com o tamanho de 320×240.

A cada 10 segundos a imagem é trocada, transformando o Display Touch Arduino em um pequeno porta
retratos digital. Ao utilizar o programa abaixo, lembre-se de renomear as imagens no cartão para
imagem1.bmp e  imagem2.bmp, ou altere o nome dos arquivos de imagem diretamente no programa.

1 // Programa: Teste Display Touch Arduino - Imagem


2 // Alteracoes e adaptacoes: FILIPEFLOP
3  
4 #include <Adafruit_GFX.h>    // Core graphics library
5 #include <Adafruit_TFTLCD.h> // Hardware-specific library
6 #include <SD.h>
7 #include <SPI.h>
8  
9 #define LCD_CS A3
10 #define LCD_CD A2
11 #define LCD_WR A1
12 #define LCD_RD A0
13 #define SD_CS 10
14  
15 Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A4);
16  
17 void setup()
18 {
19   Serial.begin(9600);
20   tft.reset();
21   delay(500);
22   uint16_t identifier = tft.readID();
23   identifier == 0x9325;
24   tft.begin(identifier);
25   Serial.print(F("Initializing SD card..."));
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 10/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

26   if (!SD.begin(SD_CS)) {
27     Serial.println(F("failed!"));
28     return;
29   }
30   Serial.println(F("OK!"));
31 }
32  
33 void loop()
34 {
35   bmpDraw("imagem1.bmp", 0, 0);
36   delay(5000);
37   bmpDraw("imagem2.bmp", 0, 0);
38   delay(5000);
39 }
40  
41 #define BUFFPIXEL 20
42  
43 void bmpDraw(char *filename, int x, int y)
44 {
45   File     bmpFile;
46   int      bmpWidth, bmpHeight;   // W+H in pixels
47   uint8_t  bmpDepth;              // Bit depth (currently must be 24)
48   uint32_t bmpImageoffset;        // Start of image data in file
49   uint32_t rowSize;               // Not always = bmpWidth; may have padding
50   uint8_t  sdbuffer[3 * BUFFPIXEL]; // pixel in buffer (R+G+B per pixel)
51   uint16_t lcdbuffer[BUFFPIXEL];  // pixel out buffer (16-bit per pixel)
52   uint8_t  buffidx = sizeof(sdbuffer); // Current position in sdbuffer
53   boolean  goodBmp = false;       // Set to true on valid header parse
54   boolean  flip    = true;        // BMP is stored bottom-to-top
55   int      w, h, row, col;
56   uint8_t  r, g, b;
57   uint32_t pos = 0, startTime = millis();
58   uint8_t  lcdidx = 0;
59   boolean  first = true;
60  
61   if ((x >= tft.width()) || (y >= tft.height())) return;
62  
63   Serial.println();
64   Serial.print(F("Loading image '"));
65   Serial.print(filename);
66   Serial.println(''');
67   // Open requested file on SD card
68   if ((bmpFile = SD.open(filename)) == NULL) {
69     Serial.println(F("File not found"));
70     return;
71   }
72   // Parse BMP header
73   if (read16(bmpFile) == 0x4D42) { // BMP signature
74     Serial.println(F("File size: ")); Serial.println(read32(bmpFile));
75     (void)read32(bmpFile); // Read & ignore creator bytes
76     bmpImageoffset = read32(bmpFile); // Start of image data
77     Serial.print(F("Image Offset: ")); Serial.println(bmpImageoffset, DEC);
78     // Read DIB header
79     Serial.print(F("Header size: ")); Serial.println(read32(bmpFile));
80     bmpWidth  = read32(bmpFile);
81     bmpHeight = read32(bmpFile);
82     if (read16(bmpFile) == 1) { // # planes -- must be '1'
83       bmpDepth = read16(bmpFile); // bits per pixel
84       Serial.print(F("Bit Depth: ")); Serial.println(bmpDepth);
85       if ((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed
86         goodBmp = true; // Supported BMP format -- proceed!
87         Serial.print(F("Image size: "));
88         Serial.print(bmpWidth);
89         Serial.print('x');
90         Serial.println(bmpHeight);
91         // BMP rows are padded (if needed) to 4-byte boundary
92         rowSize = (bmpWidth * 3 + 3) & ~3;
93         // If bmpHeight is negative, image is in top-down order.
94         // This is not canon but has been observed in the wild.

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 11/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

95         if (bmpHeight < 0) {


96           bmpHeight = -bmpHeight;
97           flip      = false;
98         }
99         // Crop area to be loaded
100         w = bmpWidth;
101         h = bmpHeight;
102         if ((x + w - 1) >= tft.width())  w = tft.width()  - x;
103         if ((y + h - 1) >= tft.height()) h = tft.height() - y;
104         // Set TFT address window to clipped image bounds
105         tft.setAddrWindow(x, y, x + w - 1, y + h - 1);
106  
107         for (row = 0; row < h; row++) {
108           if (flip) // Bitmap is stored bottom-to-top order (normal BMP)
109             pos = bmpImageoffset + (bmpHeight - 1 - row) * rowSize;
110           else     // Bitmap is stored top-to-bottom
111             pos = bmpImageoffset + row * rowSize;
112           if (bmpFile.position() != pos) { // Need seek?
113             bmpFile.seek(pos);
114             buffidx = sizeof(sdbuffer); // Force buffer reload
115           }
116  
117           for (col = 0; col < w; col++) { // For each column...
118             // Time to read more pixel data?
119             if (buffidx >= sizeof(sdbuffer)) { // Indeed
120               // Push LCD buffer to the display first
121               if (lcdidx > 0) {
122                 tft.pushColors(lcdbuffer, lcdidx, first);
123                 lcdidx = 0;
124                 first  = false;
125               }
126               bmpFile.read(sdbuffer, sizeof(sdbuffer));
127               buffidx = 0; // Set index to beginning
128             }
129             // Convert pixel from BMP to TFT format
130             b = sdbuffer[buffidx++];
131             g = sdbuffer[buffidx++];
132             r = sdbuffer[buffidx++];
133             lcdbuffer[lcdidx++] = tft.color565(r, g, b);
134           } // end pixel
135         } // end scanline
136         // Write any remaining data to LCD
137         if (lcdidx > 0) {
138           tft.pushColors(lcdbuffer, lcdidx, first);
139         }
140         Serial.print(F("Loaded in "));
141         Serial.print(millis() - startTime);
142         Serial.println(" ms");
143       } // end goodBmp
144     }
145   }
146  
147   bmpFile.close();
148   if (!goodBmp) Serial.println(F("BMP format not recognized."));
149 }
150  
151 uint16_t read16(File f) {
152   uint16_t result;
153   ((uint8_t *)&result)[0] = f.read(); // LSB
154   ((uint8_t *)&result)[1] = f.read(); // MSB
155   return result;
156 }
157  
158 uint32_t read32(File f) {
159   uint32_t result;
160   ((uint8_t *)&result)[0] = f.read(); // LSB
161   ((uint8_t *)&result)[1] = f.read();
162   ((uint8_t *)&result)[2] = f.read();
163   ((uint8_t *)&result)[3] = f.read(); // MSB

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 12/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

164   return result;


165 }

Você pode veri car o controlador do seu display touch utilizando o programa LCD_ID_Reader. Para versões
anteriores do shield comercializado pela FILIPEFLOP, com os controladores S6D0154 e ST7781, as
bibliotecas necessárias estão neste link, assim como exemplos similares aos apresentados neste post. Para
a versão de controlador 9335, utilize a biblioteca PP_TFTLCD, disponível neste link.

  Gostou?  Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até
mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Tutorial: Comunicação pela Top 5 tutoriais com Programando o


Comunicação rede com o Módulo Arduino Arduino Pro Mini com
wireless com Arduino Ethernet ENC28J60 Cabo Conversor USB
e Módulo NRF24L01 TTL

Adilson Thomsen

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável
pelo departamento técnico da FILIPEFLOP.

← Como utilizar um adaptador wi com o Ligando Display Touchscreen no Raspberry Pi  →


Raspberry Pi

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 13/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Deixe uma resposta

Conectar com:

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentário

Nome * E-mail *

Site

Publicar comentário

210 Comentários

Tem como usar essa tela em conjunto com o modulo “Estrutura do módulo I2C” para ter mais pinos
disponíveis?

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 14/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Mangili 24 de janeiro de 2015 Responder

Se eu n incluir a biblioteca do SD, quais pinos eu poderei usar para outro uso?

Mangili 24 de janeiro de 2015 Responder

10, 11, 12 e 13 ???

Mangili 24 de janeiro de 2015 Responder

Comprei este shield mas gostaria de saber oq preciso fazer para funcionar em uma Arduino Mega.

Marcelo 28 de janeiro de 2015 Responder

Boa noite Marcelo,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 15/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Atualizamos o post com informações sobre como utilizar o shield com Arduino Mega. Isso exige
apenas uma pequena alteração na biblioteca.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 3 de fevereiro de 2015 Responder

Será que alguém já fez funcionar o diplay Display Touch Arduino Shield de 2,4″ e pode me ajudar?
Já instalei as bibliotecas na IDE e elas aparecem no menu.
Estou com um problema no arquivo “glcdfont.c” quando compilo na IDE do Arduino aparece a seguinte
mensagem:

Arduino: 1.5.8 (Windows 7), Placa:”Arduino Uno”

Adafruit_GFX.cpp:31:22: fatal error: glcdfont.c: No such le or directory


#include “glcdfont.c”
^
compilation terminated.
Erro compilando.

Este relatório deveria ter mais informações


“Mostrar saída verbosa durante a compilação”
habilitado em Arquivo > Preferências.

Desde já agradeço
Renato Lobo Rodrigues

Renato 30 de janeiro de 2015 Responder

Boa noite Renato,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 16/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Você consegue utilizar a versão 1.0.6 da IDE do Arduino ?

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 3 de fevereiro de 2015 Responder

Obrigado pela Resposta. Não sei como conseguir essa versão 1.0.6 porque no site só tem
downlod até 1.0.5. será que essa serve? as mais atuais são BETA como a minha instalação, vai
até 1.5.7. A minha pergunta hoje seria: Pra onde copio o arquivo glcdfont.c porque a IDE não
acha o mesmo no diretório library.

Renato 4 de fevereiro de 2015 Responder

Veri que se a pasta extraída tem outra pasta destro.


Tive problema com isso e também com a nomenclatura das pastas, tive que tirar o “-” e
substituir por “_”

Alessandro 8 de fevereiro de 2015 Responder

Obrigado pela ajuda. Não sei como resolver isso já tentei de tudo agora vou seguir
seu conselho. Outra coisa que também não entendo. Tenho que copiar os
arquivos, salvar e compactar, pois não consigo baixar no formato zip como diz na

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 17/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

instrução do site.

Renato 8 de fevereiro de 2015

Bom dia Renato,

Você encontra a versão 1.0.6 nesse link :

http://arduino.cc/en/Main/OldSoftwareReleases

Abraço !

Adilson – Equipe FILIPEFLOP

Paulo 21 de fevereiro de 2015 Responder

Desisnstalei a minha versão mais nova do Ariduino e Já instalei a IDE 1.0.6 e


nada!!!!! continua dando o erro. veja:
Onde eu coloco o arquivo “glcdfont.c” porque o compilador não acha ele na pasta.

This report would have more information with


“Show verbose output during compilation”
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: “Arduino Uno”
C:UserslobosoftDocumentsArduinolibrariesAdafruit_GFXAdafruit_GFX.cpp:35:22:
error: glcdfont.c: No such le or directory
C:UserslobosoftDocumentsArduinolibrariesAdafruit_GFXAdafruit_GFX.cpp: In
member function ‘void Adafruit_GFX::drawChar(int16_t, int16_t, unsigned char,
uint16_t, uint16_t, uint8_t)’:
C:UserslobosoftDocumentsArduinolibrariesAdafruit_GFXAdafruit_GFX.cpp:444:
error: ‘font’ was not declared in this scope

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 18/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Renato 21 de fevereiro de 2015

Muito Obrigado….. Consegui rodar os três exemplos com sucesso!!!

Renato 21 de fevereiro de 2015

Há alguma biblioteca que permite mostrar palavras acentuadas?

Leo Puena 3 de fevereiro de 2015 Responder

Boa noite,

Infelizmente não temos essa informação.

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 3 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 19/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Ola, meu programa nao reconhece as bibliotecas. Coloquei da forma convencional , e não resolveu.

Pedro 5 de fevereiro de 2015 Responder

Bom dia Pedro,

Para os testes, utilizamos a versão 1.0.6 da IDE. Tente nessa versão, se possível.

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 21 de fevereiro de 2015 Responder

Olá, tenho duas dúvidas. 1 – o exemplo para ler bitmap não funciona no meu, ele da erro de leitura no
cartão. 2- você tem uma tabela com as cores da tela? nos exemplos só há aquelas 8 cores.

Je erson Deschamps 11 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 20/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Bom dia Je erson,

Provavelmente o erro está relacionado ao tamanho do arquivo ou ao formato, tente gravar o bitmap
usando um programa diferente. Quanto às cores, por favor dê uma olhada nesse link :

http://wiibrew.org/wiki/U16_colors

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 21 de fevereiro de 2015 Responder

u16 code color

0x0000 Black
0xFFFF White
0xBDF7 Light Gray
0x7BEF Dark Gray
0xF800 Red
0xFFE0 Yellow
0xFBE0 Orange
0x79E0 Brown
0x7E00 Green
0x7FF0 Cyan
0x1F00 Blue
0xF81F Pink

Achei essa informação, não sei se é o su ciente 12 cores. Acho que essas são as cores primárias, não
testei ainda, mas, deve haver alguma variação entre elas.

Renato 26 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 21/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Alguém conectou o display numa placa Mega Funduino. Fiz a alteração do arquivo SWTFT.cpp e mesmo
assim não funcionou. Será que tem mais alguma alteração a fazer. No manual diz que totalmente
compatível com Arduino UNO, mas não funcionou. Grava sem nenhum erro porém ca tremendo a tela
sem imagem no exemplo 3. Será preciso alterar alguma coisa na biblioteca do SD.h, pois, funciona
perfeitamente nos outros dois exemplos. Obrigado desde já.

Renato 23 de fevereiro de 2015 Responder

Boa tarde Renato,

Testamos esse display com o Arduno Uno e o Arduino Mega, sem problemas.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

Alguém já usou o display com o Funduino MEGA 2560, eu não consegui funcionar o exemplo 3 com o
cartão, todos os outros dois exemplos funcionaram. Fiz a alteração no arquivo como pede a instrução e
nada. Será que tem mais algo a alterar na biblioteca SD.h? A propósito no Arduino UNO funcionou
perfeitamente todos os tres exemplos.Obrigado.

Renato 23 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 22/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde Renato,

Testamos esse display com o Arduno Uno e o Arduino Mega, sem problemas.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

Testei todos os exemplos e funcionaram corretamente no Uno, porém no Mega 2560 nao
consegui acessar o SD Card, testei varios pinos no #de ne SD_CS e nenhum funciona, alguem
tem uma solução para o Mega acessar o SD Card? no Uno com o pin 10 funcionou
corretamente.

FELIPE 12 de março de 2015 Responder

Ola comprei faz poucas horas o display fui testar mais nao reconhece as bibliotes como a do nosso amigo
ai em cima. minha ID eh 1.0.6 o que fazer?

Filipe 26 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 23/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Tive esses mesmos problemas, e só resolvi quando organizei as bibliotecas no diretório


“C:UserslobosoftDocumentsArduinolibraries” no meu caso Windows 7, procurei colocar todas as
bibliotecas agrupadas com as mesmas são chamadas pelo código. Antes as bibliotecas estavam junto
com o código principal ai não deu certo. se ainda persistir os erros tente fazer o mesmo que eu z.
Só falta agora eu conseguir o mesmo com a placa MEGA. Não consigo rodar o programa de bitmap,
acho que tem alguma alteração pra fazer na biblioteca Sd.h. Quem sabe alguém já passou por isso e
da uma ajudinha…

Renato 26 de fevereiro de 2015 Responder

Renato, coloquei as bibliotecas conforme orientaram e o Arduino compila sem erro algum,
mas até agora não funcionou!
De duas, uma: ou é software ou hardware.
Aparentemente o display funciona apenas coma função touch, mas nada de imagem, mesmo
veri cando no Serial Monitor que o programa está rodando normalmente sem erros.
No programa exemplo da função touch, consigo ver as coordenadas X e Y de onde pressiono a
tela.
Alguém tem alguma sugestão do que fazer para fazer funcionar esta tela ?
Ainda tenho esperança de não ter perdido meu tempo nem meu dinheiro com esta tela …

Luis Antonio Silva 2 de março de 2015 Responder

Pois é Luiz, o Software está correto para o Arduino UNO, pois já testei e funcionou, já
com o Arduino MEGA não tive o mesmo resultado com as imagens bmp, simplesmente
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 24/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

a tela ca cintilando. Penso que as bibliotecas não estão ajustadas para Arduino MEGA.
Gostaria de saber se alguém já conseguiu fazer funcionar. Como saber agora se a tela
tem defeito, no seu caso né? Aguardando ai alguma ajuda de quem mais entende…

Renato 2 de março de 2015 Responder

Boa tarde!
Recebi esse display na data de ontem e até agora não consegui fazer funcionar.

carreguei os três programas exibidos neste site e nenhum deles funcionou. A tela do LCD TFT ca
totalmente branca.

Alguém jã passou por este tipo de “problema”?

Estou utilizando o Arduino UNO R3.

Eduardo Pungilo 27 de fevereiro de 2015 Responder

Eduardo, recebi a minha tela hoje, e também estou com o mesmo problema e utilizo a Arduino
MEGA 2560.
Esse shield é diferente do anterior que adquiri no começo do ano e não funcionou como a anterior.

Marcelo Nakazaki 27 de fevereiro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 25/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa noite, pessoal !

Também estou com este problema. Nada aparece na tela.


O programa que usa o touchscreen funciona mostrando as coordenadas e pressão exercida sobre a
tela através da janela Serial, mas nada de imagem !!
Já instalei e reinstalei as bibliotecas, mas não consegui fazer funcionar ainda.
Será problema de hardware ou software ?

Luis Antonio Silva 1 de março de 2015 Responder

Boa tarde Luis,

Parece ser algum problema com o controlador do display. Estamos veri cando as alternativas
e fazendo os testes para atualizar o post.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

Boa tarde Eduardo,

Parece ser algum problema com o controlador do display. Estamos veri cando as alternativas e
fazendo os testes para atualizar o post.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 26/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Alguma resposta? Comprei e tive o mesmo problema e até hoje estou com o display parado…

Wesley Nascimento 18 de outubro de 2016 Responder

Utilizando esse shield no arduino uno, quantos pinos de I/O carão disponíveis para outros usos? E no
Mega?

Marcelo Zurita 27 de fevereiro de 2015 Responder

Estou com o mesmo problema…tela branca o tempo todo…..display não funciona, fui olhar o fabricante,
códigos exemplos fora do ar. mas fui conferir o esquemático…encontrei algo diferente,….. devo seguir a
pinagem aqui do felipe op? ou do fabricante mcufriend?

Preciso de uma certa urgência…. pois tenho que entregar um projeto e comprei esse display….

Abraços…..

Cristiano 3 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 27/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Cristiano, tudo bem?


O que você encontrou de diferente no esquemático deste LCDTFT?
Também tenho urgência nesta solução, pois o meu prazo vai começar a car apertado.

att,

Eduardo

Eduardo Pungilo 4 de março de 2015 Responder

Nada de mais…. só um erro de serigra a…. bati pino a pino….. e não faz difereça…. a pinagem
da placa está igual a do UNO…..

Já liguei pra Felipe op e até agora nenhuma solução….tbm estou com prazo muito apertado….
os dois display’s que comprei cam com a tela branca…já coloquei várias armadilhas, para ver
se em alguma parte do prog exemplo ca em loop e passou por todas, o pograma roda, até o
momento sem problema, só que o display não funciona, estou começando a chegar a essa
conclusão….to pesquisando em vários foruns e ver se encontro algo…se eu descobrir coloco
aqui….ou melhor….se alguém achar….colocar aqui….pq até agora, alguma resposta do pessoal
do blog…nada…..

Cristiano 4 de março de 2015 Responder

Boa tarde Cristiano,

Parece ser algum problema com o controlador do display. Estamos veri cando as
alternativas e fazendo os testes para atualizar o post.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder


https://www.filipeflop.com/blog/display-touch-arduino-shield/ 28/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Senhores, consegui testar e veri car que o shield funciona, porém o problema está no chipset desses
novos shields que não são os ST7781 e sim os SPFD5408A. A má notícia que esses shields não
funcionam com a biblioteca disponibilizada aqui.
Realizei os testes em uma Arduino MEGA, quem puder testar na UNO será de grande valia, vou
publicar a biblioteca e posto aqui.

Marcelo 4 de março de 2015 Responder

Boa tarde Cristiano,

Parece ser algum problema com o controlador do display. Estamos veri cando as alternativas e
fazendo os testes para atualizar o post.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

Pessoal,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 29/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Segue o link que publiquei com a biblioteca que z funcionar o shields novos:
https://www.dropbox.com/s/7awgywjbngx71df/UTFT.rar?dl=0
Não precisa modi car nada no exemplo que está na biblioteca, siga as instruções que coloquei no arquivo
README.TXT.
Funciona tanto para ARDUINO UNO quanto a MEGA sem a necessidade de modi cações.

Marcelo 4 de março de 2015 Responder

Aguardo respostas…

Marcelo 4 de março de 2015 Responder

Boa tarde Marcelo,

Estamos veri cando as alternativas e fazendo os testes para atualizar o post.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015 Responder

Oi Marcelo, tudo bem??

Estou testando aqui, mas ta rolando erro com o arquivos das “fonts”. Segue detalhe do erro
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 30/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Arduino: 1.6.0 (Windows 8), Board: “Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)”

C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:21:14: error: variable ‘SmallFont’ must be


const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype SmallFont[1144] PROGMEM={

^
C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:125:14: error: variable ‘BigFont’ must be
const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype BigFont[3044] PROGMEM={

^
C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:234:14: error: variable ‘SevenSegNumFont’
must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype SevenSegNumFont[2004] PROGMEM={

^
Error compiling.

This report would have more information with


“Show verbose output during compilation”
enabled in File > Preferences.

Yves 4 de março de 2015 Responder

Yves, executa o arduino como administrador.


Eu estou rodando essa biblioteca e pelo erro é algum parâmetro do seu arduino ou permissão
de acesso.

Marcelo 4 de março de 2015 Responder

Fala Marcelo,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 31/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Eu adicionei um const à frente do fontdatatype no arquivo defaultfonts.c, mas não teve


resposta…compilou mas manteve a tela branca.

Rodei tambem como adm e deixei sem o const, mas novamente não compilou.

Yves 4 de março de 2015 Responder

Yves, você não deveria ter modi cado o arquivo Defaultfonts.c.


Seguiu a imagem conforme anexada no arquivo?

Marcelo 4 de março de 2015

Segui sim cara..nao foi de jeito nenhum..

Sera a IDE?? to com a 1.0.6

Yves 4 de março de 2015 Responder

Estou usando a mesma IDE.

Marcelo 4 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 32/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

não to conseguindo baixar do dropbox…tem como por em outro lugar?

Cristiano 4 de março de 2015 Responder

Cristiano, mande um email pra mim que mando a library.


marcelo_nakazaki@uol.com.br

Marcelo 4 de março de 2015

Baixei a biblioteca no dropbox e testei no UNO e no Funduino Mega 2560 e dos


exemplos só funcionou o TES_LCD_ST7787.

Renato 4 de março de 2015

Marcelo, tudo bem?

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 33/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Primeiramente obrigado pela ajuda. Foi de grande valor!!


Fiz conforme você orientou e está funcionando agora… muito obrigado mesmo!

Teste feito com o Arduino UNO, depois vou testar com o NANO. Após os testes vou postar o
resulstado.

Só gostaria de pedir um favor. Você tem algum exemplo para o touch e bitmap com esse programa
que está rodando?

abraço!

Eduardo Pungilo 4 de março de 2015 Responder

Tudo bom Eduardo.


Amanhã eu disponibilizo os dois exemplos que pediu, tudo bem?

Marcelo 4 de março de 2015 Responder

Marcelão, consegui baixar via dropbox, não sei o pq não tava conseguindo na hora…mas
funcionou depois….baixei e segui as tuas orientações, funcionou que é uma blz….
provavelmente o código fonte do blog, talvez nem esteja errado, pode ser algo nas
bibliotecas que baixamos, pq o código se compilava e não dava erro, as funções das
bibliotecas até podiam estar com a sintaxe correta, agora se funcionavam???? ninguém
sabe rssssss.

Já tava achando que o display tinha defeito….mas com essas bibliotecas que mostrou e o
exemplo…já da pra começar a fazer algo….

Valeu…muito obrigado…

Abraços…..

Cristiano Closs
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 34/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Cristiano 5 de março de 2015 Responder

De nada Cristiano, o problema não está nos exemplos do post e sim nas
bibliotecas que não são compatíveis com a versão do SHIELD atual.
Qualquer coisa estamos ai

Marcelo 5 de março de 2015

Boa tarde Cristiano,

Realmente os códigos do blog e as bibliotecas não estão erradas, pois foram


testadas antes da publicação, inclusive as fotos que acompanham o post são do
circuito em funcionamento.

Vamos veri car as informações disponibilizadas pelo Marcelo e providenciar a


atualização do artigo.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 7 de março de 2015

Olá Marcelo,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 35/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Você você consegue disponibilizar os dois exemplos?


Para Bitmap e touch.

Eduardo Pungilo 6 de março de 2015 Responder

Olá Marcelo, tudo bem?

Aqueles exemplos para touch e bitmap você consegue disponibilizar?


Estou tentando fazer aqui, mas não achei informação dos pinos do touch. São os
mesmos?

abraço,

Eduardo

Eduardo Pungilo 8 de março de 2015 Responder

Olá Eduardo,

Estou um pouco atarefado com o trabalho e não consegui montar os exemplos


que precisa, mas para utilizar o Touch, use a biblioteca TouchScreen e informe a
seguinte pinagem:
YP A3 // must be an analog pin, use “An” notation!
XM A2 // must be an analog pin, use “An” notation!
YM 9 // can be a digital pin
XP 8 // can be a digital pin
No meu caso funcionou perfeitamente.
Abraços

Marcelo 9 de março de 2015

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 36/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde Marcelo!

Bom, São duas coisas.


Primeiro: Os testes com o Arduino Nano Funcionaram Perfeitamente.
Segundo: Agradeço pela pinagem do Touch mas até agora não consegui fazer funcionar.
Se puder enviar aqueles exemplos eu agradeço.

Abraço,

Eduardo Pungilo 15 de março de 2015 Responder

Eduardo,

Me desculpa por estar devendo os exemplos, mas o se você baixou a biblioteca


TouchScreen e usar a pinagem que passei funcionará sem problemas.
Encontrei a biblioteca SWTFT que funcionou com estes shields, vou disponibilizar
até amanhã se possível.

Marcelo 16 de março de 2015

Marcelo,

Tenho um display Touch 3.5″ + SD, com o controlador ili9327. Sabe me dizer se esta biblioteca
também funciona pra ele?

Obrigado!

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 37/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Felipe 6 de março de 2015 Responder

Felipe, essa biblioteca possui o driver do controlador ILI9327 porém eu não testei pra lhe
garantir o funcionamento, poderia fazer isso?

Marcelo 6 de março de 2015 Responder

Então, eu estou aqui procurando o datasheet com a pinagem deste, pois não veio
marcado na placa… Quando conseguir aqui aviso!

Felipe 6 de março de 2015 Responder

Não funcionou

Arduino: 1.6.0 (Windows 8), Placa:”Arduino Uno”

C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:21:14: error: variable ‘SmallFont’ must be


const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype SmallFont[1144] PROGMEM={

^
C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:125:14: error: variable ‘BigFont’ must be
const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype BigFont[3044] PROGMEM={

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 38/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

^
C:Program Files (x86)ArduinolibrariesUTFTDefaultFonts.c:234:14: error: variable ‘SevenSegNumFont’
must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
fontdatatype SevenSegNumFont[2004] PROGMEM={

^
Erro compilando.

Este relatório deveria ter mais informações


“Mostrar saída verbosa durante a compilação”
habilitado em Arquivo > Preferências.
nou.

Paulo 14 de março de 2015 Responder

Testei todos os exemplos e funcionaram corretamente no Uno, porém no Mega 2560 nao consegui acessar
o SD Card, testei varios pinos no #de ne SD_CS e nenhum funciona, alguem tem uma solução para o Mega
acessar o SD Card? no Uno com o pin 10 funcionou corretamente.

FELIPE 16 de março de 2015 Responder

Felipe, tive os mesmos problemas mas achei uma solução e funcionou 100%.
Acesse este link: https://learn.adafruit.com/adafruit-data-logger-shield/for-the-mega-and-leonardo

Marcelo 16 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 39/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Senhores, baixei a biblioteca desse link: https://alselectro.wordpress.com/2014/11/28/touch-screen-


tft-shield-for-arduino-uno/
Elas funcionaram 100% com os exemplos e instruções desde post.

Marcelo 16 de março de 2015 Responder

Recebi o display ontem 17/03/2015 e segui todas os passos indicados e com bibliotecas antigas
e novas e ainda assim não funcionou cou a tela branca tentei de tudo e nada será que o
controlador do display é outra alem dos indicados nos posts, O que posso fazer a respeito?
preciso do display

RICARDO 18 de março de 2015 Responder

Valeu Marcelo, agora funcionou certinho aqui. Muito Obrigado!

FELIPE 18 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 40/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Marcelo,

Baixei esta biblioteca, segui o passo a passo, atualizei os nomes conforme indicado e
simplesmente NÃO funcionou !!

Você foi minha última esperança com este Shield.

É a primeira vez que compro um hardware que não funciona com o Arduino devido a alguma
incompatibilidade ou erro nas bibliotecas.

Se souber de alguma outra informação, por favor nos avise.

Grato,
Luís Antonio

Luis Antonio Silva 22 de março de 2015 Responder

Marcelo,

Seu chip do display é o s6d0154?

Abs.

Rafael Nunes 8 de abril de 2015 Responder

Olá, boa noite a todos.


Gostaria de saber qual o procedimento ou programa para calibrar a tela, pois quando teclo nos
quadradinhos nada acontece. Só quando teclo em outro canto é que funciona. A tela está descalibrada?

Aguardo resposta.

Grato

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 41/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Marco Antonio 25 de março de 2015 Responder

Pessoal , siga o passo-a-passo deste site https://alselectro.wordpress.com/2014/11/28/touch-screen-tft-


shield-for-arduino-uno/ funcionou perfeitamente com os exemplos 1 e 2 do FilipeFlop com a Versão de IDE
1.6.1 no Windows 8.1 32 bits. , Arduino UNO , No exemplo 3 não rolou.

Fabio Bica 25 de março de 2015 Responder

Caros,

Vocês já tem uma biblioteca mais atual para fazer o display funcionar? Com estas acima nenhum dos 3
exemplos funcionam.

Rafael Nunes 30 de março de 2015 Responder

Rafael,

Consegui colocar para funcionar usando a biblioteca https://github.com/adafruit/TFTLCD-Library no


lugar da SWTFT, e ainda sim precisei abrir o arquivo Adafruit_TFTLCD e forçar o método readID a
retornar 0x9541 ao invés de deixar ele descobrir, que é o que ele se propõe a fazer. Meu desa o
agora é descobrir o porquê da imagem estar aparecendo espelhada.

Rubens Gadelha 26 de abril de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 42/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Rafael,

Consegui colocar para funcionar usando a biblioteca https://github.com/adafruit/TFTLCD-


Library no lugar da SWTFT, e ainda sim precisei abrir o arquivo Adafruit_TFTLCD e forçar o
método readID a retornar 0x9341 ao invés de deixar ele descobrir, que é o que ele se propõe a
fazer. Meu desa o agora é descobrir o porquê da imagem estar aparecendo espelhada.

Rubens Gadelha 26 de abril de 2015 Responder

Caros, desculpe a confusão. Nesse segundo comentário eu quis apenas reti car o ID que
é 0x9341 e não 0x9541 como eu dissera no primeiro comentário.

Rubens Gadelha 26 de abril de 2015 Responder

Obrigado Rubens, vou testar essa. Eu z funcionar o display mas a uma BMP não tem jeito.
Ficam só traços na tela.

Rafael Nunes 26 de abril de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 43/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boma dia amigo, como vc conseguiu fazer ele retornar? estou tendo problemas, se puder me
dar uma dica agradeço.

cleverson 24 de dezembro de 2015 Responder

Se não quiser alterar a biblioteca pode alterar nos exemplos:


substitua
tft.begin(identi er);
por
tft.begin(0x9341);

Rubens Gadelha 26 de abril de 2015 Responder

Boa tarde. É possível utilizar este display com o arduino pro mini?

Júnior Áli 30 de março de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 44/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa noite Junior,

Não testamos nessa con guração mas teoricamente funciona.

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 31 de março de 2015 Responder

Bom dia, como faço para criar um painel de senha no touch screen?

Ijanai Filho 31 de março de 2015 Responder

Boa dia, Tal como o exemplo tenho um arduino uno+tft2.4 e funciona como terminal para outros projetos
com arduino (Através do RxTX). Mas gostava tambem que funcionasse como terminal para o raspberry pi2.
Isto é a informação do terminal raspberry aparecesse no display TFT com arduino ligado por serial.. Existe
alguma maneira?

RSousa 23 de abril de 2015 Responder

A IDE não encontra o SWTFT.h

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 45/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Arduino: 1.6.3 (Windows 8.1), Placa:”Arduino Uno”


graphicstest.pde:9:48: fatal error: SWTFT.h: No such le or directory
compilation terminated.
Erro compilando.

Fiz o download e descompactei na pasta ‘libraries’, conforme indicado.


O que devo fazer para resolver esse problema?

marcio 27 de abril de 2015 Responder

Boa Tarde.

Gostaria de saber se é possível Utilizar o TouchScreen, pois pelas fotos este display não contem os pino YP
YM XP e XM, alguém poderia responder?

Mateus Paes 28 de abril de 2015 Responder

Boa noite Mateus,

Por favor dê uma olhada na tabela, ela contém a indicação dos pinos YP, YM, XP e XM (linhas
destacadas em vermelho).

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 22 de maio de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 46/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Ola !Comprei o display aqui no FlipFlop mas estou com o defeito da tela branca. o programa compila
devidamente , mas a tela do display so ca branca ! alguém já conseguiu resolver esse problema??

iury 5 de maio de 2015 Responder

Olá! resolvi o problema da tela branca com essa lib : https://github.com/samuraijap/TFTLCD-Library

carreguei o exemplo graphicstest e rodou numa boa !

espero ter ajudado . valeu !

iury 5 de maio de 2015 Responder

Para funcionar o exemplo dos botões tive que arrumar a stretch

Wiliam 9 de maio de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 47/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Utilizando desse dispositivo quais portas cam livres para uso no arduino Uno?

Abraços
Rodrigo Cintra

Rodrigo Cintra 7 de maio de 2015 Responder

Alguém ainda está com o display espelhado? Estive com esse problema e consegui resolver.

Eramis 18 de maio de 2015 Responder

Olá…

Estou como meu espelhado, como resolver?

Obrigado.

Anderson 31 de maio de 2015 Responder

Olá,

Eu estava tentando rotacionar a tela e consegui deixar a imagem espelhada, para isso, lá na
pasta UTFTtft_driversspfd5408a tem um arquivo chamado initlcd.h

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 48/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Neste arquivo tem todos o setup inicial do LCD, inclusive sobre o modo de varredura do
endereçamento do LCD, na linha:

LCD_Write_COM_DATA(0x03,0x1030);

Se vc for lá no datasheet do LCD, na pág 46/194 tem toda tabela de instruções.


Note que na linha mencionada acima, é feito um endereçamento para a posição 0x03 e com
valor 0x1030.

Esse valor 0x1030 em binário (usando a calc em modo programador) ca com valor
1000000110000 e podemos notar com a ajuda do datasheet, na tabela 28, que o endereço de
Reg.No para 0x03 tem bits de nome BGR ID1 e ID0 que batem com a posição que está com
valor binário 1.

Com isso, na pag 58/194 temos o descritivo dos bits ID1 e ID0, que atuam na varredura da tela,
em conjunto com o bit AM.

Resumindo, para deixar espelhado ou não, basta mudar o valor de 0x1030 para algo como
0x1020 ou 0x1010 ou 0x1000 isso vai fazer mudança nos bits:

0x1030 = 1000000110000
0x1020 = 1000000100000
0x1010 = 1000000010000
0x1000 = 1000000000000

Ou seja o valor de ID1, ID0 e AM pode fazer o lcd mostrar espelhado.

Leiam sempre o datasheet, de qualquer coisa, mesmo que seja banal como um LM35, tem
muitos detalhes que podem ajudar muito, talvez até para um projeto futuro!

Boa sorte!

Robson 24 de julho de 2015 Responder

Valeu Robson !

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 24 de julho de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 49/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Para que serve o botão na frete do display? Já vi sem. Obrigado

Jose Carlos 8 de junho de 2015 Responder

Boa tarde José,

Esse botão é um botão de reset para o Arduino.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 10 de junho de 2015 Responder

Ola Pessoal,
Alguém sabe com fazer para rotacionar as uma determinada informação na tela deste display?
Por exemplo: todo o meu projeto esta aparecendo no display de forma vertical, mas as informações dos
sensores de temperatura estão aparecendo na horizontal.
Abraço.

Eduardo 18 de julho de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 50/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde Eduardo,

Depois do comando de “print” do texto, coloque o angulo de rotacao no nal. Por exemplo na linha:

myGLCD.print(“FILIPEFLOP”, 15, 20);

Para fazer com que o texto rotacione 90 graus, adicione:

myGLCD.print(“FILIPEFLOP”, 15, 20,90);

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 20 de julho de 2015 Responder

Ola Adilson,

Ajudou muito,

Obrigado!

Eduardo

Eduardo 20 de julho de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 51/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Pessoal,
Tenho mais uma dúvida com relação ao display.
Existe alguma forma de fazer a transição entre as imagem serem mais rápidas?

Eduardo

Eduardo 20 de julho de 2015 Responder

Bom dia Eduardo,

Desconheço, mas talvez se você utilizar alguma outra biblioteca com um algoritmo mais enxuto,
melhore um pouco. Não analisei ainda se o gargalo está no controlador do display ou no Arduino,
mas se você puder, teste o seu projeto com um Arduino Mega, que tem clock de 16MHz.

Uma solução que pode ajudar, dependendo do seu projeto, é atualizar apenas a parte da tela que
você precisa, e não a tela inteira.

Abraço

Adilson – Equipe FILIPEFLOP

Paulo 21 de julho de 2015 Responder

Ao que tudo indica, a limitação está no Arduino, já que no datasheet do controlador do display,
na pag 28/194 menciona-se uma taxa de frame de 60Hz, assim, o Arduino não tem velocidade
o su ciente para operar nesta velocidade, na pag 30/194, é citado um tempo mínimo de 2ns
para os sinais RS,RW to CSB, E hold, 2ns são 500MHz, ou seja, talvez com o DUE seja possível
um melhor desempenho, ainda assim longe de ser o ideal. Talvez seja possível utilizar um
controlador de LCD de monitor para poder rodar vídeos neste LCD.

Robson 22 de julho de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 52/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Encontrei algo relacionado com o problema do Eduardo e o meu, velocidade e orientação:

http://misc.ws/2013/11/08/touch-screen-shield-for-arduino-uno/

Boa sorte!

Robson 23 de julho de 2015 Responder

Gente, preciso de uma coisa que é basicamente simples para um GLCD, rotacionar a tela! Mas não para
car girando. Sei que cada pixel é controlado de forma independente, o que acontece é estou embarcando
um Tacômetro, em um Fusca, mas as letras são escritas justamente na posição que o motorista não tem
bom contraste, já o passageiro não teria problema. Ao deixar o display em Landscape ao olhar pela
esquerda o LCD ca esbranquiçado e di culta a visualização, porém ao olhar pela direita a imagem ca
aceitável. Claro que seria bom olhar o LCD de frente, mas ao xar o LCD na ranhura que seria instalado o
rádio, não tem outro jeito. Preciso rotacionar a tela toda 180 graus, mas sem gambiarra, alguém sabe em
que parte da biblioteca/driver posso inverter a sequencia de envio dos dados? Sei que é possível, e conto
com a sua experiencia! Obrigado desde já!

Robson 22 de julho de 2015 Responder

Conforme já citei logo abaixo,

Encontrei algo relacionado com o problema de, velocidade e orientação:

http://misc.ws/2013/11/08/touch-screen-shield-for-arduino-uno/

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 53/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Eu já tinha visto no datasheet sobre isso e estava tentando implementar mudanças na biblioteca,
mas acabei achando esse post mencionado acima, embora esteja em Inglês, acredito que valha
apena ser lido.

Boa sorte!

Robson 23 de julho de 2015 Responder

Não precisa alterar a Lib

tft.setRotation(0) //usar ele na horizontal


ou
tft.setRotation(1)//usar ele na vertical

William 24 de julho de 2015 Responder

William – 24 de julho de 2015 ,

Acho que não entendeu meu problema, não queria usar em ‘pé’ (PORTRAIT) ou ‘deitado’
(LANDSCAPE).

Precisava sim usar ‘deitado’, mas ainda assim, ‘de ponta cabeça’.

Como tem bastante gente internet afora comentando que a imagem ca espelhada, já
aproveitei e adicionei a opção de espelho (Mirror).

Esses códigos foram testados em lcd spfd5408a, e não deve ocasionar interferência em outros,
bastando não usar as opções estendidas.

Para quem quiser fazer isso, segue a receita, com estas alterações dá para fazer “des-espelhar”
(caso já esteja espelhado) e girar para as 4 posições:
PORTRAIT & NORMAL

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 54/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

LANDSCAPE & NORMAL


PORTRAIT & ROTATE
LANDSCAPE & ROTATE

—————————————————————————-
Usage:
myGLCD.InitLCD(LANDSCAPE, ROTATE, NORMAL); // InitLCD(PORTRAIT/LANDSCAPE,
NORMAL/ROTATE, NORMAL/MIRROR)
—————————————————————————-

Modi cations on lib utft

File:
UTFTUTFT.cpp.cpp

Routine:
void UTFT::InitLCD(byte orientation)

Replace with:
void UTFT::InitLCD(byte orientation, byte rotate, byte mirror)
—————————————————————————-
File:
UTFTUTFT.cpp.cpp

(New) Routine:
void UTFT::InitLCD(byte orientation, byte rotate, byte mirror)

Locale:
orient=orientation;

Add:
rotate_byte=rotate;

mirror_byte=mirror;
—————————————————————————-
File:
UTFTUTFT.cpp.cpp

Routine:
void UTFT::setXY(word x1, word y1, word x2, word y2)

Locale (Remove):
if (orient==LANDSCAPE & rotate_byte==NORMAL)
{
swap(word, x1, y1);
swap(word, x2, y2);
y1=disp_y_size-y1;

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 55/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

y2=disp_y_size-y2;
swap(word, y1, y2);
}

Replace with:
if (orient==LANDSCAPE & rotate_byte==NORMAL)
{
swap(word, x1, y1);
swap(word, x2, y2);
y1=disp_y_size-y1;
y2=disp_y_size-y2;
swap(word, y1, y2);
}
else if (orient==LANDSCAPE & rotate_byte==ROTATE)
{
swap(word, x1, y1);
swap(word, x2, y2);
x1=disp_x_size-x1;
x2=disp_x_size-x2;
swap(word, x1, x2);
}
else if (orient==PORTRAIT & rotate_byte==ROTATE)
{
x1=disp_x_size-x1;
x2=disp_x_size-x2;
y1=disp_y_size-y1;
y2=disp_y_size-y2;
swap(word, x1, x2);
swap(word, y1, y2);
}
—————————————————————————-
File:
UTFTUTFT.h

Routine:
void InitLCD(byte orientation=LANDSCAPE);

Replace with:
void InitLCD(byte orientation=LANDSCAPE, byte rotate=NORMAL, byte mirror=NORMAL);
—————————————————————————-
File:
UTFTUTFT.h

(New) Routine:
void InitLCD(byte orientation=LANDSCAPE, byte rotate=NORMAL, byte mirror=NORMAL);

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 56/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Locale:
#de ne PORTRAIT 0
#de ne LANDSCAPE 1

Add:
#de ne NORMAL 0
#de ne ROTATE 1
#de ne MIRROR 1
—————————————————————————-
File:
UTFTUTFT.h

Locale:
byte orient;

Add:
byte rotate_byte;
byte mirror_byte;
—————————————————————————-
File:
UTFTtft_driversspfd5408ainitlcd.h

Locale (Remove):
LCD_Write_COM_DATA(0x03,0x1030);

Replace with:
if (mirror_byte==NORMAL)
{
if (orient==LANDSCAPE & rotate_byte==NORMAL)
{
LCD_Write_COM_DATA(0x03,0x1030); // Original: 0x1030 AM=”0″ Horizontal Update ID[1:0] =
“11” H: increment V: increment
}
else if (orient==LANDSCAPE & rotate_byte==ROTATE)
{
LCD_Write_COM_DATA(0x03,0x1010); // 0x1010 AM=”0″ Horizontal Update ID[1:0] = “01” H:
decrement V: increment
}
else if (orient==PORTRAIT & rotate_byte==ROTATE)
{
LCD_Write_COM_DATA(0x03,0x1000); // 0x1000 AM=”0″ Horizontal Update ID[1:0] = “00” H:
decrement V: decrement
}
else // (orient==PORTRAIT & rotate_byte==NORMAL)
{
LCD_Write_COM_DATA(0x03,0x1030); // Original: 0x1030 AM=”0″ Horizontal Update ID[1:0] =
“11” H: increment V: increment
https://www.filipeflop.com/blog/display-touch-arduino-shield/ 57/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

}
}
else // (mirror_byte==MIRROR)
{
if (orient==LANDSCAPE & rotate_byte==NORMAL)
{
LCD_Write_COM_DATA(0x03,0x1000); // 0x1000 AM=”0″ Horizontal Update ID[1:0] = “00” H:
decrement V: decrement
}
else if (orient==LANDSCAPE & rotate_byte==ROTATE)
{
LCD_Write_COM_DATA(0x03,0x1030); // Original: 0x1030 AM=”0″ Horizontal Update ID[1:0] =
“11” H: increment V: increment
}
else if (orient==PORTRAIT & rotate_byte==ROTATE)
{
LCD_Write_COM_DATA(0x03,0x1010); // 0x1010 AM=”0″ Horizontal Update ID[1:0] = “01” H:
decrement V: increment
}
else // (orient==PORTRAIT & rotate_byte==NORMAL)
{
LCD_Write_COM_DATA(0x03,0x1020); // 0x1020 AM=”0″ Horizontal Update ID[1:0] = “10” H:
increment V: decrement
}
}
—————————————————————————-
Boa sorte!

Robson 25 de julho de 2015 Responder

Uhuuuu!!!

Consegui fazer o exemplo 3 funcionar, alterando a sub rotina dispRaw:

_____________________________________________
void dispRaw(UTFT *utft, SdFile* inFile)
{

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 58/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

#de ne SCREEN_WIDTH 320


#de ne SCREEN_HEIGHT 240

uint16_t buf[SCREEN_WIDTH];
cbi(utft->P_CS, utft->B_CS);
for (int y = 0; y setXY(0, y, SCREEN_WIDTH, y);
for (int x = SCREEN_WIDTH – 1; x >= 0; x–) {
byte h = inFile->read();
byte l = inFile->read();
buf[x] = ((uint16_t)h << 8) | l;
}
for (int x = 0; x LCD_Write_DATA(*(p + 1), *p);
}
}
sbi(utft->P_CS, utft->B_CS);
}
_____________________________________________
Boa sorte!

Robson 26 de julho de 2015 Responder

Olá, estou tento di culdades para lidar com os novos Display’s com controlador tm 74hc245, alguém
poderia me ajudar? SOCORRO

Henrique 28 de julho de 2015 Responder

oi,
Li com interesse o seu tutorial e testado. tudo funciona perfeitamente.
Muito obrigado pelo excelente trabalho realizado.
Agora eu gostaria de fazer uma pergunta.

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 59/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Gostaria de usar esta exibição para mostrar dados de vários sensores I2C
Por exemplo, um RTC DS-1307
Meu problema é o seguinte, porque, em primeiro lugar, há a seguinte declaração

UTFT myGLCD (UNO_24, A2, A1, A3, A4);

Mas o pino A4 eu preciso usá-lo como o módulo RTC SDA como devemos fazer para superar este
problema?

Um exemplo disso seria muito bem-vindo.

Tonino 29 de julho de 2015 Responder

Boa tarde,

Realmente isso é um problema ao utilizar o shield com o Uno. Penso em 2 soluções:

– Utilizar um Arduino Mega. Nessa placa o SDA e SCL estão nos pinos 20 e 21
– Não utilizar o TFT como shield, fazer a ligação entre o Arduino e o display por meio de jumpers, e
modi car a biblioteca para que esta não use o pino A4, se o seu projeto permitir.

Abraço

Adilson – Equipe FILIPEFLOP

Paulo 7 de agosto de 2015 Responder

gostaria de ajuda com o tft2.4 quero exibir as leituras de um sensor de uxoSensor de Fluxo de Água YF-
S201.

mauriliano 29 de julho de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 60/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde!

Baixei as bibliotecas e carreguei os programas no Arduíno, no entanto o display não sai da tela branca, ele
pode estar dani cado?

Marcus Vinícius 30 de julho de 2015 Responder

Certeza que o controlador é o que diz no tópico?

Henrique 6 de agosto de 2015 Responder

Obrigado Henrique,

Realmente pode ser esse o problema.

Marcus, você chegou a alterar a linha 16, alterando o UNO_24 para UNO_26 ?

Abraço

Adilson – Equipe FILIPEFLOP

Paulo 7 de agosto de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 61/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Olá, não consegui funcionar o touch como era pra fazer o exemplo 2, será que o touch da minha placa está
estragado?

Henrique 8 de agosto de 2015 Responder

Eita, acabei de perceber que a IMAGEM está virada, e o touch não, como resolvo isso?

Henrique 8 de agosto de 2015 Responder

Pessoal, tem um código para rotacionar as imagens que aprece na tela, no SEGUNDO projeto? é que o
touch ta invertido, então ou eu inverto o touch, ou as escritas, mas seria bem mais facil se tivesse um tipo
do TFT “tft.setrotate(0);”

Alguem sabe um comando tipo esse para o MyGLCD?

Henrique 8 de agosto de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 62/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

tft.setRotation(0) //usar ele na horizontal


ou
tft.setRotation(1)//usar ele na vertical

eu 8 de agosto de 2015 Responder

Mas tft é outra biblioteca, estamos usando a MyGLCD, eu já tentei isso aí e não deu certo :/

Henrique 8 de agosto de 2015 Responder

oi alguem da ipe op pode me esclarecer uma duvida , eu comprei o tft2.4 o sensor de uxo para usar os
dois juntos ja que na pagina da loja diz que as portas d2 e d3 estariam livres e na verdade nao estão, tem
como utilizar as portas d10, d11, d12, e d13 no lugar das d2,d3,d4,d5 posso ligar o tft por cabo para poder
usar essar portas

mauriliano 11 de agosto de 2015 Responder

Use a porta A5, que eu saiba é a única livre.

Henrique 12 de agosto de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 63/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Bom Dia;
Estou tendo di culdades…
Estou testando em um Arduino Mega…

Caso o controlador do seu display seja o ST7781, altere a linha 16 do programa de UNO_24 para UNO_26:

Deixando em UNO_24, o Display ca Branco…


Caso colocar UNO_26, o display estranho…
http://postimg.org/image/elqv1zr3d/

O que posso fazer para resolver o problema ?

Saimond Schroder 15 de agosto de 2015 Responder

Bom dia, Tenho um modulo display destes, consegui utiliza-lo adequadamente com arduino mega, só
estou tendo problemas com o touch. Criei botoes na tela, mas nem sempre que toco a tela os botoes
respondem, ou demoram a responder. Alguém teve esse problema ou sabe como resolver? Seria problema
com ajuste de sensibilidade?

Tiago Colombi 24 de agosto de 2015 Responder

Bom dia Tiago,

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 64/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Esse display touch é do tipo resistivo, você precisa pressionar um pouco a tela para que seja
efetuado o contato, é diferente da maioria das telas touch de smartphones, por exemplo, que usam
o tipo capacitivo.

Recomendo a leitura deste artigo para que você veja a diferença entre as duas tecnologias:
http://www.techtudo.com.br/artigos/noticia/2013/06/qual-e-diferenca-entre-tela-capacitiva-e-tela-
resistiva-entenda.html

Abraço!

Adilson – Equipe FILIPEFLOP

Paulo 24 de agosto de 2015 Responder

Boa noite,segundo o bloco de pinagem do shield todos os pinos do arduino uno são utilizados exeto A5 e
A6.
gostaria de saber se posso usar esse pinos em outra função?desde ja obrigado.

sidinei 7 de setembro de 2015 Responder

Eu posso usar o reset do lcd em outra porta? se sim qual? (conectando tudo por fora) pra que a porta a4 e
a5 quem livres pra uma comnucação i²c
é muito complicado mudar isso na biblioteca?

werner 1 de outubro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 65/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde,

A princípio, você só precisa mudar essa linha, alterando o último parâmetro (LCD_RESET), que está
com o valor A4:

PP_TFTLCD tft(A3, A2, A1, A0, A4);

Abraço

Adilson – Equipe FILIPEFLOP

Paulo 1 de outubro de 2015 Responder

Olá, este display funciona com o due? Perdoem a ignorância, sou novo neste mundo….

Leonardo 19 de outubro de 2015 Responder

Bom dia Leonardo,

Segundo o fornecedor, funciona apenas com Uno e Mega.

Abraço

Adilson – Equipe FILIPEFLOP

Paulo 21 de outubro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 66/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa noite, galera

Estou com um problema com o meu display, é da MCU friend, driver IL9341, z todas as telas e joguei no
UNO funcionou perfeitamente, quando fui jogar no MEGA cou a tela branca, ai fui buscar na internet e
achei uma biblioteca modi cada para usar com o MEGA, funcionou, porém todas as telas estão espelhadas
e as cores estão estranhas.
Como posso resolver isso??

Estou usando a biblioteca Adafruit

André 24 de outubro de 2015 Responder

Adquirir este display, com o controlalador 74hc245. Qual biblioteca devo baixar neste caso ?

paulo 5 de novembro de 2015 Responder

Boa tarde Paulo,

Acho que você está confundindo o controlador. o 74HC245 não é controlador de display.

Abraço!

Adilson – Equipe FILIPEFLOP

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 67/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Paulo 20 de novembro de 2015 Responder

Teria como usar no Mega?

Nicolas 26 de novembro de 2015 Responder

Olá senhores. O que exatamente precisa ser mudado na biblioteca para que funcione no arduino mega?
Nada cou claro aqui.

Obrigado

Leonardo 9 de dezembro de 2015 Responder

O Lcd esta espelhado- Usei o esquema aqui dos comentarios para alterar. Funcionou em partes. As letras
estao normais agora mas a escrita começa da direita para esquerda. Entao tudo que escrevo ca de trás
pra frente. Exemplo : FILIPEFLOP ca POLFEPILIF. O que posso faze para alter isso?

Rodrigo SiIva 10 de dezembro de 2015 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 68/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Comprei um LCD destes e só da problemas, a unica solução é devolver ao vendedor ou LIXO.

Marco 10 de dezembro de 2015 Responder

Você não tem o que fazer da vida que não seja reclamações idiotas como esta?

Pegatrouxas 30 de abril de 2016 Responder

Sou igualzinho a você amiguinho, mas com uma diferença… Eu não preciso vender porcarias
que não funcionam para ganhar a vida. Boa sorte .

Marco 1 de maio de 2016 Responder

Alias, o seu nome cou justinho… Pegatrouxas

Marco 1 de maio de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 69/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Olá! Estou para comprar esse Display, porém preciso saber se roda no Arduino DUE da mesma forma que
roda no arduino MEGA e se para isso é necessário fazer alguma mudança? Desde já muito obrigado!

Rafael Buzanelo 4 de janeiro de 2016 Responder

Boa tarde Rafael,

Segundo o fornecedor, esse display serve apenas no Arduino Uno ou Mega.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 6 de janeiro de 2016 Responder

meu display veio com controlador ili9335 mais ca somente com a tela branca, quando carreguei o
programa ele respondia modelo C0C0 mais depois do reset do display coloquei um delay de 100ms e ele
passou a responder 9335, mais o display continua branco. será que ainda tem problema de inicialização?

alexandro 7 de janeiro de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 70/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Bom dia Alexandro,

Tente usar a biblioteca deste link: https://github.com/ lipe op/Bibliotecas-Display-Touch

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 8 de janeiro de 2016 Responder

Onde encontro os códigos antigos antigos? que utilizava myGLCD. ????

gabriel 14 de janeiro de 2016 Responder

Eu estou utilizando um módulo IR com Arduino Mega, gostaria de inserir esse display para exibição de
algumas informações da automação.
A biblioteca de IR usa a porta 3 para emissão de sinais de IR, e não encontrei um meio de mudar essa
porta.
No caso do shield do display tem como eu customizar a porta de comunicação que será usada na
biblioteca?

João Paulo 19 de janeiro de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 71/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Boa tarde!

Estou pensando em comprar este display para um projeto e gostaria de saber se eu consigo utlilizar ele (o
display), no arduino UNO e um NRF24L01?

Obrigado

André 20 de janeiro de 2016 Responder

Boa tarde André,

Creio que não, a não ser que vc faça alguma alteração na biblioteca e/ou no hardware, pois os dois
componentes compartilham os mesmos pinos.

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 20 de janeiro de 2016 Responder

Adilson, obrigado.

Eu preciso de algumas portas disponiveis, além do display.

No exemplo acima, tem os botões coloridos acionados pelo touch no display.


Gostaria de saber se existem estas portas disponiveis. Ou seja, eu aperto o touch no botão
amarelo e gostaria de acionar um led amarelo, pressiono o botão touch azul e aciono um led

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 72/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

azul na saída do arduino uno, e assim por diante.

Minha dúvida é: eu consigo fazer isso usando este display?

Abraços
André

André 22 de janeiro de 2016 Responder

Venho compartilhar com vocês meu trabalho de conclusão de curso em Engenharia Elétrica que envolveu
Arduino e este display.
Meu TCC teve como tema um Protótipo de controle de velocidade de baixo custo para um automóvel.
O link do vídeo que segue abaixo, trata de um Computador de bordo com piloto automático.
https://youtu.be/VnX9I5nh4Xk
Outros dois videos relacionados com meu TCC que são:
Atuação do servo motor do piloto automático
https://youtu.be/8y4oyPlSIlQ
Sistema de controle de velocidade para um veículo carburado
https://youtu.be/UDkmSyFs0Io
Espero que gostem.

Eramis 23 de janeiro de 2016 Responder

Estou estranhando o Display. Ele funciona, mas é MUITO LENTO para desenhar. O mesmo código foda
uido usando o LCD Nokia 5110 (que também comprei na FILIPEFLOP) roda muitissimo mais lento ( algo
como 1 frame por segundo). Existe alguma con guração que possa ser feita para acelerar o desempenho
grá co?

Daniel Monteiro 29 de janeiro de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 73/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Mais uma pista: o problema é em limpar a tela mesmo – o resto funciona bem. Olhando o código da
biblioteca, z algumas otimizações em writeData_unsafe e até consegui ALGUM ganho (mas posso
estar fazendo bobagem sem saber), mas não o su ciente.

Se entendi direito, o problema é que meu programa precisa transmitir 320 x 240 x 2 bytes para
limpar a tela. Eu poderia apenas limpar onde desenho? Talvez, mas o experimento que estou
fazendo não me permite prever muito onde vou “sujar” a tela. E meu medo é que o gasto de tempo
calculando isso fosse superar o tempo de transmitir tudo de uma vez.

Daniel Monteiro 29 de janeiro de 2016 Responder

Me pergunto se é possível aumentar a taxa de transferência – imagino que isso aumente a


taxa de quadros por segundos?

Daniel Monteiro 2 de fevereiro de 2016 Responder

Daniel Monteiro, estive trabalhando com este tipo de tela e me deparei com este mesmo
problema seu. Comparei com um display 16×2 onde vc manda escrever uma palavra sem se
preocupar com o que estava escrito antes, este display 16×2 não é grá co, e sempre que vai
escrever ele apaga o que havia escrito. O problema do display grá co, é que apagar o que foi
escrito anteriormente ele não faz sozinho, é necessário o programador fazer isto. O código que
z para a escrever uma palavra na tela e depois car atualizando de forma rápida, foi da
seguinte forma:
De ne uma variável para a palavra, e esta palavra só poderá ser atualizada por uma rotina. A
rotina escreverá a palavra antiga com a cor de fundo, “apagando” a variável da tela, e

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 74/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

posteriormente escreve a palavra nova com a cor da palavra.


Exemplo:
A cor de fundo é verde, e escrevi a a palavra “2015” em vermelho.
para trocar a palavra “2015” para “2016” basta
escrever a palavra “2015” novamente com verde (cor do fundo), e
escrever a palavra “2016” em vermelho novamente.

Quando vou fazer carregamento de imagem, o meu display é lento também.


Penso que o gargalo seja o processador do Arduino que é “lento”.
Espero ter ajudado.

Eramis 3 de fevereiro de 2016 Responder

Pessoal , não consigo fazer funcionar meu display TFT 2.4″. Fica branca a tela. Tentei com a versão 1.06
Arduino Ide e tambem não funcionou. Não sei mais o que fazer. Agradeço Ajuda.

Hernan 16 de fevereiro de 2016 Responder

Bom dia Hernan,

Esse display foi comprado recentemente ? Tente as bibliotecas deste link:


https://github.com/ lipe op/Bibliotecas-Display-Touch

Abraço.

Adilson – Equipe FILIPEFLOP

Paulo 17 de fevereiro de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 75/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Bom dia. Comprei meu dislay agora em dezembro. 2,4″ TFT LCD Shield (35702). Troquei as
bibliotecas para as que vcs me sugiriram. A tela nao ca mais branca e sim cheia de pontinhos
coloridos. Agradeço uma dica se ainda tiver algo a fazer. Valeu pessoal FELIPEFLOP.

Hernan 17 de fevereiro de 2016 Responder

Boa tarde Hernan,

Realmente esse display é o mais atual que temos, e o post do blog corresponde à esse
modelo. Pode ser que o seu display esteja com algum defeito.

Se você já fez todos os testes e constatou que o defeito está no display, peço que entre
em contato pelo email vendas@ lipe op.com para orientação sobre o procedimento de
troca/reembolso, ok?

Abraço!

Adilson – Equipe FILIPEFLOP

Paulo 17 de fevereiro de 2016 Responder

Olá! Gostaria de saber se posso usar livremente as portas D 10, 11, 12, 13 para conectar outros periféricos
já que não pretendo usar cartão SD (vou conectar a shield no arduino usando jumpers, aí posso deixar tais
portas livres)

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 76/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Luiz Fernando Farias Serravalle 10 de março de 2016 Responder

Eu faço isso. Tomando o cuidado de não usar a biblioteca do SDcard durante um CTRL+C da vida.

Marcio de Araujo Silveira 1 de setembro de 2016 Responder

Amigo, o meu shield funciona mas com as cordenadas invertidas no exemplo tft paint, pra escolher uma
cor por exemplo eu teria que ir no expelho da cor, ou seja, no lado oposto para poder escolher e no
desenho a mesma coisa, ja viu algo parecido?

Guilherme 20 de março de 2016 Responder

Quanto você paga pelo serviço?

Pegatrouxas 30 de abril de 2016 Responder

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 77/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Ola pessoal, comprei um kit arduino uno e um display lcd 2.4, mais nao aprendi ainda aprogramar. gostaria
de saber se algum de voces podem fazer um pequeno projeto para mim que consite no seguinte:
No lado esquerdo da tela. um numero e do lado direito um botao pra pressionar que vai incrementar esse
numero ate 6, quando chegar em 6 volta pra 0 . tem de começar por 0 e o numero grande do lado
esquerdo. bem simples. se puderem enviar para leomarcleudson@gmail.com co grato.

LEOMAR CLEUDSON 13 de abril de 2016 Responder

Pessoal!

Estou utilizando o IDE 1.6.7 e a placa arduino UNO.

Porém o exemplo enviado por você não funciona corretamente. Emite a mensagem de erro abaixo:

C:ArduinoSetup – Arduino-1.6.7librariesAdafruit_GFXAdafruit_GFX.cpp: In member function ‘virtual void


Adafruit_GFX::drawLine(int16_t, int16_t, int16_t, int16_t, uint16_t)’:

C:ArduinoSetup – Arduino-1.6.7librariesAdafruit_GFXAdafruit_GFX.cpp:170:16: error: ‘swap’ was not


declared in this scope

swap(x0, y0);

Alguém poderia me auxiliar nesta questão?!

Sergio Naves 23 de abril de 2016 Responder

Belo e excelente tutorial! Isto me despertou em fazer-lhe uma pergunta:


Eu tenho um TFT LCD colorido que foi removido junto com o painel de controle de uma impressora HP
modelo Photosmart C4280; gostaria de estar usando-o com Arduino mas não sei as suas pinagens e, não
sei como programá-lo com Arduino. O tamanho é de aprox. 1.5″ (pol); o Flat cable tem 33 Pinos; a
numeração no TFT é: 42P741B511-BX … (tenho 2 fotos mas ñ sei colocar aqui)
Se o ADILSON ou alguém souber e puder me reponder eu agradeceria muito!

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 78/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Daniel Fernandes 25 de maio de 2016 Responder

Ola.

Comprei o brinquedinho ja faz um tempinho (estava sem tempo entao ele cou guardado) agora chegou a
hora de brincar com ele todavia tenho uma pergunta:

É possivel trabalhar com este touch e com a placa ethernet shield w5100 juntos? quero fazer um controle
para uma esteira separadora de pecas e um supervisorio com elipse e3 ou uma interface web.

LINDOLFO SILVEIRA KEMMERICH 17 de junho de 2016 Responder

Olá,

Qual seria controlador de Touch Screen? Porquê analisando a biblioteca de Touch, não está especi cado o
controlador, nem explicação do código.

Grato

Matheus 29 de julho de 2016 Responder

amigo , eu testei o primeiro codigo, no arduino1.6, e ele apresentou erro ,

sabe informar se é a ide , ou se o codigo está errado mesmo ?

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 79/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

silvio 1 de agosto de 2016 Responder

boa tarde Silvio,

Que erro apresentou ?

Grato.

Adilson – Equipe FILIPEFLOP

Paulo 1 de agosto de 2016 Responder

Olá! gostaria de saber como faço para acionar uma saída utilizando o display. Por exemplo, quando apertar
o “on” do amarelo, tem como mandar um pulso para acionar alguma saída? (no caso estou usando o
arduino MEGA, tendo assim saídas disponíveis).

Agradeço!

Gustavo 9 de agosto de 2016 Responder

Olá, eu z um módulo de bateria eletronica com o arduino mega. O módulo é con gurado por dois botões
NA e os parâmetros aparecem em um visor LCD 16×2. Com o faço para trocar os botões e o LCD pelo touch
screen?

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 80/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Lael 15 de agosto de 2016 Responder

boa noite.
estou pesquisando ha dias… mas não consegui encontrar nada bem claro…

tenho um controlador que exibia as informações em um lcd 320240 20pinos monocromático mas no
entanto o lcd dani cou se, agora quero liga as saidas do controlador ao arduino uno e programar uma
saida de video para ver as informações em um monitor.

como faço isso? já estou cando careca de tanto procurar kkkkk

agradeço desde já a ajuda.

fernando vendrametto 23 de agosto de 2016 Responder

Oi, se eu usar um display maior em polegadas muda algo no código?

Gabrieli Pavlack 29 de agosto de 2016 Responder

Boa tarde,

Sim, provavelmente vai mudar a biblioteca, já que nesse caso ela é especí ca para esse display e esse
controlador, e também os comandos de desenho, texto, etc.

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 81/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

Abraço!

Adilson – Equipe FILIPEFLOP

Paulo 12 de setembro de 2016 Responder

Otimo produto!! recomendo

Jonathan Troncoso 8 de setembro de 2016 Responder

Tenho boas notícias cisalhamento com você todo, você sabe que há um cartão chamado cartão Multibanco
vazio? Os meus amigos este cartão é real e é muito útil para pagar e comprar coisas online. E este cartão
pode retirar até US $ 3.000 por dia, eu não acho que ele funciona, quando me encontrei com meu amigo
usando este cartão usando o cartão para compras on-line, mas eu também assumiu o risco e aplicado para
um cartão e pago, e foi entregue para mim, juntamente com informações sobre como usá-lo. E desde que
eu sou o mapa, ele me ajudou com os meus problemas Finanical e eu sou capaz de cuidar dos meus dois
lhos. Este cartão é real e é muito fácil de usar e acessível. Se precisar de ajuda para obter um destes
cartões, por favor contacte: unlimitedhackersnetwork@gmail.com

pedro 30 de setembro de 2016 Responder

Bom dia, após quebrar um pouco a cabeça, consegui fazer funcionar dessa forma com Arduino UNO
Substitui os 4 #de ne e alguns if´s : De if (p.x > 235 & p.x 25 & p.y < 50) por exemplo.

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 82/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

//Programa : Teste Display Touch Arduino – Touchscreen


//Autor : FILIPEFLOP

#include // Core graphics library


#include // Hardware-speci c library
#include

/* SUBSTITUI ESTAS LINHAS PELAS ABAIXO: O TOUCH FICOU MUITO MAIS RÁPIDO.

#de ne YP A3 // Y+ is on Analog1
#de ne XM A2 // X- is on Analog2
#de ne YM 9 // Y- is on Digital7
#de ne XP 8 // X+ is on Digital6
*/
#de ne YP A1 // must be an analog pin, use “An” notation!
#de ne XM A2 // must be an analog pin, use “An” notation!
#de ne YM 7 // can be a digital pin
#de ne XP 6 // can be a digital pin

#de ne TS_MINX 150


#de ne TS_MINY 120
#de ne TS_MAXX 920
#de ne TS_MAXY 940

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 100);

//De nicao de cores


#de ne BLACK 0x0000
#de ne BLUE 0x001F
#de ne RED 0xF800
#de ne GREEN 0x07E0
#de ne CYAN 0x07FF
#de ne MAGENTA 0xF81F
#de ne YELLOW 0xFFE0
#de ne WHITE 0xFFFF

//PP_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);


Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);

// Armazena o estado dos botões


bool valor_botao1 = 0;
bool valor_botao2 = 0;
bool valor_botao3 = 0;
bool valor_botao4 = 0;

#de ne MINPRESSURE 10
#de ne MAXPRESSURE 1000

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 83/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

void setup(void)
{
Serial.begin(9600);
Serial.println(“TFT Test”);
//identi er == 0x9341;
tft.reset();
delay(500);
//uint16_t identi er = tft.readRegister(0x0);
//Serial.print(“Driver encontrado: “);
//Serial.println(identi er, HEX);

tft.begin(0x9341);
//tft.initDisplay();
tft. llScreen(BLACK);
tft.setRotation(3);

// Inicio – Texto e botoes


tft.drawRoundRect(5, 15, 312, 50, 5, WHITE);
tft.drawRoundRect(255, 15, 62, 50, 5, WHITE);
tft.setTextColor(YELLOW);
tft.setTextSize(3);
tft.setCursor(15, 30);
tft.println(“Led Amarelo”);

tft.drawRoundRect(5, 70, 312, 50, 5, WHITE);


tft.drawRoundRect(255, 70, 62, 50, 5, WHITE);
tft.setTextColor(GREEN);
tft.setTextSize(3);
tft.setCursor(15, 85);
tft.println(“Led Verde”);

tft.drawRoundRect(5, 125, 312, 50, 5, WHITE);


tft.drawRoundRect(255, 125, 62, 50, 5, WHITE);
tft.setTextColor(BLUE);
tft.setTextSize(3);
tft.setCursor(15, 140);
tft.println(“Led Azul”);

tft.drawRoundRect(5, 180, 312, 50, 5, WHITE);


tft.drawRoundRect(255, 180, 62, 50, 5, WHITE);
tft.setTextColor(RED);
tft.setTextSize(3);
tft.setCursor(15, 195);
tft.println(“Led Vermelho”);

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 84/85
24/12/2017 3 projetos incríveis com o Display Touch Arduino Shield - FilipeFlop

//Preenchimento OFF
tft.setTextColor(WHITE);
tft.setCursor(260, 30);
tft.println(“OFF”);
tft.setCursor(260, 85);
tft.println(“OFF”);
tft.setCursor(260, 140);
tft.println(“OFF”);
tft.setCursor(260, 195);
tft.println(“OFF”);
}

void loop()
{
TSPoint p = ts.getPoint();
pinMode(XM, OUTPUT);
digitalWrite(XM, LOW);
pinMode(YP, OUTPUT);
digitalWrite(YP, HIGH);
pinMode(YM, OUTPUT);
digitalWrite(YM, LOW);
pinMode(XP, OUTPUT);
digitalWrite(XP, HIGH);

if (p.z > MINPRESSURE && p.z y “);


Serial.println(p.y>200);
Serial.println(p.y);
Serial.println(p.x);

if (p.y > 20)


{
Serial.println(“Passou. p.y > 200 “);
Serial.print(“py: “);
Serial.print(p.y);
Serial.print(” px: “);
Serial.print(p.x);

//Testa botao amarelo


if (p.y > 25 & p.y 55 & p.y 120 & p.y 190 & p.y < 215)
{
if (valor_botao4 == 0)
{
tft. llRoundRect(256, 181, 60, 48, 5, RED);
mostra_on(269,195);
valor_botao4 = !valor_botao4;
}

https://www.filipeflop.com/blog/display-touch-arduino-shield/ 85/85

Você também pode gostar