Arduino - Display TFT LCD Touch ILI9341 ILI9488 ST7789 com Interface SPI
Este tutorial ensina como usar um display TFT SPI com o Arduino. Em detalhes, vamos aprender:
- Como ligar um módulo de display TFT SPI a um Arduino.
- Como desenhar formas e linhas e preencher áreas com cor.
- Como exibir texto e valores numéricos na tela.
- Como desenhar imagens bitmap a partir da memória de programa (PROGMEM).
- Como desenhar imagens bitmap carregadas de um cartão SD.
- Como renderizar texto com uma fonte externa personalizada.
- Como ler as coordenadas brutas de toque de um controlador XPT2046.
- Como desenhar na tela arrastando o dedo pelo display.
- Como criar botões de toque interativos na tela.
- Como calibrar a tela touch.
- Como usar um barramento SPI secundário ou personalizado para o display.
Este tutorial aborda displays TFT LCD SPI com e sem toque. Ele funciona com painéis de 1,3, 1,54, 2,2, 2,4, 2,8, 3,2 e 3,5 polegadas controlados pelos chips ILI9341, ILI9488 ou ST7789.

Dica — alternativa mais simples e mais rápida: Se você está usando um Arduino Uno, considere o TFT Touch Shield. Ele se encaixa diretamente nos conectores do Uno — sem precisar de fios jumper. Ele usa uma interface paralela de 8 bits, que transfere os dados de pixels muito mais rápido do que o SPI.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Display TFT SPI
Um display TFT SPI é um painel LCD colorido controlado pelo barramento SPI (Serial Peripheral Interface). Ele usa um chip driver dedicado - geralmente o ILI9341, o ILI9488 ou o ST7789 - para receber os comandos de desenho e gerenciar os dados dos pixels.
Fatos principais:
- ILI9341 - cores RGB565 de 16 bits, SPI de até 40 MHz.
- ILI9488 - cores RGB666 de 18 bits via SPI, SPI de até 24 MHz.
- ST7789 - cores RGB565 de 16 bits, SPI de até 40 MHz.
Recomendação: Se você ainda não comprou um display, recomendamos o driver ST7789. Ele é fácil de encontrar, funciona na velocidade SPI máxima de 40 MHz e é a escolha mais simples para novos projetos.
Pinagem
A maioria dos displays TFT LCD SPI tem os seguintes pinos:
Pinos do display:
| Pino | Função |
|---|---|
| VCC | Alimentação |
| GND | Terra |
| CS | Chip Select — colocado em nível baixo para selecionar o display no barramento SPI |
| DC / RS | Seleção de Dados / Comando — nível alto para dados de pixels, nível baixo para comandos |
| RST | Reset por hardware — opcional; ligue ao 3.3V se não for usado |
| MOSI / SDI / SDA | Entrada de dados SPI (MCU → display) |
| SCK / CLK | Clock SPI |
| MISO / SDO | Saída de dados SPI (display → MCU) — opcional quando usado apenas como display |
| LED / BL / BLK | Alimentação do backlight — conecte ao 3.3V ou a um pino PWM para controlar o brilho |
Pinos do cartão SD (se a sua aplicação precisar acessar o cartão SD):
| Pino | Função |
|---|---|
| SD_CS / TF_CS | Chip Select do cartão SD |
| MOSI / SDI | MOSI — dados do MCU para o cartão SD |
| SCK / CLK | SCK — clock SPI |
| MISO / SDO | MISO — dados do cartão SD para o MCU |
Para displays TFT com suporte a toque, existem pinos de toque adicionais (se a sua aplicação usar a função de toque e o display a suportar):
| Pino | Função |
|---|---|
| T_CS | Chip Select do controlador de toque |
| T_CLK | SCK — clock SPI |
| T_DIN | MOSI — dados do MCU para o controlador de toque |
| T_DO | MISO — dados do controlador de toque para o MCU |
| T_IRQ | Interrupção de toque — opcional; sinaliza quando a tela está sendo tocada |
Observação: Alguns módulos de display sem toque também têm os pinos T_CS, T_CLK, T_DIN, T_DO e T_IRQ. Eles não funcionam nessas placas — o CI do controlador de toque não está montado. Eles aparecem porque a PCB reutiliza o mesmo layout da versão com toque para reduzir as variantes de fabricação.

