{"id":425,"date":"2026-09-18T11:39:28","date_gmt":"2026-09-18T11:39:28","guid":{"rendered":"https:\/\/build-mode-ak.com\/3-5-inch-tft-lcd-shield-2\/"},"modified":"2026-09-18T14:06:32","modified_gmt":"2026-09-18T14:06:32","slug":"3-5-inch-tft-lcd-shield","status":"publish","type":"post","link":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/","title":{"rendered":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits"},"content":{"rendered":"<section class=\"sws-page-title alignfull wp-block-sws-theme-page-title\">\n\t<div class=\"sws-page-title__inner\">\n\t\t\n\t\t\t\t\t<nav class=\"sws-page-title__nav\" aria-label=\"Migalhas de p\u00e3o\">\n\t\t\t\t<ol class=\"sws-page-title__trail\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"sws-page-title__crumb\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"sws-page-title__link\" href=\"https:\/\/build-mode-ak.com\/pt-pt\/\">In\u00edcio<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ol>\n\t\t\t<\/nav>\n\t\t\t<\/div><!-- .sws-page-title__inner -->\n\n\t\t\t<div class=\"sws-page-title__shapes\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<span class=\"sws-page-title__shape sws-page-title__shape--accent\">\n\t\t\t\t\t<svg class=\"sws-page-title__icon\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 64 64\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n  <path d=\"M7 32h10l4-10 6 20 6-20 6 20 6-20 4 10h8\"\/>\n<\/svg>\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"sws-page-title__shape sws-page-title__shape--secondary\">\n\t\t\t\t\t<svg class=\"sws-page-title__icon\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 64 64\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n  <path d=\"M8 32h17M25 15v34M39 15v34M39 32h17\"\/>\n<\/svg>\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"sws-page-title__shape sws-page-title__shape--tertiary\">\n\t\t\t\t\t<svg class=\"sws-page-title__icon\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 64 64\">\n  <path d=\"M7 32h50M46 16v32\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <path d=\"M21.5 18.5c-.7-.4-1.5.1-1.5 1v25c0 .9.8 1.4 1.5 1l21.7-12.4c.8-.5.8-1.7 0-2.2z\" fill=\"currentColor\"\/>\n<\/svg>\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"sws-page-title__shape sws-page-title__shape--accent\">\n\t\t\t\t\t<svg class=\"sws-page-title__icon\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 64 64\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n  <path d=\"M7 40h9C16 18 24 18 24 40C24 18 32 18 32 40C32 18 40 18 40 40C40 18 48 18 48 40h9\"\/>\n<\/svg>\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t<\/section>\n\n\n\n<p class=\"wp-block-paragraph\">A maior parte dos pequenos ecr\u00e3s usados em projetos de amadores fala SPI: uma linha de rel\u00f3gio, uma linha de dados e cada byte a passar espremido, um bit de cada vez. O shield vermelho de 3,5 polegadas deste artigo funciona de outra maneira. Ao vir\u00e1-lo, em vez de MOSI e SCK, encontram-se oito linhas de dados, de LCD_D0 a LCD_D7, pelo que cada ciclo de rel\u00f3gio transporta um byte inteiro. Com 480 \u00d7 320 p\u00edxeis, uma pel\u00edcula t\u00e1til resistiva e uma ranhura microSD, \u00e9 um dos maiores ecr\u00e3s que encaixam diretamente num Arduino Uno, sem um \u00fanico fio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vale a pena olhar para ele com aten\u00e7\u00e3o, mesmo para quem nunca teve um Uno. Lig\u00e1mo-lo a um ESP32-S3, que tem um perif\u00e9rico 8080 por hardware, pusemos o barramento a 20 MHz e reproduzimos v\u00eddeo de 480 \u00d7 320 em ecr\u00e3 inteiro a partir de um cart\u00e3o microSD, a 25 fotogramas por segundo; o resultado pode ver-se na sec\u00e7\u00e3o sobre a velocidade. A seguir: o que h\u00e1 na placa, como funciona o seu barramento e como program\u00e1-lo, de onde vem a velocidade e onde se perde, e o que construir com ele, de uma esta\u00e7\u00e3o meteorol\u00f3gica a uma moldura digital ou a um painel de parede.<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1000\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\" alt=\"O verso do shield TFT LCD de 3,5 polegadas com os componentes identificados. \u00c0 esquerda, as linhas de controlo LCD_RST, LCD_CS, LCD_RS, LCD_WR e LCD_RD e, a seguir, os pinos de alimenta\u00e7\u00e3o GND, GND, 5V e 3V3. \u00c0 direita, as linhas de dados LCD_D2 a LCD_D7 e, a seguir, LCD_D0, LCD_D1 e as linhas do microSD SD_CS, SD_DI, SD_DO e SD_SCK. Ao meio, dois chips de buffer do barramento, um regulador de 3,3 V, uma ranhura microSD e os quadrados impressos ILI9486 e ILI9488.\" class=\"wp-image-399\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg 1600w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt-300x188.jpg 300w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt-1024x640.jpg 1024w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt-768x480.jpg 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt-1536x960.jpg 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/a><figcaption class=\"wp-element-caption\">O verso do shield, onde est\u00e3o todas as inscri\u00e7\u00f5es: linhas de controlo e alimenta\u00e7\u00e3o \u00e0 esquerda, as oito linhas de dados e as linhas do microSD \u00e0 direita. Clique para ver a vers\u00e3o em tamanho real.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">De que placa se trata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As lojas vendem-no como \u00ab3.5 inch TFT LCD Shield for Arduino UNO\/Mega\u00bb, e h\u00e1 v\u00e1rias f\u00e1bricas a fazer placas que parecem iguais, mas diferem nos componentes. A deste artigo \u00e9 vermelha, com a serigrafia \u00ab3.5&#8243; TFT LCD Shield\u00bb e o c\u00f3digo de data 2026-01-27. O pormenor mais revelador est\u00e1 num canto: dois quadrados impressos com ILI9488 e ILI9486, e nenhum deles marcado. O controlador propriamente dito est\u00e1 montado em chip-on-glass, escondido debaixo do painel, pelo que a placa n\u00e3o diz qual dos dois traz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A nossa mostra uma imagem correta e est\u00e1vel com a sequ\u00eancia de inicializa\u00e7\u00e3o do ILI9488, por isso o mais prov\u00e1vel \u00e9 ser um ILI9488. \u00c9 uma hip\u00f3tese de trabalho, n\u00e3o uma identifica\u00e7\u00e3o: os dois controladores partilham os comandos b\u00e1sicos, e a sequ\u00eancia errada muitas vezes tamb\u00e9m produz imagem, s\u00f3 que com mau contraste ou cintila\u00e7\u00e3o. Outra placa da mesma loja pode trazer o outro chip. Na frente h\u00e1 uma pel\u00edcula t\u00e1til resistiva de 4 fios, com um cabo flex\u00edvel de quatro contactos ao longo da margem superior e o vidro marcado H1454 7-3. N\u00e3o h\u00e1 nenhum chip controlador de toque em toda a placa.<\/p>\n\n\n\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\" data-id=\"386\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front.jpg\" alt=\"A frente do shield: um painel de 3,5 polegadas, desligado, sob uma pel\u00edcula t\u00e1til resistiva com uma orla cinzenta estreita. Ao longo da margem superior corre um cabo flex\u00edvel de quatro contactos, no vidro l\u00ea-se H1454 7-3, e a placa vermelha aparece ao longo das margens esquerda e inferior.\" class=\"wp-image-386\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front.jpg 1200w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front-200x300.jpg 200w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front-683x1024.jpg 683w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front-768x1152.jpg 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-02-front-1024x1536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1800\" data-id=\"387\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back.jpg\" alt=\"O verso do shield: duas barras de pinos de cada lado, com inscri\u00e7\u00f5es LCD e SD, dois chips de 20 pinos perto do topo, um regulador de tr\u00eas pinos ao centro, uma ranhura microSD em baixo e a serigrafia \u00ab3.5\u2033 TFT LCD Shield\u00bb.\" class=\"wp-image-387\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back.jpg 1200w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back-200x300.jpg 200w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back-683x1024.jpg 683w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back-768x1152.jpg 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-03-back-1024x1536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n<figcaption class=\"blocks-gallery-caption wp-element-caption\">Frente e verso. O cabo flex\u00edvel da frente pertence \u00e0 pel\u00edcula t\u00e1til; tudo o resto, dos buffers do barramento \u00e0 ranhura microSD, fica no verso.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Caracter\u00edsticas t\u00e9cnicas<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Elemento<\/th><th>O que \u00e9<\/th><th>Na pr\u00e1tica<\/th><\/tr><\/thead><tbody><tr><td>Painel<\/td><td>TFT de 3,5 polegadas, resolu\u00e7\u00e3o nativa de 320 \u00d7 480, 480 \u00d7 320 na horizontal<\/td><td>153\u00a0600 p\u00edxeis: espa\u00e7o para um gr\u00e1fico com legendas, uma foto ou um fotograma de v\u00eddeo<\/td><\/tr><tr><td>Chip<\/td><td>ILI9486 ou ILI9488, em chip-on-glass; o nosso comporta-se como um ILI9488<\/td><td>Os dois precisam de sequ\u00eancias de arranque diferentes; a errada tamb\u00e9m d\u00e1 imagem, s\u00f3 que pior<\/td><\/tr><tr><td>Interface<\/td><td>Barramento paralelo ao estilo Intel 8080: oito linhas de dados, mais CS, RS, WR, RD e RST<\/td><td>13 pinos do anfitri\u00e3o; um byte por impulso de escrita<\/td><\/tr><tr><td>Cor<\/td><td>RGB666, 262K cores, 3 bytes por p\u00edxel: verificado. RGB565, 65K cores, 2 bytes: dever\u00e1 funcionar<\/td><td>Dois bytes por p\u00edxel cortariam o tr\u00e1fego num ter\u00e7o<\/td><\/tr><tr><td>Rel\u00f3gio de escrita<\/td><td>20 MHz verificados com fios de liga\u00e7\u00e3o; o fabricante do ILI9488 admite at\u00e9 25 MHz<\/td><td>Uma imagem completa em 23 ms com tr\u00eas bytes por p\u00edxel<\/td><\/tr><tr><td>Toque<\/td><td>Pel\u00edcula resistiva de 4 fios, sem chip controlador<\/td><td>O anfitri\u00e3o mede-a com o seu pr\u00f3prio ADC, por pinos em comum com o ecr\u00e3<\/td><\/tr><tr><td>Cart\u00e3o<\/td><td>Ranhura microSD ligada por SPI, pinos D10\u2013D13 do Uno<\/td><td>Fotos, tipos de letra e v\u00eddeo na pr\u00f3pria placa<\/td><\/tr><tr><td>Energia<\/td><td>5 V no pino 5V; regulador AMS1117 de 3,3 V na placa<\/td><td>Uma s\u00f3 fonte para o painel, a l\u00f3gica e a luz de fundo<\/td><\/tr><tr><td>N\u00edveis l\u00f3gicos<\/td><td>L\u00f3gica de 3,3 V do anfitri\u00e3o verificada; o shield foi feito para a l\u00f3gica de 5 V de um Uno<\/td><td>Funciona com ESP32, RP2040 ou STM32, tal como com placas AVR<\/td><\/tr><tr><td>Luz de fundo<\/td><td>Sempre acesa; sem pino de controlo<\/td><td>Sem regula\u00e7\u00e3o por software; para poupar energia, desligam-se os 5 V<\/td><\/tr><tr><td>Formato<\/td><td>Shield para Arduino Uno R3, 28 pinos<\/td><td>Encaixa num Uno ou num Mega; qualquer outro anfitri\u00e3o precisa de fios de liga\u00e7\u00e3o<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-heading-color has-surface-alt-background-color has-text-color has-background wp-block-paragraph\" style=\"padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">Primeiro, um pouco de aritm\u00e9tica. Uma imagem tem <code>480 \u00d7 320 = 153\u00a0600<\/code> p\u00edxeis: 460\u00a0800 bytes com tr\u00eas bytes por p\u00edxel, 307\u00a0200 com dois. O barramento de 8 bits move um byte por impulso de escrita, por isso a 20 MHz transporta 20 milh\u00f5es de bytes por segundo, e uma imagem completa demora 23 ms, ou 15,4 ms com dois bytes por p\u00edxel. O SPI move um bit por ciclo de rel\u00f3gio. A 20 MHz, o limite que a folha de caracter\u00edsticas do ILI9488 fixa para a sua interface SPI, a mesma imagem demora 184 ms, e mesmo em overclock a 40 MHz demora 92 ms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Os pinos: ligar pelas inscri\u00e7\u00f5es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O shield segue a disposi\u00e7\u00e3o do Arduino Uno, mas as inscri\u00e7\u00f5es contam mais do que os n\u00fameros do Uno. O byte de dados est\u00e1 repartido de uma forma que surpreende muita gente: LCD_D2 a LCD_D7 ficam nos pinos D2 a D7 do Uno, enquanto LCD_D0 e LCD_D1 passaram para D8 e D9, para que D0 e D1 fiquem livres para a porta s\u00e9rie do Uno.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Pino do Uno<\/th><th>Inscri\u00e7\u00e3o<\/th><th>Fun\u00e7\u00e3o<\/th><\/tr><\/thead><tbody><tr><td>A0<\/td><td>LCD_RD<\/td><td>Impulso de leitura, ativo a n\u00edvel baixo; manter a n\u00edvel alto<\/td><\/tr><tr><td>A1<\/td><td>LCD_WR<\/td><td>Impulso de escrita, ativo a n\u00edvel baixo; o painel captura os dados no flanco ascendente<\/td><\/tr><tr><td>A2<\/td><td>LCD_RS<\/td><td>Sele\u00e7\u00e3o de registo: 0 para comando, 1 para dados; D\/C noutras bibliotecas<\/td><\/tr><tr><td>A3<\/td><td>LCD_CS<\/td><td>Sele\u00e7\u00e3o do chip, ativo a n\u00edvel baixo<\/td><\/tr><tr><td>A4<\/td><td>LCD_RST<\/td><td>Reposi\u00e7\u00e3o, ativo a n\u00edvel baixo<\/td><\/tr><tr><td>D2\u2013D7<\/td><td>LCD_D2\u2013D7<\/td><td>Bits de dados 2 a 7<\/td><\/tr><tr><td>D8, D9<\/td><td>LCD_D0, LCD_D1<\/td><td>Bits de dados 0 e 1<\/td><\/tr><tr><td>D10<\/td><td>SD_CS<\/td><td>Sele\u00e7\u00e3o do chip do microSD<\/td><\/tr><tr><td>D11<\/td><td>SD_DI<\/td><td>Entrada de dados do microSD, MOSI<\/td><\/tr><tr><td>D12<\/td><td>SD_DO<\/td><td>Sa\u00edda de dados do microSD, MISO<\/td><\/tr><tr><td>D13<\/td><td>SD_SCK<\/td><td>Rel\u00f3gio do microSD<\/td><\/tr><tr><td>5V, GND<\/td><td>5V, GND<\/td><td>Alimentam toda a placa<\/td><\/tr><tr><td>3.3V<\/td><td>3V3<\/td><td>N\u00e3o se sabe a que est\u00e1 ligado; n\u00e3o o usar para alimentar nada<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 duas coisas que apanham muita gente desprevenida. As inscri\u00e7\u00f5es est\u00e3o impressas s\u00f3 no verso, por isso, com o ecr\u00e3 virado para si, as filas da esquerda e da direita trocam de lado: a liga\u00e7\u00e3o faz-se estritamente pelas inscri\u00e7\u00f5es, nunca pela posi\u00e7\u00e3o. E, num Uno, o shield ocupa quase tudo. O que sobra s\u00e3o D0 e D1, que s\u00e3o a porta s\u00e9rie, o A5 sem inscri\u00e7\u00e3o e os pinos SPI partilhados com o cart\u00e3o de mem\u00f3ria. O I\u00b2C desaparece, porque o A4, o SDA do Uno, \u00e9 o LCD_RST. Por isso, uma esta\u00e7\u00e3o meteorol\u00f3gica com um par de sensores pede um Mega ou, melhor ainda, uma placa de 32 bits com fios de liga\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como fala o barramento de 8 bits<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O barramento \u00e9 do estilo Intel 8080, a que a folha de caracter\u00edsticas do ILI9488 chama DBI Type B. N\u00e3o tem rel\u00f3gio no sentido do SPI: o anfitri\u00e3o p\u00f5e um byte em D0\u2013D7 e d\u00e1 um impulso em WR, e o painel captura o byte no flanco ascendente. O RS diz o que \u00e9 o byte: 0 para um comando e 1 para um par\u00e2metro ou dados de p\u00edxeis. O CS delimita a transa\u00e7\u00e3o, o RST rep\u00f5e o controlador e o RD \u00e9 o impulso de leitura.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Sinal<\/th><th>Em repouso<\/th><th>Fun\u00e7\u00e3o<\/th><\/tr><\/thead><tbody><tr><td>CS<\/td><td>Alto<\/td><td>Baixo enquanto o anfitri\u00e3o fala com o painel<\/td><\/tr><tr><td>RS<\/td><td>Qualquer<\/td><td>0 para um byte de comando, 1 para um par\u00e2metro ou dados de p\u00edxeis<\/td><\/tr><tr><td>WR<\/td><td>Alto<\/td><td>Um impulso baixo e curto por byte; o painel captura D0\u2013D7 no flanco ascendente<\/td><\/tr><tr><td>RD<\/td><td>Alto<\/td><td>Nunca pode ficar a flutuar; mantido alto, exceto durante leituras<\/td><\/tr><tr><td>RST<\/td><td>Alto<\/td><td>N\u00edvel baixo rep\u00f5e o controlador<\/td><\/tr><tr><td>D0\u2013D7<\/td><td>\u2014<\/td><td>Comandadas pelo anfitri\u00e3o; o painel s\u00f3 as comanda enquanto RD estiver baixo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt.png\" alt=\"Diagrama temporal de uma escrita no barramento de 8 bits. O CS desce e fica baixo. Com o RS baixo, o byte 0x2C aparece em D0\u2013D7 e um impulso de WR envia-o. Depois o RS sobe e seguem-se os bytes R, G, B, R, G, B, um impulso de WR para cada um. Um marcador verde assinala cada flanco ascendente de WR, um per\u00edodo de byte est\u00e1 marcado como 50 ns a 20 MHz, e o RD fica alto do princ\u00edpio ao fim.\" class=\"wp-image-404\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt.png 1600w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt-300x169.png 300w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt-1024x576.png 1024w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt-768x432.png 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-04-write-cycle-pt-pt-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/a><figcaption class=\"wp-element-caption\">Uma transa\u00e7\u00e3o de escrita: um byte de comando com o RS baixo e, depois, os dados de p\u00edxeis com o RS alto. Cada flanco ascendente de WR move um byte.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">E o protocolo \u00e9 s\u00f3 isto. Um comando sai com o RS baixo, e os seus par\u00e2metros seguem com o RS alto. Os p\u00edxeis n\u00e3o s\u00e3o diferentes dos par\u00e2metros: depois do comando RAMWR, 0x2C, cada byte enviado com o RS alto vai parar \u00e0 mem\u00f3ria do painel, e o fluxo pode continuar o tempo que o anfitri\u00e3o quiser.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Desenhar: uma janela e um fluxo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O controlador guarda a imagem inteira na sua pr\u00f3pria mem\u00f3ria e atualiza o vidro a partir dela sozinho, por isso o anfitri\u00e3o s\u00f3 envia o que muda. Para desenhar, abre uma janela: o CASET, 0x2A, define a primeira e a \u00faltima coluna, e o PASET, 0x2B, a primeira e a \u00faltima linha. Depois do RAMWR, os p\u00edxeis preenchem essa janela da esquerda para a direita e de cima para baixo, sem coordenadas pelo meio. Duas fun\u00e7\u00f5es de barramento, uma para um byte de comando e outra para bytes de dados, s\u00e3o tudo o que \u00e9 preciso para portar o c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>static void set_window(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {\n    uint8_t ca[4] = { (uint8_t)(x0 &gt;&gt; 8), (uint8_t)x0,\n                      (uint8_t)(x1 &gt;&gt; 8), (uint8_t)x1 };\n    uint8_t pa[4] = { (uint8_t)(y0 &gt;&gt; 8), (uint8_t)y0,\n                      (uint8_t)(y1 &gt;&gt; 8), (uint8_t)y1 };\n    lcd_write_cmd(0x2A); lcd_write_data(ca, 4);   \/\/ CASET: columns\n    lcd_write_cmd(0x2B); lcd_write_data(pa, 4);   \/\/ PASET: rows\n}\n\n\/\/ A solid rectangle in RGB666: 3 bytes per pixel, one window\nstatic void fill_rect(uint16_t x, uint16_t y, uint16_t w, uint16_t h,\n                      uint8_t r, uint8_t g, uint8_t b) {\n    const uint8_t px[3] = { r, g, b };\n    set_window(x, y, x + w - 1, y + h - 1);\n    lcd_write_cmd(0x2C);                           \/\/ RAMWR\n    for (uint32_t i = 0; i &lt; (uint32_t)w * h; i++) {\n        lcd_write_data(px, 3);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 na janela que a velocidade se ganha ou se perde. Conv\u00e9m enviar o maior n\u00famero poss\u00edvel de p\u00edxeis dentro de uma s\u00f3 janela: uma janela por p\u00edxel custa onze bytes de comandos e coordenadas por cada tr\u00eas bytes de cor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Formatos de p\u00edxel e orienta\u00e7\u00e3o<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dois registos decidem o aspeto da imagem. O COLMOD, 0x3A, define o formato de p\u00edxel. 0x66 \u00e9 RGB666, tr\u00eas bytes por p\u00edxel com a cor nos seis bits superiores de cada byte, e \u00e9 isso que funciona na nossa placa. 0x55 \u00e9 RGB565, dois bytes por p\u00edxel: as duas folhas de caracter\u00edsticas indicam-no para o barramento paralelo e as bibliotecas populares usam-no a\u00ed, mas ainda n\u00e3o o test\u00e1mos neste exemplar. Se os bytes enviados por p\u00edxel n\u00e3o corresponderem ao COLMOD, os preenchimentos s\u00f3lidos saem como riscas finas de cores erradas que cobrem s\u00f3 parte da janela.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O MADCTL, 0x36, define a orienta\u00e7\u00e3o e a ordem das cores. Nesta placa, 0x28 d\u00e1 uma imagem horizontal de 480 \u00d7 320 correta e sem espelhamento, e \u00e9 o bit BGR inclu\u00eddo nesse valor que faz as cores seguirem pela ordem simples R, G, B. O vermelho e o azul trocados corrigem-se com esse bit, o espelhamento com os bits MX e MY e os eixos trocados com o MV, nunca no c\u00f3digo da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>MADCTL<\/th><th>Imagem<\/th><th>Nesta placa<\/th><\/tr><\/thead><tbody><tr><td>0x48<\/td><td>Vertical, 320 \u00d7 480<\/td><td>Valor padr\u00e3o, n\u00e3o testado<\/td><\/tr><tr><td>0x28<\/td><td>Horizontal, 480 \u00d7 320<\/td><td>Verificado<\/td><\/tr><tr><td>0x88<\/td><td>Vertical, invertida<\/td><td>N\u00e3o testado<\/td><\/tr><tr><td>0xE8<\/td><td>Horizontal, invertida<\/td><td>N\u00e3o testado<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">ILI9486 ou ILI9488?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Em teoria, o controlador identifica-se: o comando 0xD3 devolve um byte fict\u00edcio seguido de 0x00, 0x94 e 0x86 ou 0x88. Na pr\u00e1tica, muitos shields desta fam\u00edlia s\u00e3o s\u00f3 de escrita. Os seus buffers do barramento est\u00e3o ligados num s\u00f3 sentido, da barra de pinos para o painel, pelo que nada do que o painel diz chega alguma vez ao anfitri\u00e3o. A popular biblioteca MCUFRIEND_kbv acaba ent\u00e3o por ler de volta o seu pr\u00f3prio byte de comando e indica 0xD3D3 como ID; o seu sketch de teste assinala esse caso como um shield s\u00f3 de escrita.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Numa placa assim, o controlador identifica-se a olho. Inicializa-se com a sequ\u00eancia do ILI9488 e desenham-se preenchimentos s\u00f3lidos, gradientes de cinzento e de cor e uma grelha de um p\u00edxel; depois repete-se com a sequ\u00eancia do ILI9486 e fica-se com a que der gradientes suaves, bom contraste e nenhuma cintila\u00e7\u00e3o. N\u00e3o tent\u00e1mos ler o ID na nossa. Com a sequ\u00eancia do ILI9488 a imagem fica certa, e por isso \u00e9 essa a sequ\u00eancia que se segue.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>A sequ\u00eancia de inicializa\u00e7\u00e3o do ILI9488 que funciona nesta placa<\/summary>\n<pre class=\"wp-block-code\"><code>RST: high 50 ms, low 50 ms, high 150 ms             ; hardware reset\n0x01                                                ; SWRESET, wait 120 ms\n0x28                                                ; DISPOFF\n0xE0: 00 03 09 08 16 0A 3F 78 4C 09 0A 08 16 1A 0F  ; positive gamma\n0xE1: 00 16 19 03 0F 05 32 45 46 04 0E 0D 35 37 0F  ; negative gamma\n0xC0: 17 15                                         ; power control 1\n0xC1: 41                                            ; power control 2\n0xC5: 00 12 80                                      ; VCOM control\n0x36: 48                                            ; MADCTL: portrait, BGR\n0x3A: 66                                            ; COLMOD: RGB666\n0xB0: 00                                            ; interface mode\n0xB1: A0                                            ; frame rate\n0xB4: 02                                            ; inversion control\n0xB6: 02 02 3B                                      ; display function\n0xB7: C6                                            ; entry mode\n0xF7: A9 51 2C 82                                   ; adjust control 3\n0x11                                                ; SLPOUT, wait 120 ms\n0x29                                                ; DISPON, wait 25 ms\n0x36: 28                                            ; MADCTL: landscape<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cada linha \u00e9 um comando seguido dos seus bytes de par\u00e2metros. Com o COLMOD a 0x55 em vez de 0x66, o painel esperaria RGB565, que ainda n\u00e3o test\u00e1mos. Os valores dos registos coincidem com os do driver ILI9488 do TFT_eSPI, exceto que a biblioteca escolhe 0x55 para barramentos paralelos. A alternativa para o ILI9486 est\u00e1 no guia de programa\u00e7\u00e3o no fim do artigo.<\/p>\n<\/details>\n\n\n\n<h2 class=\"wp-block-heading\">De onde vem a velocidade<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O SPI move um bit por ciclo de rel\u00f3gio. O barramento de 8 bits move um byte. Com o mesmo rel\u00f3gio, s\u00e3o oito vezes mais dados, e \u00e9 s\u00f3 por isso que esta interface antiquada ainda anda por a\u00ed: precisa de treze pinos em vez de quatro ou cinco, mas preenche um ecr\u00e3 grande numa fra\u00e7\u00e3o do tempo.<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1040\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt.png\" alt=\"Em cima: duas linhas temporais partilham oito ciclos de rel\u00f3gio; no SPI transportam os oito bits de um byte, no barramento de 8 bits oito bytes inteiros. Em baixo: um gr\u00e1fico de barras do tempo que uma imagem completa de 480 por 320 passa no barramento: 184 ms por SPI a 20 MHz, 92 ms por SPI a 40 MHz, 23 ms pelo barramento de 8 bits a 20 MHz com tr\u00eas bytes por p\u00edxel e 15,4 ms com dois. Uma linha vertical marca os 40 ms.\" class=\"wp-image-409\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt.png 1600w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt-300x195.png 300w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt-1024x666.png 1024w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt-768x499.png 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-05-bus-speed-pt-pt-1536x998.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/a><figcaption class=\"wp-element-caption\">Com o mesmo rel\u00f3gio, o barramento de 8 bits move oito vezes mais dados. As barras v\u00eam da aritm\u00e9tica; das quatro, s\u00f3 a configura\u00e7\u00e3o de 23 ms correu na nossa placa.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nesta fam\u00edlia de controladores em particular, o SPI tem ainda outra desvantagem. Por SPI, o ILI9486 s\u00f3 aceita cor completa em formato de 18 bits, e, embora a folha de caracter\u00edsticas do ILI9488 indique cor de 16 bits para o seu modo SPI de 4 fios, na pr\u00e1tica estes chips s\u00e3o comandados com tr\u00eas bytes por p\u00edxel, que \u00e9 exatamente o que fazem as bibliotecas populares. A mesma folha de caracter\u00edsticas limita a 20 MHz o rel\u00f3gio de escrita SPI do ILI9488. O seu barramento paralelo admite um ciclo de escrita de 40 ns, ou seja, 25 MHz, pelo que os nossos 20 MHz ficam dentro da especifica\u00e7\u00e3o. O ILI9486 \u00e9 mais lento: a sua folha de caracter\u00edsticas exige pelo menos 66 ns por escrita, cerca de 15 MHz. Se a sua placa tiver afinal esse chip, conv\u00e9m come\u00e7ar abaixo desse valor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O barramento, por\u00e9m, s\u00f3 \u00e9 t\u00e3o r\u00e1pido quanto o anfitri\u00e3o que o comanda. Alternar treze pinos um a um com <code>digitalWrite()<\/code> transforma a interface mais r\u00e1pida da placa numa das mais lentas. Escrever registos de porta inteiros \u00e9 muito melhor, e um perif\u00e9rico por hardware com DMA \u00e9 o melhor de tudo: o LCD_CAM de um ESP32-S3, o PIO de um RP2040 ou o FSMC de um STM32 enviam os bytes sozinhos enquanto o processador prepara os seguintes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O nosso teste: v\u00eddeo a 25 fps a partir de um cart\u00e3o microSD<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O anfitri\u00e3o foi a <a href=\"https:\/\/build-mode-ak.com\/pt-pt\/esp32-s3-cam-n16r8\/\">ESP32-S3-CAM N16R8<\/a> do nosso artigo anterior, ligada ao shield com fios de liga\u00e7\u00e3o. Nessa placa, as 13 linhas do barramento ficaram com GPIO que normalmente s\u00e3o da c\u00e2mara, pelo que a c\u00e2mara ficou de fora deste teste. O barramento funcionou com o driver esp_lcd i80 do ESP-IDF, no perif\u00e9rico LCD_CAM do S3, com um rel\u00f3gio de escrita de 20 MHz, a sequ\u00eancia do ILI9488, RGB666 e orienta\u00e7\u00e3o horizontal. Dois buffers de DMA de 30\u00a0720 bytes, que chegam para 10\u00a0240 p\u00edxeis cada um, revezam-se: enquanto um segue a caminho do painel, o outro vai sendo preenchido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O leitor reparte o trabalho pelos dois n\u00facleos. Um l\u00ea ficheiros MJPEG do cart\u00e3o microSD da pr\u00f3pria placa; o outro descodifica cada fotograma com a biblioteca JPEGDEC e empurra os blocos descodificados diretamente para os buffers de DMA, convertendo RGB565 em RGB666 pelo caminho. O resultado \u00e9 v\u00eddeo est\u00e1vel de 480 \u00d7 320 em ecr\u00e3 inteiro a 25 fotogramas por segundo. Dos 40 ms de que cada fotograma disp\u00f5e, o barramento gasta 23. Por SPI em overclock a 40 MHz, o mesmo fotograma precisaria de 92 ms s\u00f3 no barramento, pelo que os 25 fps ficariam fora de alcance antes de se descodificar um \u00fanico p\u00edxel.<\/p>\n\n\n\n<figure class=\"wp-block-video alignwide\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls poster=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-07-test-video-poster.jpg\" preload=\"none\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-07-test-video.mp4\" playsinline><\/video><figcaption class=\"wp-element-caption\">O nosso teste em v\u00eddeo. A ESP32-S3-CAM N16R8, na placa de ensaio em baixo, comanda o shield atrav\u00e9s de uma fita de fios de liga\u00e7\u00e3o e reproduz clipes MJPEG de 480 \u00d7 320 a partir do seu cart\u00e3o microSD a 25 fps. O pequeno ecr\u00e3 \u00e0 direita pertence a outra placa. 33 segundos, sem som.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Configurar o barramento exige duas estruturas. \u00c9 assim que o nosso driver o faz. O RD n\u00e3o entra de todo: o esp_lcd n\u00e3o tem caminho de leitura, por isso um GPIO comum limita-se a manter o RD a n\u00edvel alto.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>esp_lcd_i80_bus_config_t bus_config = {};\nbus_config.dc_gpio_num = PIN_LCD_RS;\nbus_config.wr_gpio_num = PIN_LCD_WR;\nbus_config.clk_src = LCD_CLK_SRC_PLL160M;\nbus_config.data_gpio_nums[0] = PIN_LCD_D0;     \/\/ likewise [1] to [7]\nbus_config.bus_width = 8;\n\/\/ One DMA chunk: 32 lines of 320 pixels in RGB666\nbus_config.max_transfer_bytes = 320 * 32 * 3;\nesp_lcd_new_i80_bus(&amp;bus_config, &amp;i80_bus);\n\nesp_lcd_panel_io_i80_config_t io_config = {};\nio_config.cs_gpio_num = PIN_LCD_CS;\nio_config.pclk_hz = 20 * 1000 * 1000;          \/\/ 20 MHz write clock\nio_config.trans_queue_depth = 10;\nio_config.lcd_cmd_bits = 8;\nio_config.lcd_param_bits = 8;\nio_config.dc_levels.dc_cmd_level = 0;          \/\/ RS low: command\nio_config.dc_levels.dc_data_level = 1;         \/\/ RS high: data\nesp_lcd_new_panel_io_i80(i80_bus, &amp;io_config, &amp;io_handle);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A partir da\u00ed, <code>esp_lcd_panel_io_tx_param()<\/code> envia comandos com os seus par\u00e2metros e <code>esp_lcd_panel_io_tx_color()<\/code> coloca dados de p\u00edxeis na fila do DMA e regressa de imediato. \u00c9 tamb\u00e9m a\u00ed que est\u00e1 a armadilha: um buffer n\u00e3o pode voltar a ser preenchido antes de a sua transfer\u00eancia terminar, sen\u00e3o saem blocos da imagem corrompidos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Restam dois limites. Com as defini\u00e7\u00f5es habituais, o controlador atualiza o vidro a partir da sua mem\u00f3ria cerca de 60 vezes por segundo, e o shield n\u00e3o leva aos pinos o sinal de tearing effect que permitiria ao anfitri\u00e3o sincronizar as escritas com essa atualiza\u00e7\u00e3o, pelo que um movimento r\u00e1pido pode mostrar uma linha de corte. E um buffer de imagem completo, 460\u00a0800 bytes em RGB666, s\u00f3 cabe em PSRAM externa, e \u00e9 por isso que o nosso driver envia antes pequenos blocos a partir da mem\u00f3ria interna.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Que anfitri\u00e3o, que biblioteca<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O shield foi desenhado para o Uno, mas o Uno \u00e9 a casa mais lenta que pode ter. A tabela resume os caminhos habituais; o guia de programa\u00e7\u00e3o no fim tem as restri\u00e7\u00f5es de pinos de cada um.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Anfitri\u00e3o<\/th><th>Caminho<\/th><th>Cuidados<\/th><\/tr><\/thead><tbody><tr><td>Arduino Uno<\/td><td>Encaixa. MCUFRIEND_kbv com Adafruit_GFX, mais Adafruit TouchScreen para a pel\u00edcula<\/td><td>2 KB de SRAM: sem buffer de imagem, as imagens v\u00e3o sendo lidas do cart\u00e3o. O byte de dados est\u00e1 repartido por duas portas, o que custa tempo<\/td><\/tr><tr><td>Arduino Mega<\/td><td>Encaixa. MCUFRIEND_kbv<\/td><td>Os pinos do Uno caem em portas dispersas do Mega, um mapeamento mais lento do que no Uno; mem\u00f3ria e pinos de sobra<\/td><\/tr><tr><td>ESP32<\/td><td>esp_lcd i80 atrav\u00e9s do I2S, LovyanGFX, TFT_eSPI<\/td><td>Os GPIO34\u201339 s\u00e3o s\u00f3 de entrada. Placas em formato Uno, como a Wemos D1 R32, p\u00f5em neles LCD_RS, LCD_CS e LCD_RST, e esses tr\u00eas t\u00eam de ser religados<\/td><\/tr><tr><td>ESP32-S3<\/td><td>esp_lcd i80 no LCD_CAM com DMA, como no nosso teste; o LovyanGFX e o Arduino_GFX tamb\u00e9m usam o LCD_CAM<\/td><td>Qualquer GPIO pode levar qualquer sinal. O TFT_eSPI tamb\u00e9m funciona, mas no S3 alterna os registos GPIO sem DMA<\/td><\/tr><tr><td>RP2040<\/td><td>TFT_eSPI com PIO e DMA<\/td><td>D0\u2013D7 t\u00eam de ficar em GPIO consecutivos<\/td><\/tr><tr><td>STM32<\/td><td>FSMC ou FMC em modo 8080, onde o encapsulamento o permita; caso contr\u00e1rio, escrita nas portas<\/td><td>Os pinos do FSMC s\u00e3o fixos para cada encapsulamento<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Seja qual for o anfitri\u00e3o, conv\u00e9m planear os pinos a pensar no toque: a pel\u00edcula partilha linhas com o ecr\u00e3, e os seus terminais anal\u00f3gicos precisam de pinos com ADC. Mais sobre isso adiante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Num Uno, o arranque mais r\u00e1pido \u00e9 com o MCUFRIEND_kbv. N\u00f3s pr\u00f3prios n\u00e3o corremos este sketch num Uno: \u00e9 o caminho habitual da biblioteca, com um acrescento para placas s\u00f3 de escrita.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Adafruit_GFX.h&gt;\n#include &lt;MCUFRIEND_kbv.h&gt;\n\nMCUFRIEND_kbv tft;\n\nvoid setup() {\n  Serial.begin(9600);\n  uint16_t id = tft.readID();\n  Serial.print(F(\"ID = 0x\"));\n  Serial.println(id, HEX);\n  \/\/ A write-only shield reads back 0xD3D3: name the controller yourself\n  if (id == 0xD3D3) id = 0x9488;\n  tft.begin(id);\n  tft.setRotation(1);              \/\/ landscape, 480 \u00d7 320\n  tft.fillScreen(0x0000);          \/\/ black\n  tft.setTextColor(0x07E0);        \/\/ green\n  tft.setTextSize(3);\n  tft.setCursor(24, 24);\n  tft.print(F(\"Hello, 480 x 320\"));\n}\n\nvoid loop() {}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Toque sem controlador t\u00e1til<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A pel\u00edcula t\u00e1til \u00e9 do tipo resistivo cl\u00e1ssico de 4 fios: duas camadas resistivas que se tocam onde se carrega. N\u00e3o h\u00e1 nenhum XPT2046 ou chip semelhante para a ler. Em vez disso, os seus quatro el\u00e9trodos est\u00e3o ligados a linhas que o ecr\u00e3 j\u00e1 usa, e o anfitri\u00e3o mede-os com o seu pr\u00f3prio ADC. Aplica uma tens\u00e3o a uma das camadas e l\u00ea o ponto em que a outra camada lhe toca; depois troca os pap\u00e9is para o outro eixo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As linhas que levam os el\u00e9trodos variam de placa para placa, e na nossa ainda n\u00e3o as identific\u00e1mos. Nos shields desta fam\u00edlia, os terminais anal\u00f3gicos costumam estar em LCD_WR, LCD_RS ou LCD_CS, e os digitais em linhas de dados como LCD_D6 e LCD_D7. Um mult\u00edmetro encontra-os num minuto: com a placa sem alimenta\u00e7\u00e3o, dois pares entre as linhas de controlo e as linhas de dados medem algumas centenas de ohms, cerca de 300 numa camada e 500 na outra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ler o toque significa ent\u00e3o pedir esses pinos emprestados ao ecr\u00e3. Espera-se at\u00e9 o barramento estar em repouso, mant\u00e9m-se inativa a linha de controlo que n\u00e3o \u00e9 el\u00e9trodo, para que o painel ignore o ru\u00eddo, recolhem-se v\u00e1rias amostras e devolve-se cada pino ao seu papel no ecr\u00e3 antes da transfer\u00eancia seguinte. Sem este \u00faltimo passo, o resultado s\u00e3o p\u00edxeis aleat\u00f3rios e um ecr\u00e3 congelado. Com um perif\u00e9rico por hardware como o LCD_CAM \u00e9 ainda mais dif\u00edcil, porque os pinos t\u00eam de ser libertados do perif\u00e9rico e voltar a ser associados a ele, por isso conv\u00e9m decidir como se vai ler o toque antes de fixar o mapa de pinos. A pel\u00edcula tamb\u00e9m prefere alvos grandes: bot\u00f5es do tamanho da ponta de um dedo servem-lhe muito melhor do que uma interface ao estilo de um telem\u00f3vel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">microSD, alimenta\u00e7\u00e3o e retroilumina\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A ranhura microSD tem as suas pr\u00f3prias linhas SPI, SD_CS, SD_DI, SD_DO e SD_SCK, nos pinos D10 a D13 do Uno, eletricamente separadas do barramento do ecr\u00e3. Em qualquer outro anfitri\u00e3o, pode ir para quaisquer pinos com SPI. N\u00e3o a test\u00e1mos neste exemplar: para o v\u00eddeo acima, o ESP32-S3 leu a ranhura da sua pr\u00f3pria placa. Se n\u00e3o for usada, deixam-se as suas linhas desligadas ou mant\u00e9m-se o SD_CS a n\u00edvel alto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A alimenta\u00e7\u00e3o entra como 5 V no pino 5V. O regulador da placa produz 3,3 V para o painel e para os buffers, e um anfitri\u00e3o de 3,3 V comanda a l\u00f3gica diretamente. O pino 3V3 \u00e9 para deixar em paz: n\u00e3o se sabe a que est\u00e1 ligado, e n\u00e3o substitui a alimenta\u00e7\u00e3o de 5 V. A retroilumina\u00e7\u00e3o n\u00e3o tem pino de controlo e fica acesa enquanto a placa tiver alimenta\u00e7\u00e3o, pelo que n\u00e3o pode ser regulada nem desligada por software; DISPOFF e SLPIN apagam a imagem, n\u00e3o a luz. N\u00e3o medimos a corrente. Como refer\u00eancia aproximada, a especifica\u00e7\u00e3o do painel de um shield Uno semelhante de 3,5 polegadas indica 90 mA t\u00edpicos para a sua retroilumina\u00e7\u00e3o de seis LED, pelo que uma alimenta\u00e7\u00e3o USB fraca ou o pequeno regulador de uma placa de desenvolvimento merecem ser verificados com um amper\u00edmetro.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que construir com ele<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">480 \u00d7 320 \u00e9 um tamanho confort\u00e1vel: grande o bastante para um gr\u00e1fico com legendas leg\u00edveis, uma fotografia ou uma fila de bot\u00f5es do tamanho da ponta de um dedo, e pequeno o bastante para se preencher depressa. \u00c9 por isso que esta classe de ecr\u00e3 aparece constantemente em projetos, tanto neste mesmo shield como nos seus parentes.<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1210\" src=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt.png\" alt=\"Quatro interfaces desenhadas a 480 por 320. Um ecr\u00e3 meteorol\u00f3gico escuro com 18 graus, parcialmente nublado, humidade de 64 %, press\u00e3o de 1014 hPa, vento de 3 m\/s e um gr\u00e1fico da temperatura em 24 horas. Uma imagem de um lago de montanha com os pontos do diaporama. Um painel t\u00e1til claro com seis bot\u00f5es grandes para as luzes, o aquecimento, a ventoinha, a impressora 3D, a porta de entrada e uma cena para o ser\u00e3o. Um ecr\u00e3 de oscilosc\u00f3pio com uma grelha, uma onda sinusoidal e uma onda quadrada.\" class=\"wp-image-414\" srcset=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt.png 1600w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt-300x227.png 300w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt-1024x774.png 1024w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt-768x581.png 768w, https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-06-screens-pt-pt-1536x1162.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/a><figcaption class=\"wp-element-caption\">Quatro tarefas que o ecr\u00e3 faz bem, desenhadas na sua resolu\u00e7\u00e3o real de 480 \u00d7 320.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">1. Uma esta\u00e7\u00e3o meteorol\u00f3gica<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A montagem mais popular de todas. No projeto do Instructables Second Multi-functional Weather Station, um Arduino Mega leva exatamente este tipo de shield ILI9486 de 3,5 polegadas, juntamente com um rel\u00f3gio DS3231 e sensores DHT22 e BMP280, e usa a ranhura de cart\u00e3o do shield para um \u00e1lbum de cerca de mil fotografias convertidas para BMP. Outras montagens dispensam por completo os sensores. No blogue thesolaruniverse, um ESP32 com um shield de 3,95 polegadas do mesmo desenho vai buscar o estado do tempo ao OpenWeatherMap por Wi\u2011Fi e desenha-o atrav\u00e9s do barramento de 8 bits com o TFT_eSPI. Um projeto da Elektor de dezembro de 2023 faz o mesmo numa placa Makerfabs ESP32-S3 com um ILI9488 de 3,5 polegadas e l\u00ea as defini\u00e7\u00f5es de Wi\u2011Fi e a cidade de um ficheiro no cart\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Uma moldura digital<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A ranhura microSD faz do shield uma moldura quase por si s\u00f3. O MCUFRIEND_kbv traz um exemplo showBMP que l\u00ea ficheiros BMP diretamente do cart\u00e3o nos pinos 10 a 13 e indica quanto tempo cada um demorou a carregar. Num ESP32, o driver esp-idf-parallel-tft de nopnop2002 mostra ficheiros BMP, JPEG e PNG em shields desta fam\u00edlia e tamb\u00e9m calibra a sua pel\u00edcula t\u00e1til. \u00c9 nas transi\u00e7\u00f5es, como esbatimentos e cortinas, que o barramento paralelo compensa: cada passo de uma transi\u00e7\u00e3o redesenha o ecr\u00e3 inteiro, e uma imagem completa custa 23 ms neste barramento, contra um d\u00e9cimo de segundo ou mais por SPI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Um leitor de v\u00eddeo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O nosso pr\u00f3prio teste fica no extremo mais pesado: MJPEG de um cart\u00e3o a 25 fps. Como ponto de partida j\u00e1 feito, os exemplos MJPEG da biblioteca Arduino_GFX mostram a taxa m\u00e9dia de fotogramas e repartem o tempo entre leitura, descodifica\u00e7\u00e3o e desenho, o que os torna uma boa refer\u00eancia de desempenho para qualquer placa. Larry Bank, o autor do JPEGDEC, o descodificador que o nosso leitor usa, comandou um velho shield Uno ILI9486 de 3,5 polegadas a partir de um RP2040 atrav\u00e9s de PIO e DMA e reproduziu nele GIF animados; o seu artigo chama-se Breathing new life into an old LCD shield.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Uma consola de jogos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Os jogos precisam exatamente daquilo em que este barramento \u00e9 bom: redesenhar muitos p\u00edxeis muitas vezes por segundo. O projeto ESP32-S3_Uno-nofrendo corre o emulador de NES nofrendo numa placa ESP32-S3 em formato Uno, com um shield ILI9488 de 8 bits encaixado diretamente, e carrega as ROM a partir do cart\u00e3o; ainda n\u00e3o tem joystick nem som. No extremo mais simples, um clone do Tetris para Arduino Mega com um shield ILI9486 vai buscar a m\u00fasica a um transmissor FM de autom\u00f3vel, e para a ouvir sintoniza-se um r\u00e1dio nos 87,5 MHz. A s\u00e9rie de tutoriais da Dumblebots constr\u00f3i um programa de desenho ao estilo do Paint e um jogo do galo no mesmo tipo de shield de 3,5 polegadas, com pel\u00edcula t\u00e1til inclu\u00edda.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Um painel t\u00e1til na parede<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um painel de casa inteligente \u00e9 a utiliza\u00e7\u00e3o \u00f3bvia para um ecr\u00e3 t\u00e1til deste tamanho, e aqui os parentes j\u00e1 prontos costumam ganhar. O WT32-SC01 Plus junta um ESP32-S3 a um ecr\u00e3 de 3,5 polegadas e 480 \u00d7 320 no mesmo tipo de barramento de 8 bits. O openHASP transforma-o num painel controlado por MQTT e constru\u00eddo sobre LVGL, e, com um componente da comunidade, o ESPHome pode comand\u00e1-lo para o Home Assistant. O AirQualitySensor-IDF transforma a mesma placa num monitor da qualidade do ar: l\u00ea sensores de part\u00edculas, CO\u2082, temperatura e humidade e desenha seis horas de hist\u00f3rico com LVGL. Quem tem uma impressora 3D pode j\u00e1 ter um ecr\u00e3 desta classe: o Color UI do Marlin corre em ecr\u00e3s t\u00e1teis de 3,5 polegadas e 480 \u00d7 320, como o MKS TFT35, ligados ao STM32 da impressora pelo barramento paralelo FSMC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Instrumentos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O tra\u00e7o de um oscilosc\u00f3pio tem de ser redesenhado muitas vezes por segundo, o que conv\u00e9m a um barramento r\u00e1pido. Um projeto aberto junta um STM32F303 a um ecr\u00e3 ILI9486 de 3,5 polegadas para fazer um oscilosc\u00f3pio de 2 Msps com um registo de 4096 pontos. O DLO-138, firmware aberto para o popular kit DSO-138, comanda o ILI9341, mais pequeno, desse kit por um barramento de 8 bits e transforma-o num oscilosc\u00f3pio de dois canais com mais dois canais digitais. Para mostradores, medidores e gr\u00e1ficos, o TFT_eSPI tem uma pasta inteira de exemplos escritos para 480 \u00d7 320.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais algumas ideias que outros j\u00e1 puseram em pr\u00e1tica com ecr\u00e3s de 480 \u00d7 320:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Um navegador GPS offline.<\/strong> O IceNav-v3 desenha mapas do OpenStreetMap offline num ESP32-S3 e suporta pain\u00e9is ILI9488 por SPI e por barramentos paralelos de 8 ou 16 bits.<\/li>\n\n\n\n<li><strong>Um ecr\u00e3 \u00aba tocar agora\u00bb.<\/strong> O comando para Spotify da ThingPulse mostra a capa do \u00e1lbum e combina a cor de fundo com ela num ILI9488 de 3,5 polegadas.<\/li>\n\n\n\n<li><strong>Um r\u00e1dio com vista de espetro.<\/strong> Um recetor de todas as bandas constru\u00eddo com o chip Si4735 e um ESP32 desenha um espetro e uma cascata num ILI9488 de 4 polegadas e 480 \u00d7 320.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Parentes: o mesmo ecr\u00e3 noutros formatos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O shield pertence a uma grande fam\u00edlia. Se o seu formato ou o seu barramento n\u00e3o servirem para um projeto, talvez sirva um dos seus parentes. Todos t\u00eam 480 \u00d7 320, exceto os shields Uno mais pequenos:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th>Ecr\u00e3<\/th><th>Chip e barramento<\/th><th>A saber<\/th><\/tr><\/thead><tbody><tr><td>Shields Uno de 2,4 e 2,8 polegadas<\/td><td>ILI9341 e outros; paralelo de 8 bits<\/td><td>A mesma pinagem e as mesmas bibliotecas, a 240 \u00d7 320<\/td><\/tr><tr><td>M\u00f3dulos SPI de 3,5 polegadas, como o MSP3520<\/td><td>ILI9488; SPI de 4 fios<\/td><td>Poucos pinos, toque nas suas pr\u00f3prias linhas SPI, tr\u00eas bytes por p\u00edxel<\/td><\/tr><tr><td>Shields Uno de 3,95 polegadas<\/td><td>ILI9486 e outros; paralelo de 8 bits<\/td><td>Vidro maior, as mesmas liga\u00e7\u00f5es<\/td><\/tr><tr><td>WT32-SC01 Plus<\/td><td>ST7796; paralelo de 8 bits, ESP32-S3 na placa<\/td><td>Um painel acabado para openHASP, ESPHome e LVGL<\/td><\/tr><tr><td>Makerfabs ESP32-S3 Parallel TFT, 3,5 polegadas<\/td><td>ILI9488; paralelo de 16 bits, ESP32-S3 na placa<\/td><td>O dobro da largura de barramento<\/td><\/tr><tr><td>ESP32-3248S035, o Cheap Yellow Display de 3,5 polegadas<\/td><td>ST7796; SPI, ESP32 na placa<\/td><td>Completo e barato, mas SPI<\/td><\/tr><tr><td>MKS TFT35<\/td><td>ILI9488 ou ST7796; paralelo FSMC<\/td><td>O ecr\u00e3 t\u00e1til de muitas impressoras 3D<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pontos fortes e fracos<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>A favor<\/th><th>Contra<\/th><\/tr><\/thead><tbody><tr><td>Encaixa diretamente num Uno ou num Mega<\/td><td>Num Uno ocupa quase todos os pinos, incluindo os do I\u00b2C<\/td><\/tr><tr><td>480 \u00d7 320 com toque e microSD numa s\u00f3 placa<\/td><td>ILI9486 ou ILI9488: a placa n\u00e3o diz qual, e pode ser s\u00f3 de escrita<\/td><\/tr><tr><td>Um barramento de 8 bits: uma imagem completa em 23 ms a 20 MHz, frequ\u00eancia verificada<\/td><td>Treze fios de sinal em qualquer anfitri\u00e3o onde n\u00e3o encaixe<\/td><\/tr><tr><td>Funciona com anfitri\u00f5es de 3,3 V: ESP32, RP2040, STM32<\/td><td>Sem um perif\u00e9rico de barramento por hardware, perde-se a maior parte da velocidade<\/td><\/tr><tr><td>V\u00eddeo em ecr\u00e3 inteiro a 25 fps a partir de um ESP32-S3<\/td><td>Sem sinal de tearing effect nos pinos<\/td><\/tr><tr><td>Toque sem chip extra<\/td><td>A pel\u00edcula t\u00e1til partilha pinos com o ecr\u00e3 e precisa do ADC do anfitri\u00e3o<\/td><\/tr><tr><td>Uma ranhura microSD em linhas SPI separadas<\/td><td>A retroilumina\u00e7\u00e3o est\u00e1 sempre acesa, sem forma de a regular<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O shield TFT LCD de 3,5 polegadas parece uma rel\u00edquia da era do Arduino Uno, e num Uno comporta-se como tal: ocupa quase todos os pinos e preenche o ecr\u00e3 ao ritmo de um processador de 8 bits. Mas, com um anfitri\u00e3o que tenha um verdadeiro perif\u00e9rico paralelo, o velho barramento mostra porque sobreviveu: um byte por ciclo de rel\u00f3gio, uma imagem completa de 480 \u00d7 320 em 23 ms, v\u00eddeo a 25 fps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para uma esta\u00e7\u00e3o meteorol\u00f3gica, uma moldura digital, um painel de controlo ou um pequeno instrumento, isso chega e sobra, desde que o primeiro arranque parta de uma configura\u00e7\u00e3o comprovada:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Verificar se h\u00e1 curto-circuitos entre 5V, 3V3 e GND e, depois, ligar primeiro o GND e os 5 V ao pino 5V.<\/li>\n\n\n\n<li>Ligar pelas inscri\u00e7\u00f5es do verso, nunca pela posi\u00e7\u00e3o, e manter o LCD_RD a n\u00edvel alto desde o in\u00edcio.<\/li>\n\n\n\n<li>Usar a sequ\u00eancia do ILI9488, COLMOD 0x66 e MADCTL 0x28 a 10 MHz ou menos.<\/li>\n\n\n\n<li>Desenhar primeiro preenchimentos s\u00f3lidos e gradientes; se a imagem sair desbotada ou cintilar, experimentar a sequ\u00eancia do ILI9486.<\/li>\n\n\n\n<li>Subir o rel\u00f3gio passo a passo, at\u00e9 20 MHz num ILI9488.<\/li>\n\n\n\n<li>Acrescentar a pel\u00edcula t\u00e1til e o cart\u00e3o microSD no fim, um de cada vez.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-group has-surface-alt-background-color has-background is-layout-constrained wp-container-core-group-is-layout-893b5037 wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--50)\">\n<p class=\"wp-block-paragraph\">Tudo o que ficou dito acima e mais, num \u00fanico ficheiro: o guia de programa\u00e7\u00e3o deste shield. A pinagem pelas inscri\u00e7\u00f5es, a temporiza\u00e7\u00e3o do barramento e os limites das folhas de caracter\u00edsticas, as sequ\u00eancias de inicializa\u00e7\u00e3o dos dois controladores, os formatos de p\u00edxel, a rota\u00e7\u00e3o, o toque e o microSD, um procedimento de primeiro arranque e um guia de avarias, com cada afirma\u00e7\u00e3o marcada como verificada, prov\u00e1vel ou desconhecida. Conv\u00e9m entreg\u00e1-lo a um agente de programa\u00e7\u00e3o antes de ele escrever uma \u00fanica linha de c\u00f3digo do driver.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-1\" href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-programming-guide.md\">Shield TFT LCD de 3,5 polegadas \u2014 guia de programa\u00e7\u00e3o para um agente de programa\u00e7\u00e3o (Markdown, em ingl\u00eas, 39 KB)<\/a><a href=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-programming-guide.md\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-1\">Transferir<\/a><\/div>\n<\/div>\n\n<div class=\"sws-spacer sws-spacer--medium wp-block-sws-theme-spacer\" aria-hidden=\"true\"><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Um ecr\u00e3 t\u00e1til de 480 \u00d7 320 com ranhura microSD que encaixa diretamente num Arduino Uno. O seu controlador ILI9486\/ILI9488 recebe um byte inteiro por ciclo de rel\u00f3gio, e num ESP32-S3 isso chega para v\u00eddeo em ecr\u00e3 inteiro a 25 fps. Pinagem, interface de programa\u00e7\u00e3o, velocidade e o que construir com ele.<\/p>\n","protected":false},"author":1,"featured_media":399,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[6],"tags":[75,74],"topic":[63],"class_list":["post-425","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sem-categoria","tag-arduino-pt","tag-esp32-pt","topic-ecras"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode<\/title>\n<meta name=\"description\" content=\"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode\" \/>\n<meta property=\"og:description\" content=\"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/\" \/>\n<meta property=\"og:site_name\" content=\"Build Mode\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-18T11:39:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-18T14:06:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"q_admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"q_admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/\"},\"author\":{\"name\":\"q_admin\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/#\\\/schema\\\/person\\\/776a2342163ad07c23ce7dac33d9cc8b\"},\"headline\":\"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits\",\"datePublished\":\"2026-09-18T11:39:28+00:00\",\"dateModified\":\"2026-09-18T14:06:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/\"},\"wordCount\":5506,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/build-mode-ak.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\",\"keywords\":[\"Arduino\",\"ESP32\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/\",\"url\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/\",\"name\":\"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/build-mode-ak.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\",\"datePublished\":\"2026-09-18T11:39:28+00:00\",\"dateModified\":\"2026-09-18T14:06:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/#\\\/schema\\\/person\\\/776a2342163ad07c23ce7dac33d9cc8b\"},\"description\":\"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\\\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#primaryimage\",\"url\":\"https:\\\/\\\/build-mode-ak.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\",\"contentUrl\":\"https:\\\/\\\/build-mode-ak.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg\",\"width\":1600,\"height\":1000,\"caption\":\"O verso do shield TFT LCD de 3,5 polegadas com os pinos de controlo, dados, alimenta\u00e7\u00e3o e microSD, os buffers do barramento, o regulador e a ranhura microSD identificados\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/3-5-inch-tft-lcd-shield\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/#website\",\"url\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/\",\"name\":\"Build Mode\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/#\\\/schema\\\/person\\\/776a2342163ad07c23ce7dac33d9cc8b\",\"name\":\"q_admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g\",\"caption\":\"q_admin\"},\"sameAs\":[\"https:\\\/\\\/build-mode-ak.com\"],\"url\":\"https:\\\/\\\/build-mode-ak.com\\\/pt-pt\\\/author\\\/q_admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode","description":"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/","og_locale":"pt_PT","og_type":"article","og_title":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode","og_description":"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.","og_url":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/","og_site_name":"Build Mode","article_published_time":"2026-09-18T11:39:28+00:00","article_modified_time":"2026-09-18T14:06:32+00:00","og_image":[{"width":1600,"height":1000,"url":"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg","type":"image\/jpeg"}],"author":"q_admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"q_admin","Tempo estimado de leitura":"29 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#article","isPartOf":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/"},"author":{"name":"q_admin","@id":"https:\/\/build-mode-ak.com\/pt-pt\/#\/schema\/person\/776a2342163ad07c23ce7dac33d9cc8b"},"headline":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits","datePublished":"2026-09-18T11:39:28+00:00","dateModified":"2026-09-18T14:06:32+00:00","mainEntityOfPage":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/"},"wordCount":5506,"commentCount":0,"image":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#primaryimage"},"thumbnailUrl":"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg","keywords":["Arduino","ESP32"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/","url":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/","name":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits - Build Mode","isPartOf":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#primaryimage"},"image":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#primaryimage"},"thumbnailUrl":"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg","datePublished":"2026-09-18T11:39:28+00:00","dateModified":"2026-09-18T14:06:32+00:00","author":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/#\/schema\/person\/776a2342163ad07c23ce7dac33d9cc8b"},"description":"Shield TFT de 3,5 polegadas e 480\u00d7320 (ILI9486\/ILI9488): pinagem do barramento de 8 bits, interface de programa\u00e7\u00e3o, porque \u00e9 r\u00e1pido e o que construir.","breadcrumb":{"@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#primaryimage","url":"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg","contentUrl":"https:\/\/build-mode-ak.com\/wp-content\/uploads\/2026\/09\/3-5-inch-tft-lcd-shield-01-anatomy-pt-pt.jpg","width":1600,"height":1000,"caption":"O verso do shield TFT LCD de 3,5 polegadas com os pinos de controlo, dados, alimenta\u00e7\u00e3o e microSD, os buffers do barramento, o regulador e a ranhura microSD identificados"},{"@type":"BreadcrumbList","@id":"https:\/\/build-mode-ak.com\/pt-pt\/3-5-inch-tft-lcd-shield\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/build-mode-ak.com\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Shield TFT LCD de 3,5 polegadas: um ecr\u00e3 de 480 \u00d7 320 num barramento r\u00e1pido de 8 bits"}]},{"@type":"WebSite","@id":"https:\/\/build-mode-ak.com\/pt-pt\/#website","url":"https:\/\/build-mode-ak.com\/pt-pt\/","name":"Build Mode","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/build-mode-ak.com\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/build-mode-ak.com\/pt-pt\/#\/schema\/person\/776a2342163ad07c23ce7dac33d9cc8b","name":"q_admin","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9b27ab13255ffada0f0f8683c7d2916b3c1c81aa48c6c0d5668f58421dc498bc?s=96&d=mm&r=g","caption":"q_admin"},"sameAs":["https:\/\/build-mode-ak.com"],"url":"https:\/\/build-mode-ak.com\/pt-pt\/author\/q_admin\/"}]}},"_links":{"self":[{"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/posts\/425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=425"}],"version-history":[{"count":1,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/posts\/425\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/posts\/425\/revisions\/426"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/media\/399"}],"wp:attachment":[{"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=425"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/build-mode-ak.com\/pt-pt\/wp-json\/wp\/v2\/topic?post=425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}