ESP32 com Display TFT ST7735 – Tutorial de Ligação SPI (SDA, CLK, CS)
Os displays TFT ST7735 são muito populares em projetos com ESP32, Arduino e outros microcontroladores.
Eles utilizam comunicação SPI, que permite enviar dados rapidamente para o display usando poucos fios.
Neste artigo estilo RodRobot, vamos entender:
O que significa cada pino do display
Como eles funcionam no ESP32
Como o microcontrolador envia comandos e pixels
Um código completo de exemplo
Como o ESP32 controla o Display
O display ST7735 recebe informações do ESP32 através do protocolo SPI (Serial Peripheral Interface).
Comunicação SPI (Serial Peripheral Interface)
A comunicação SPI é um protocolo usado para trocar dados entre um microcontrolador e dispositivos periféricos como displays, sensores e memórias.
No caso do ESP32 com o display ST7735, o SPI permite enviar comandos e pixels rapidamente para o display.
Nesse tipo de comunicação existem quatro sinais principais.
MOSI → envia dados para o display.
SCK → relógio que sincroniza a comunicação.
CS → seleciona qual dispositivo está sendo usado.
DC/RS → (Data ou Command).
Além disso, o display precisa de pinos extras para reset e seleção de comando/dado.
Vantagens do SPI
-
Comunicação muito rápida
-
Usa poucos fios
-
Permite vários dispositivos no mesmo barramento
Por isso o SPI é muito usado em projetos com:
-
ESP32
-
Arduino
-
Displays TFT
-
Sensores
-
Memórias EEPROM
Função de Cada Pino do Display
VCC
Função: Alimentação do display.
Deve ser ligado ao 3.3V do ESP32
Alimenta o controlador gráfico ST7735
📌 Sem alimentação o display não funciona.
GND
Função: Terra do circuito.
Deve ser ligado ao GND do ESP32
Completa o circuito elétrico.
SDA (MOSI)
Significado:
SDA neste display significa Serial Data, mas no SPI ele corresponde ao MOSI.
📌 MOSI = Master Out Slave In
Ou seja:
Master (ESP32) envia dados
Slave (Display) recebe dados
Exemplo no ESP32:
GPIO 23 → MOSI
Por esse pino passam:
pixels
textos
comandos gráficos
CLK (SCK)
Significado:
Clock da comunicação SPI.
Exemplo no ESP32:
GPIO 18 → SCK
Função:
sincronizar os bits enviados
cada pulso do clock envia 1 bit
Sem o clock o display não consegue interpretar os dados.
CS (Chip Select)
Significado:
Seleciona qual dispositivo SPI está ativo.
Exemplo no ESP32:
GPIO 5 → CS
Funcionamento:
CS LOW → display ativo
CS HIGH → display ignorando dados
Isso permite usar vários dispositivos SPI no mesmo barramento.
RS (DC – Data / Command)
Este pino é muito importante.
Ele define se o ESP32 está enviando:
Comando
Dados
Funcionamento:
RS LOW → comando
RS HIGH → dados
Exemplo:
RS LOW → comando limpar tela
RS HIGH → enviar pixels
Exemplo no ESP32:
GPIO 2 → RS
RST (Reset)
Função:
Reiniciar o controlador do display.
Exemplo no ESP32:
GPIO 4 → RST
Quando o ESP32 inicia ele envia um pulso:
LOW → HIGH
Isso coloca o display em estado inicial.
Ligação do ST7735 no ESP32
| Display | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO23 |
| CLK | GPIO18 |
| CS | GPIO5 |
| RS | GPIO2 |
| RST | GPIO4 |
Como o ESP32 envia uma imagem
O processo acontece assim:
1️⃣ ESP32 ativa o display
CS = LOW
2️⃣ Define se é comando ou dado
RS = LOW → comando
RS = HIGH → dados
3️⃣ Envia bits pelo MOSI
4️⃣ Cada bit é sincronizado pelo clock SCK
5️⃣ O display interpreta os dados e atualiza os pixels
Código Exemplo ESP32 + ST7735
Biblioteca necessária:
Instalar no Gerenciador de Bibliotecas da IDE Arduino.
👉 Confira aqui no Blog ESP32 -Instalação na Arduino IDE 2.3.8 usando o Gerenciador de Placas.
#include <Adafruit_GFX.h> // Biblioteca gráfica #include <Adafruit_ST7735.h> // Biblioteca do display ST7735 #include <SPI.h> // Comunicação SPI // Definição dos pinos do display #define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 2 // Inicializa o display Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); void setup() { tft.initR(INITR_BLACKTAB); // Inicializa o display tft.setRotation(3); // Rotaciona display tft.fillScreen(ST77XX_BLACK); // Fundo preto tft.setTextSize(2); // Tamanho do texto // Linha 1 tft.setTextColor(ST77XX_WHITE); // Cor branca tft.setCursor(10,10); tft.println("ESP32"); // Linha 2 tft.setTextColor(ST77XX_YELLOW); // Cor amarela tft.setCursor(10,35); tft.println("Pino SDA"); // Linha 3 tft.setTextColor(ST77XX_BLUE); // Cor azul tft.setCursor(10,60); tft.println("Pino CLK"); // Linha 4 tft.setTextColor(ST77XX_GREEN); // Cor verde tft.setCursor(10,85); tft.println("Pino CS"); } void loop() { }Mais códigos deste projeto em:👉 https://github.com/RodRobot/
O que este código faz
1️⃣ Inicializa o display
2️⃣ Limpa a tela
3️⃣ Define tamanho do texto
4️⃣ Escreve ESP32, Pino CLK, Pino CS.
Resultado
Quando o ESP32 iniciar o display mostrará:
ESP32Pino CLKPino CSConclusão
A comunicação SPI (Serial Peripheral Interface) é um método simples e muito rápido para trocar dados entre o ESP32 e dispositivos periféricos como o display ST7735. Utilizando poucos pinos — como SDA (dados), CLK (clock) e CS (seleção do dispositivo) — o microcontrolador consegue enviar comandos e informações que permitem controlar totalmente o funcionamento do display. Graças à velocidade e eficiência do protocolo SPI, é possível mostrar textos, gráficos e interfaces visuais no display TFT de forma rápida e confiável. Por esse motivo, a comunicação SPI é amplamente utilizada em projetos com microcontroladores, sensores e módulos gráficos, sendo uma das interfaces mais importantes no desenvolvimento de projetos eletrônicos e sistemas embarcados.
🔧 Acompanhe o RodRobot
Projetos maker com ESP32, Arduino, eletrônica e programação.
RodRobot – Projetos maker, eletrônica e programação na prática.




Comentários
Postar um comentário