Diagrama de Ligação
Observação — conversor de nível opcional: Estes módulos de display TFT SPI têm conversão de nível na própria placa nas linhas de sinal, então a lógica de 5V do Arduino Uno pode acionar MOSI, SCK, CS, DC, RST e T_CS (se usar o toque) diretamente — esta ligação foi testada e funciona. Para uma montagem permanente, adicionar um Conversor de Nível de 5V para 3,3V nas linhas de sinal acionadas pelo MCU ainda é a escolha mais segura para confiabilidade a longo prazo. A linha MISO (display → MCU) nunca precisa de um.
Observação — o SDO (MISO) é opcional: A linha SDO (MISO) só leva dados do display de volta para a placa. Nenhum dos códigos de exemplo deste tutorial lê dados do display, então este pino pode ficar desconectado. Em módulos nos quais o controlador de toque compartilha o mesmo barramento SPI, uma linha SDO conectada pode interferir na comunicação, por isso é recomendado deixá-la desconectada.
Sem Toque
Conecte MOSI ao D11, SCK ao D13 e MISO ao D12 do Arduino Uno. CS, DC e RST podem ser qualquer GPIO disponível — D10, D8 e D9 são usados nos exemplos.
Display:
| Pino do TFT | Pino do Arduino Uno | Descrição |
|---|---|---|
| VCC | 3.3V | Alimentação (somente 3,3V — o display funciona em 3,3V) |
| GND | GND | Terra |
| CS | D10 | Chip Select |
| DC / RS | D8 | Seleção de Dados / Comando |
| RST | D9 | Reset (opcional) |
| MOSI / SDI | D11 | MOSI do SPI por hardware |
| SCK | D13 | Clock do SPI por hardware |
| MISO / SDO | D12 | MISO do SPI por hardware (opcional) |
| LED / BL | 3.3V | Alimentação do backlight |
Cartão SD (se a sua aplicação precisar acessar o cartão SD):
| Pino do SD | Pino do Arduino Uno | Descrição |
|---|---|---|
| SD_CS / TF_CS | qualquer GPIO livre | Chip Select do cartão SD |
| MOSI / SDI | D11 | Compartilhado com o MOSI do display (D11) |
| SCK / CLK | D13 | Compartilhado com o SCK do display (D13) |
| MISO / SDO | D12 | Compartilhado com o MISO do display (D12) |

This image is created using Fritzing. Click to enlarge image
Com Toque
Conecte o controlador de toque XPT2046 ao barramento SPI do Arduino Uno, compartilhando D11, D13 e D12 com o display.
Display:
| Pino do TFT | Pino do Arduino Uno | Descrição |
|---|---|---|
| VCC | 3.3V | Alimentação (somente 3,3V — o display funciona em 3,3V) |
| GND | GND | Terra |
| CS | D10 | Chip Select |
| DC / RS | D8 | Seleção de Dados / Comando |
| RST | D9 | Reset (opcional) |
| MOSI / SDI | D11 | MOSI do SPI por hardware |
| SCK | D13 | Clock do SPI por hardware |
| MISO / SDO | D12 | MISO do SPI por hardware (opcional) |
| LED / BL | 3.3V | Alimentação do backlight |
Controlador de toque (se a sua aplicação usar a função de toque e o display a suportar):
| Pino de Toque | Pino do Arduino Uno | Descrição |
|---|---|---|
| T_CS | qualquer GPIO livre | Chip Select do toque |
| T_IRQ | qualquer GPIO livre | Interrupção de toque (opcional) |
| T_DIN | D11 | Compartilhado com o MOSI do display (D11) |
| T_CLK | D13 | Compartilhado com o SCK do display (D13) |
| T_DO | D12 | Compartilhado com o MISO do display (D12) |

