Arduino Uno R4 - Display TFT LCD Touch ILI9341 ILI9488 ST7789 com Interface SPI
O Arduino Uno R4 - disponível como Minima e WiFi - traz um processador Renesas RA4M1 de 48 MHz e mais SRAM do que o Uno clássico, mantendo o mesmo layout de conectores. Os pinos SPI de hardware ficam nos mesmos lugares físicos, então qualquer ligação de TFT que funciona no Uno R3 funciona diretamente no Uno R4, sem nenhuma mudança.
Neste guia você vai:
- Ligar um display TFT SPI ao Arduino Uno R4.
- Desenhar formas e preencher áreas com cor.
- Exibir texto e números na tela.
- Desenhar imagens bitmap armazenadas na memória de programa (PROGMEM).
- Desenhar imagens bitmap carregadas de um cartão SD.
- Renderizar texto usando uma fonte externa personalizada.
- Ler coordenadas brutas de toque de um controlador XPT2046.
- Desenhar na tela arrastando o dedo pelo display.
- Criar botões de toque interativos.
- Calibrar a tela de toque.
- Usar um barramento SPI secundário ou personalizado para o display.
Este guia cobre displays TFT LCD SPI com e sem touch. 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 R4, considere usar o TFT Touch Shield. Ele encaixa direto no conector do Uno R4 — sem precisar de fios jumper. Ele usa uma interface paralela de 8 bits, que transfere os dados de pixel de forma bem mais rápida do que o SPI.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Visão Geral do Display TFT SPI
Um display TFT SPI é um painel LCD colorido controlado por um chip driver através do barramento SPI. A biblioteca DIYables_TFT_SPI suporta três chips driver comuns:
- ILI9341 - cor RGB565 de 16 bits, SPI de até 40 MHz.
- ILI9488 - cor RGB666 de 18 bits, SPI de até 24 MHz.
- ST7789 - cor 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.
A biblioteca estende a Adafruit GFX, então todas as funções padrão de desenho e de texto estão disponíveis.
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 — alto para dados de pixel, baixo para comandos |
| RST | Reset de 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 para uso somente como display |
| LED / BL / BLK | Alimentação da luz de fundo — ligue ao 3.3V ou a um pino PWM para controlar o brilho |
Pinos do cartão SD (se a sua aplicação precisa 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 |
Nos displays TFT que suportam touch, existem pinos de toque adicionais (se a sua aplicação usa a função de toque e o display a suporta):
| 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 touch também expõem os pinos T_CS, T_CLK, T_DIN, T_DO e T_IRQ. Esses pinos não funcionam nessas placas — o CI do controlador de toque não está soldado. Eles aparecem porque a PCB reaproveita o mesmo layout da versão com touch para reduzir as variações de fabricação.

Diagrama de Ligação
Observação — conversor de nível opcional: Esses módulos de display TFT SPI incluem conversão de nível na própria placa nas linhas de sinal, então a lógica de 5V do Arduino Uno R4 pode acionar diretamente MOSI, SCK, CS, DC, RST e T_CS (se usar touch) — essa 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 a confiabilidade a longo prazo. A linha MISO (display → MCU) nunca precisa de um.
Observaçã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 esse 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 recomendamos deixá-la desconectada.
Sem Touch
Ligue MOSI ao D11, SCK ao D13 e MISO ao D12 no Uno R4. 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 R4 | Descrição |
|---|---|---|
| VCC | 3.3V ou 5V | Alimentação |
| 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 de hardware |
| SCK | D13 | Clock do SPI de hardware |
| MISO / SDO | D12 | MISO do SPI de hardware (opcional) |
| LED / BL | 3.3V | Alimentação da luz de fundo |
Cartão SD (se a sua aplicação precisa acessar o cartão SD):
| Pino do SD | Pino do Arduino Uno R4 | 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 Touch
Ligue o controlador de toque XPT2046 ao barramento SPI do Arduino Uno R4, compartilhando D11, D13 e D12 com o display.
Display:
| Pino do TFT | Pino do Arduino Uno R4 | Descrição |
|---|---|---|
| VCC | 3.3V ou 5V | Alimentação |
| 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 de hardware |
| SCK | D13 | Clock do SPI de hardware |
| MISO / SDO | D12 | MISO do SPI de hardware (opcional) |
| LED / BL | 3.3V | Alimentação da luz de fundo |
Controlador de toque (se a sua aplicação usa a função de toque e o display a suporta):
| Pino de Toque | Pino do Arduino Uno R4 | 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
Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.
Se o seu MCU tem duas ou mais interfaces SPI de 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 de hardware, os três periféricos compartilham as mesmas três linhas de dados (MOSI, SCK, MISO) — no Uno R4 elas são D11, D13 e D12. Cada periférico tem o 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 — nenhuma biblioteca SPI separada é necessária para o lado do toque.
Como Instalar a Biblioteca
- Conecte o Arduino Uno R4 ao seu computador usando um cabo USB Type-C.
- Na Arduino IDE, verifique se a placa correta (Arduino Uno R4 Minima ou WiFi) e a porta serial estão selecionadas.
- Clique no ícone Libraries na barra lateral esquerda.
- Digite "DIYables_TFT_SPI" na caixa de busca e localize a biblioteca publicada pela DIYables.
- Clique em Install para adicionar a biblioteca. Quando for solicitado, instale também a dependência Adafruit GFX Library.
- Search for DIYables TFT SPI created by DIYables.io and click the Install button.
Estrutura Mínima do Sketch
Todos os sketches que usam a biblioteca DIYables_TFT_SPI compartilham este esqueleto:
Passe ao construtor as dimensões físicas em pixels do seu painel. Módulos com o mesmo chip driver vêm em tamanhos diferentes.
Desenhar Formas
O exemplo DrawShapes demonstra as primitivas de desenho da Adafruit GFX: círculos, triângulos, retângulos, retângulos arredondados e linhas.
Como Executar
- Ligue o módulo TFT ao Arduino Uno R4 como mostrado no diagrama de ligação.
- Conecte o cabo USB Type-C.
- Cole o código na Arduino IDE, escolha a placa e a porta corretas e pressione Upload.
- O display mostra uma grade de formas coloridas que é atualizada a cada poucos segundos.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| begin() | Inicializa o controlador do display. Chame uma vez no setup(). | TFT_display.begin(); |
| setRotation(r) | Gira o sistema de coordenadas. 0=retrato, 1=paisagem. | TFT_display.setRotation(1); |
| fillScreen(color) | Limpa a tela com uma cor sólida. | TFT_display.fillScreen(WHITE); |
| colorRGB(r,g,b) | Cria uma cor RGB565 de 16 bits a partir de componentes de 8 bits. | colorRGB(0, 128, 255) |
| fillCircle(x,y,r,color) | Desenha um círculo preenchido. | TFT_display.fillCircle(80, 80, 40, RED); |
| fillRect(x,y,w,h,color) | Desenha um retângulo preenchido. | TFT_display.fillRect(10, 10, 60, 40, BLUE); |
| drawRoundRect(x,y,w,h,r,color) | Desenha o contorno de um retângulo arredondado. | TFT_display.drawRoundRect(5,5,100,50,10,GREEN); |
Mostrar Texto e Número
O exemplo ShowTextAndNumber mostra como imprimir textos e números em diferentes tamanhos, cores e posições.
Como Executar
- Ligue e faça o upload como acima.
- O display imprime várias linhas de texto e valores numéricos.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| setTextColor(color) | Define a cor do texto. | TFT_display.setTextColor(BLACK); |
| setTextSize(size) | Ajusta a escala do texto. O tamanho 1 tem 6x8 pixels. | TFT_display.setTextSize(2); |
| setCursor(x, y) | Posiciona o cursor do texto. | TFT_display.setCursor(10, 30); |
| print(value) | Imprime um texto ou número na posição do cursor. | TFT_display.print("Temp: "); |
| println(value) | Imprime e avança para a próxima linha. | TFT_display.println(25.4); |
Desenhar Imagem
O exemplo DrawImage exibe uma imagem bitmap RGB565 em cores, armazenada na memória de programa. Os dados da imagem são declarados em bitmap.h como um array const uint16_t marcado com PROGMEM. Isso mantém os dados dos pixels na flash e não na SRAM, então o display funciona corretamente mesmo em placas com pouca RAM. Copie o bitmap.h para a pasta do sketch antes de compilar.
Como Executar
- Coloque o bitmap.h na mesma pasta do arquivo do sketch.
- Ligue o módulo TFT ao Arduino Uno R4 como mostrado no diagrama de ligação.
- Conecte o cabo USB Type-C.
- Cole o código na Arduino IDE, confirme a placa e a porta e pressione Upload.
- O display mostra a imagem bitmap carregada da memória de programa.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| drawRGBBitmap(x,y,bitmap,w,h) | Desenha um bitmap RGB565 em PROGMEM a partir do pixel (x, y). | TFT_display.drawRGBBitmap(0, 0, myImage, 240, 320); |
| fillScreen(color) | Limpa a tela antes de desenhar a imagem. | TFT_display.fillScreen(BLACK); |
Desenhar Imagem do Cartão SD
O exemplo DrawImageSDcard lê um arquivo de imagem binário RGB565 bruto de um cartão micro SD e envia os dados dos pixels diretamente para o display em pequenos blocos. Essa abordagem transmite a imagem sem nunca manter a imagem inteira na RAM, o que a torna prática para painéis grandes.
Conecte o módulo de cartão SD ao mesmo barramento SPI do display. Compartilhe MOSI (D11), SCK (D13) e MISO (D12). Atribua um pino CS separado ao módulo SD — defina-o como SD_CS_PIN no sketch.
Como Executar
- Ligue o módulo SD ao Arduino Uno R4. Compartilhe o barramento SPI (D11/D13/D12) com o display e conecte o CS do SD ao pino que você escolheu.
- Copie um arquivo de imagem binário RGB565 bruto para a raiz do cartão SD. As dimensões da imagem devem corresponder à resolução do painel.
- Conecte o cabo USB Type-C.
- Cole o código na Arduino IDE, confirme a placa e a porta e pressione Upload.
- A imagem é lida do cartão e exibida na tela.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| startWrite() | Inicia uma transação SPI direta, mantendo o CS ativo. | TFT_display.startWrite(); |
| setAddrWindow(x0,y0,x1,y1) | Define a região retangular de pixels a ser escrita. | TFT_display.setAddrWindow(0, 0, 239, 319); |
| pushColors(buf, len) | Envia um buffer de valores de pixel RGB565 para o display. | TFT_display.pushColors(buf, 512); |
| endWrite() | Encerra a transação SPI e libera o CS. | TFT_display.endWrite(); |
Usar Fonte Externa
O exemplo UseExternalFont renderiza o texto na tela usando uma fonte personalizada compatível com a Adafruit GFX. Em comparação com a fonte bitmap 5×7 embutida, as fontes personalizadas oferecem melhor legibilidade e estilo. O arquivo da fonte é incluído como um header e ativado com uma única chamada a setFont().
Como Executar
- Ligue o módulo TFT ao Uno R4 como mostrado no diagrama de ligação.
- Conecte o cabo USB Type-C.
- Cole o código na Arduino IDE, confirme a placa e a porta e pressione Upload.
- O display renderiza o texto na fonte personalizada. Note a melhor qualidade dos caracteres em comparação com a fonte embutida.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| setFont(&FontName) | Ativa uma fonte personalizada compatível com GFX. Passe NULL para restaurar a fonte embutida 5×7. | TFT_display.setFont(&FreeSans12pt7b); |
| setCursor(x, y) | Move o cursor do texto para a posição indicada. | TFT_display.setCursor(10, 40); |
| setTextColor(color) | Define a cor do texto. | TFT_display.setTextColor(WHITE); |
| print(text) | Imprime um texto na posição atual do cursor usando a fonte ativa. | TFT_display.print("Hello!"); |
Obter Ponto de Toque
O exemplo TouchGetPoint lê as coordenadas ADC brutas de um controlador de toque XPT2046 e as imprime no Serial Monitor. Executá-lo primeiro ajuda você a entender a faixa numérica do seu painel específico — dados que você vai usar para calibrar o toque nos exemplos seguintes.
Ligação: T_CLK→D13, T_DIN→D11, T_DO→D12 (barramento SPI compartilhado com o display). T_CS→D7, T_IRQ→D6.
Como Executar
- Ligue o controlador XPT2046 ao Uno R4, compartilhando o barramento SPI com o display. T_CS ao D7, T_IRQ ao D6.
- Conecte o cabo USB Type-C.
- Cole o código, confirme a placa e a porta e pressione Upload.
- Abra o Serial Monitor a 9600 baud. Pressione e arraste o dedo no display para ver os valores brutos de X, Y e pressão.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| initTouchSPI(cs, irq) | Inicializa o XPT2046 no barramento SPI compartilhado. Use -1 para irq se o pino de interrupção não estiver conectado. | TFT_display.initTouchSPI(7, 6); |
| readTouchRaw(x, y, z) | Retorna os valores ADC brutos do toque sem aplicar nenhuma calibração. Retorna true quando há toque. | TFT_display.readTouchRaw(x, y, z); |
Desenho por Toque
O exemplo TouchDraw cria um aplicativo simples de desenho com o dedo. As coordenadas de toque calibradas são usadas para colocar pequenos círculos preenchidos em cada ponto tocado pelo dedo, formando um desenho contínuo enquanto ele se move.
Como Executar
- Ligue o XPT2046 ao Uno R4 como descrito na seção Obter Ponto de Toque acima.
- Conecte o cabo USB Type-C.
- Cole o código, confirme a placa e a porta e pressione Upload.
- Arraste o dedo pelo display para pintar na tela.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| initTouchSPI(cs, irq) | Configura o XPT2046 no barramento SPI compartilhado. | TFT_display.initTouchSPI(7, 6); |
| setTouchCalibration(minX,maxX,minY,maxY) | Mapeia os valores ADC brutos para coordenadas de pixel da tela. Obtenha esses valores no exemplo TouchCalibration. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / 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); |
| getTouch(x, y) | Obtém as coordenadas de toque calibradas em pixels da tela. Retorna true quando a tela está sendo pressionada. | if (TFT_display.getTouch(x, y)) { ... } |
| fillCircle(x, y, r, color) | Desenha um pequeno ponto no local do toque. | TFT_display.fillCircle(x, y, 3, RED); |
Botão de Toque
O exemplo TouchButton desenha botões retangulares na tela e compara as coordenadas de toque com os limites de cada botão. Quando um botão é tocado, ele é destacado e executa uma ação. Isso demonstra como construir uma interface de usuário mínima controlada por toque.
O pino T_IRQ é opcional neste exemplo. Passe -1 como argumento irq se você preferir não conectá-lo.
Como Executar
- Conecte o T_CS ao D7. O T_IRQ pode ficar desconectado — defina-o como -1 no sketch.
- Conecte o cabo USB Type-C.
- Cole o código, confirme a placa e a porta e pressione Upload.
- Toque nos botões exibidos na tela. Cada botão muda de cor quando é pressionado.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| initTouchSPI(cs, irq) | Inicializa o XPT2046. Passe -1 para irq para fazer polling sem o pino de interrupção. | TFT_display.initTouchSPI(7, -1); |
| setTouchCalibration(minX,maxX,minY,maxY) | Aplica a calibração para que getTouch() retorne coordenadas em pixels do display. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / 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); |
| getTouch(x, y) | Obtém a posição de toque calibrada atual. Retorna true enquanto a tela está pressionada. | if (TFT_display.getTouch(x, y)) { ... } |
| fillRect(x, y, w, h, color) | Desenha um retângulo colorido preenchido para o fundo do botão. | TFT_display.fillRect(10, 10, 120, 60, BLUE); |
Calibração do Toque
O exemplo TouchCalibration guia você na medição da faixa ADC bruta do seu painel de toque XPT2046. Toque em cada canto quando solicitado e observe os valores mínimo e máximo de X e Y impressos no Serial Monitor. Use esses quatro números na chamada setTouchCalibration() em todos os seus outros sketches de toque.
Como Executar
- Ligue o XPT2046 ao Uno R4 como descrito na seção Obter Ponto de Toque.
- Conecte o cabo USB Type-C.
- Cole o código, confirme a placa e a porta e pressione Upload.
- Abra o Serial Monitor a 9600 baud. Siga as instruções na tela para tocar em cada canto do display.
- Anote os quatro valores impressos e insira-os em setTouchCalibration() nos seus outros sketches de toque.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| initTouchSPI(cs, irq) | Inicializa o controlador de toque XPT2046. | TFT_display.initTouchSPI(7, 6); |
| readTouchRaw(x, y, z) | Lê os valores ADC brutos para medir a faixa de calibração. | TFT_display.readTouchRaw(x, y, z); |
| setTouchCalibration(minX,maxX,minY,maxY) | Armazena os valores de calibração para que getTouch() faça o mapeamento correto para as coordenadas de pixel. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / 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); |
SPI Personalizado
O exemplo CustomSPI mostra como fornecer uma instância SPIClass explícita ao construtor do display. Use essa abordagem quando o barramento SPI padrão estiver ocupado com outro periférico, quando você precisar compartilhar o barramento com configuração adicional ou quando quiser definir uma frequência de clock SPI personalizada.
O Uno R4 Minima e o WiFi expõem, cada um, um único barramento SPI de hardware em D11/D13/D12. O exemplo demonstra como passar &SPI explicitamente e ajustar a velocidade máxima do clock SPI.
Como Executar
- Ligue o display TFT ao Uno R4 como mostrado no diagrama de ligação.
- Conecte o cabo USB Type-C.
- Cole o código, confirme a placa e a porta e pressione Upload.
- O display inicia no barramento SPI explícito e renderiza um padrão de teste com barras de cores.
Referência Rápida de Métodos
| Método | O Que Faz | Uso |
|---|---|---|
| DIYables_ILI9341_SPI(w,h,cs,dc,rst,spi) | Variante do construtor que aceita um ponteiro para qualquer SPIClass. O padrão é &SPI quando o argumento é omitido. | DIYables_ILI9341_SPI tft(240, 320, 10, 9, 8, &SPI); |
| begin() | Inicializa o display no barramento SPI configurado. | TFT_display.begin(); |
Solução de Problemas
- Tela preta - Confirme que CS, DC, MOSI e SCK estão todos conectados. Uma linha CS ausente deixa o display inativo.
- Driver errado - Apenas uma linha de construtor deve estar ativa. As outras devem estar comentadas.
- Imagem deslocada ou cortada - A largura e a altura no construtor devem corresponder ao tamanho físico do painel.
- Touch não funciona - Execute o exemplo TouchCalibration para obter os valores de calibração específicos do seu painel.
Suporte de Plataformas
A biblioteca depende exclusivamente das APIs padrão do Arduino (SPI, digitalWrite, millis) e funciona em todas as plataformas compatíveis com Arduino, incluindo o Uno R4 Minima e o WiFi.