This image is created using Fritzing. Click to enlarge image
Se o seu MCU tem duas ou mais interfaces SPI por hardware, você pode atribuir cada periférico (display, cartão SD, controlador de toque) ao seu próprio barramento SPI dedicado. Se o seu MCU tem apenas uma interface SPI por hardware, os três periféricos compartilham as mesmas três linhas de dados (MOSI, SCK, MISO) — no Uno, elas são D11, D13 e D12. Cada periférico tem seu próprio pino CS, então apenas um fica ativo por vez. A biblioteca DIYables_TFT_SPI gerencia tanto o display quanto o controlador de toque XPT2046 por meio de uma única API — não é preciso uma biblioteca SPI separada para a parte do toque.
Instalação da Biblioteca
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas.
- Vá até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise "DIYables_TFT_SPI" e encontre a biblioteca DIYables_TFT_SPI da DIYables.
- Clique no botão Install para instalar a versão mais recente da biblioteca.
- Quando for solicitado instalar as dependências, clique em Install All para instalar também a biblioteca Adafruit GFX Library.
- Search for DIYables TFT SPI created by DIYables.io and click the Install button.
Estrutura Básica
Todo sketch que usa a biblioteca DIYables_TFT_SPI segue esta estrutura básica:
A largura e a altura passadas ao construtor devem corresponder à resolução física indicada no datasheet do seu módulo. Módulos com o mesmo chip driver são vendidos em tamanhos diferentes - por exemplo, os módulos ST7789 existem em 240x320, 240x240, 135x240 e outras variantes.
Código Arduino - Desenhar Formas
O exemplo DrawShapes mostra como desenhar círculos, triângulos, retângulos, retângulos arredondados e linhas usando as funções de desenho integradas da Adafruit GFX.
Passos Rápidos
- Ligue o display TFT ao Arduino seguindo o diagrama de ligação acima.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas.
- Copie o código acima e cole-o no editor do Arduino IDE.
- Altere a linha do construtor para corresponder ao driver e à resolução do seu display.
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
- O display mostra um padrão de formas coloridas que é preenchido e redesenhado a cada poucos segundos.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.begin() | Inicializa o display. Chame uma vez em setup(). | TFT_display.begin(); |
| TFT_display.setRotation(r) | Define a orientação da tela. 0=retrato, 1=paisagem. | TFT_display.setRotation(1); |
| TFT_display.fillScreen(color) | Preenche a tela inteira com uma cor. | TFT_display.fillScreen(BLACK); |
| DIYables_TFT_SPI::colorRGB(r,g,b) | Converte valores RGB em uma cor de 16 bits. | colorRGB(255, 0, 0) |
| TFT_display.drawCircle(x,y,r,color) | Desenha o contorno de um círculo. | TFT_display.drawCircle(60, 60, 30, RED); |
| TFT_display.fillCircle(x,y,r,color) | Desenha um círculo preenchido. | TFT_display.fillCircle(60, 60, 30, RED); |
| TFT_display.drawRect(x,y,w,h,color) | Desenha o contorno de um retângulo. | TFT_display.drawRect(10, 10, 80, 40, BLUE); |
| TFT_display.fillRect(x,y,w,h,color) | Desenha um retângulo preenchido. | TFT_display.fillRect(10, 10, 80, 40, BLUE); |
| TFT_display.drawLine(x0,y0,x1,y1,color) | Desenha uma linha. | TFT_display.drawLine(0, 0, 100, 100, GREEN); |
Código Arduino - Mostrar Texto e Números
O exemplo ShowTextAndNumber demonstra como imprimir strings de texto e valores numéricos no display em diferentes tamanhos e posições.
Passos Rápidos
- Faça a ligação do display e carregue o código como descrito acima.
- O display imprime várias linhas de texto com cores e tamanhos diferentes.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.setTextColor(color) | Define a cor do texto. | TFT_display.setTextColor(WHITE); |
| TFT_display.setTextSize(size) | Define a escala do texto (1=6x8 px, 2=12x16 px, ...). | TFT_display.setTextSize(2); |
| TFT_display.setCursor(x, y) | Move o cursor de texto para uma posição. | TFT_display.setCursor(10, 20); |
| TFT_display.print(value) | Imprime uma string ou um número na posição do cursor. | TFT_display.print("Hello!"); |
| TFT_display.println(value) | Imprime e move o cursor para a próxima linha. | TFT_display.println(42); |
Código Arduino - Desenhar Imagem
O exemplo DrawImage exibe um bitmap colorido RGB565 armazenado na memória de programa (PROGMEM). Os dados dos pixels ficam em um arquivo de cabeçalho bitmap.h que acompanha o sketch, como um array const uint16_t, e nunca são copiados para a SRAM, o que o torna adequado para placas com pouca memória. Adicione o bitmap.h à mesma pasta do sketch antes de compilar.
Passos Rápidos
- Ligue o display TFT ao Arduino seguindo o diagrama de ligação acima.
- Coloque o bitmap.h na mesma pasta do sketch.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- O display mostra a imagem bitmap armazenada na memória de programa.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.drawRGBBitmap(x,y,bitmap,w,h) | Desenha um bitmap RGB565 da PROGMEM na posição (x, y). O array deve ser declarado como PROGMEM. | TFT_display.drawRGBBitmap(0, 0, myImage, 240, 320); |
| TFT_display.fillScreen(color) | Limpa a tela com uma cor sólida antes de desenhar o bitmap. | TFT_display.fillScreen(BLACK); |
Código Arduino - Desenhar Imagem do Cartão SD
O exemplo DrawImageSDcard lê um arquivo de imagem binário RGB565 bruto diretamente de um cartão micro SD e envia os dados dos pixels ao display em partes, evitando a necessidade de carregar a imagem inteira na RAM. Conecte um módulo de cartão SD ao mesmo barramento SPI do display e defina o pino CS dele como SD_CS_PIN no sketch.
Passos Rápidos
- Ligue o módulo de cartão SD ao Arduino. Compartilhe as linhas MOSI (D11), SCK (D13) e MISO (D12) com o display. Conecte o CS do módulo SD ao pino definido como SD_CS_PIN.
- Copie uma imagem binária RGB565 bruta para a raiz do cartão SD. As dimensões do arquivo devem corresponder à largura e à altura do painel.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- O display mostra a imagem enviada a partir do cartão SD.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.startWrite() | Inicia uma transação SPI direta. Mantém o CS ativo durante toda a transação. | TFT_display.startWrite(); |
| TFT_display.setAddrWindow(x0,y0,x1,y1) | Define a região retangular de pixels a ser escrita. | TFT_display.setAddrWindow(0, 0, 239, 319); |
| TFT_display.pushColors(buf, len) | Envia um buffer de palavras de pixels RGB565 para o display. | TFT_display.pushColors(buf, 512); |
| TFT_display.endWrite() | Encerra a transação SPI e libera o CS. | TFT_display.endWrite(); |
Código Arduino - Usar Fonte Externa
O exemplo UseExternalFont renderiza texto usando uma fonte personalizada compatível com a Adafruit GFX, para glifos mais nítidos e de maior qualidade. A fonte é incluída como um arquivo de cabeçalho e ativada chamando setFont(). Passe NULL para voltar à fonte integrada de 5×7 pixels a qualquer momento.
Passos Rápidos
- Ligue o display TFT ao Arduino seguindo o diagrama de ligação acima.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- O display renderiza o texto com a fonte personalizada. Compare com a fonte integrada para ver a melhora na nitidez.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.setFont(&FontName) | Muda para uma fonte personalizada compatível com GFX. Passe NULL para restaurar a fonte integrada de 5×7. | TFT_display.setFont(&FreeSans12pt7b); |
| TFT_display.setCursor(x, y) | Posiciona o cursor de texto antes de chamar print(). | TFT_display.setCursor(10, 40); |
| TFT_display.setTextColor(color) | Define a cor do texto. | TFT_display.setTextColor(WHITE); |
| TFT_display.print(text) | Imprime uma string usando a fonte ativa. | TFT_display.print("Hello!"); |
Código Arduino - Obter Ponto de Toque
O exemplo TouchGetPoint inicializa o controlador de toque XPT2046 e lê as coordenadas ADC brutas sempre que a tela é tocada. Os valores brutos são impressos no Serial Monitor. Execute este exemplo primeiro para entender a faixa numérica do seu painel antes de aplicar a calibração.
Ligação: conecte T_CLK, T_DIN e T_DO aos mesmos pinos SPI do display (D13, D11, D12). Conecte T_CS ao pino 7 e T_IRQ ao pino 6. O XPT2046 compartilha o barramento SPI com o display.
Passos Rápidos
- Ligue o controlador de toque XPT2046 ao Arduino. T_CLK→D13, T_DIN→D11, T_DO→D12 (compartilhados com o display). T_CS→D7, T_IRQ→D6.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- Abra o Serial Monitor em 9600 baud. Toque na tela para ver os valores brutos de X, Y e da pressão Z impressos.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.initTouchSPI(cs, irq) | Inicializa o XPT2046 no barramento SPI compartilhado. Passe -1 para irq se o pino não estiver conectado. | TFT_display.initTouchSPI(7, 6); |
| TFT_display.readTouchRaw(x, y, z) | Lê os valores ADC brutos do controlador de toque. Retorna true quando a tela está sendo tocada. | TFT_display.readTouchRaw(x, y, z); |
Código Arduino - Desenhar com Toque
O exemplo TouchDraw transforma o display em uma tela de pintura com o dedo. Conforme você arrasta o dedo pela tela, pontos coloridos são colocados em cada coordenada de toque usando posições calibradas, criando uma linha desenhada contínua.
Passos Rápidos
- Ligue o controlador de toque XPT2046 ao Arduino como descrito na seção Obter Ponto de Toque acima.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- Arraste o dedo pelo display para desenhar na tela. Levante o dedo e arraste novamente para começar um novo traço.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.initTouchSPI(cs, irq) | Inicializa o XPT2046 no barramento SPI compartilhado. | TFT_display.initTouchSPI(7, 6); |
| TFT_display.setTouchCalibration(minX,maxX,minY,maxY) | Mapeia os valores ADC brutos para coordenadas de pixels da tela. Obtenha os quatro valores com o exemplo TouchCalibration. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| TFT_display.setTouchInvertX(invert) / TFT_display.setTouchInvertY(invert) | Inverte o eixo do toque quando X ou Y está espelhado no seu painel ou lote específico. Chame ANTES de setTouchCalibration(). | TFT_display.setTouchInvertY(true); |
| TFT_display.getTouch(x, y) | Obtém a posição de toque calibrada em pixels da tela. Retorna true quando a tela está sendo tocada. | if (TFT_display.getTouch(x, y)) { ... } |
| TFT_display.fillCircle(x, y, r, color) | Desenha um ponto preenchido na posição do toque. | TFT_display.fillCircle(x, y, 3, RED); |
Código Arduino - Botão de Toque
O exemplo TouchButton desenha botões retangulares na tela e detecta toques usando coordenadas de toque calibradas. Quando a área de um botão é pressionada, ele muda de cor e dispara uma ação. Este exemplo mostra como construir uma interface de toque simples.
O T_IRQ não precisa ser conectado para a detecção de toque por polling. Passe -1 como argumento irq para desativá-lo.
Passos Rápidos
- Ligue o T_CS ao pino 7. O T_IRQ pode ficar desconectado (passe -1 no código).
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- Toque nos botões mostrados no display. Cada botão muda de cor quando é pressionado.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.initTouchSPI(cs, irq) | Inicializa o XPT2046. Passe -1 para irq para usar o modo polling sem o pino de interrupção. | TFT_display.initTouchSPI(7, -1); |
| TFT_display.setTouchCalibration(minX,maxX,minY,maxY) | Aplica as constantes de calibração para que getTouch() retorne coordenadas de pixels precisas. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| TFT_display.setTouchInvertX(invert) / TFT_display.setTouchInvertY(invert) | Inverte o eixo do toque quando X ou Y está espelhado no seu painel ou lote específico. Chame ANTES de setTouchCalibration(). | TFT_display.setTouchInvertY(true); |
| TFT_display.getTouch(x, y) | Obtém as coordenadas de toque calibradas. Retorna true quando a tela está pressionada. | if (TFT_display.getTouch(x, y)) { ... } |
| TFT_display.fillRect(x, y, w, h, color) | Desenha o retângulo de fundo de um botão. | TFT_display.fillRect(10, 10, 120, 60, BLUE); |
Código Arduino - Calibração do Toque
O exemplo TouchCalibration guia você para encontrar os valores de calibração corretos para o seu painel XPT2046 específico. Toque nos cantos da tela quando for solicitado e leia os valores mínimo/máximo de X e Y no Serial Monitor. Copie esses quatro números para setTouchCalibration() em todos os outros exemplos de toque.
Passos Rápidos
- Ligue o controlador de toque XPT2046 ao Arduino como descrito na seção Obter Ponto de Toque.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- Abra o Serial Monitor em 9600 baud. Toque em cada canto da tela conforme as instruções.
- Anote os quatro valores impressos (minX, maxX, minY, maxY) e cole-os em setTouchCalibration() nos seus outros sketches de toque.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| TFT_display.initTouchSPI(cs, irq) | Inicializa o controlador de toque XPT2046. | TFT_display.initTouchSPI(7, 6); |
| TFT_display.readTouchRaw(x, y, z) | Lê os valores ADC brutos usados para determinar a faixa de calibração. | TFT_display.readTouchRaw(x, y, z); |
| TFT_display.setTouchCalibration(minX,maxX,minY,maxY) | Armazena as constantes de calibração para que getTouch() mapeie os valores brutos para coordenadas de pixels. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| TFT_display.setTouchInvertX(invert) / TFT_display.setTouchInvertY(invert) | Inverte o eixo do toque quando X ou Y está espelhado no seu painel ou lote específico. Chame ANTES de executar a calibração para que os valores armazenados correspondam ao seu painel. | TFT_display.setTouchInvertY(true); |
Código Arduino - SPI Personalizado
O exemplo CustomSPI demonstra como passar um ponteiro SPIClass explícito ao construtor do display. Isso é importante quando outro periférico já ocupa o barramento SPI padrão ou quando você precisa limitar a velocidade do clock SPI para cabos longos ou com ruído.
O Arduino Uno tem um barramento SPI por hardware em D11 (MOSI), D13 (SCK) e D12 (MISO). O exemplo mostra como passar &SPI explicitamente e como configurar uma velocidade SPI máxima menor.
Passos Rápidos
- Ligue o display TFT ao Arduino como mostrado no diagrama de ligação.
- Conecte a placa Arduino ao seu computador com um cabo USB.
- Abra o Arduino IDE, selecione a placa e a porta corretas, cole o código e clique em Upload.
- O display é inicializado no barramento SPI explícito e mostra um padrão de teste com barras coloridas.
Resumo da API
| Método | Descrição | Exemplo |
|---|---|---|
| DIYables_ILI9341_SPI(w,h,cs,dc,rst,spi) | Construtor que aceita um ponteiro SPIClass explícito como último argumento. Omita-o para usar &SPI por padrão. | DIYables_ILI9341_SPI tft(240, 320, 10, 9, 8, &SPI); |
| TFT_display.begin() | Inicializa o display no barramento SPI configurado. | TFT_display.begin(); |
Solução de Problemas
Se o código não estiver funcionando, existem alguns problemas comuns que você pode verificar:
- Tela preta: Verifique se VCC, GND, CS, DC, MOSI e SCK estão todos ligados corretamente. A falta do fio CS ou DC é a causa mais comum.
- Driver errado: Certifique-se de que você descomentou a linha do construtor que corresponde ao chip driver do seu módulo (ILI9341, ILI9488 ou ST7789). Um driver incompatível mostra uma tela em branco ou totalmente branca.
- Resolução errada: A largura e a altura passadas ao construtor devem corresponder ao seu painel. Um tamanho incorreto faz a imagem ficar deslocada ou cortada.
- Lixo na tela: Verifique se MOSI e SCK estão nos pinos SPI por hardware (D11 e D13 no Uno). Trocá-los é um erro comum.
- Toque não responde: Execute o exemplo TouchCalibration para encontrar os valores de calibração corretos para o seu painel.
Plataformas Suportadas
A biblioteca DIYables_TFT_SPI usa as APIs SPI padrão do Arduino e suporta todas as plataformas compatíveis com Arduino (architectures=*). A dependência Adafruit GFX Library também é multiplataforma.