ESP32 - Barra Gráfica de LED de 10 Segmentos

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativa) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativa) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativa) ESP32 Uno-form board
1×(Alternativa) ESP32 S3 Uno-form board
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×(Opcional) Conector de Alimentação DC
1×10 Segment LED Bar Graph
10×220 Ω Resistor
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentação para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables ESP32 S3 Starter Kit (ESP32 S3 included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Este tutorial ensina você a usar o ESP32 para controlar uma Barra Gráfica de LED de 10 Segmentos e exibir uma animação visual de barra no display.

Sobre a Barra Gráfica de LED de 10 Segmentos

Barra Gráfica de LED de 10 Segmentos
Número de segmentos 10
Cor do LED Vermelho brilhante
Tensão direta ~2V por segmento
Corrente direta 20mA no máximo por segmento
Resistor necessário 220Ω por segmento

Pinagem da Barra Gráfica de LED

Pinagem da Barra Gráfica de LED de 10 Segmentos
  • Pinos de anodo (A1–A10): conecte estes pinos aos pinos GPIO por meio de resistores de 220Ω
  • Pinos de catodo (K1–K10): conecte estes pinos ao GND (0V)

Recomendamos fortemente conectar resistores limitadores de corrente em cada anodo para proteger os pinos GPIO do ESP32.

※ Nota:

Todos os 10 pinos de anodo são ligados ao longo de um único lado do conector da placa ESP32 Dev Board, na ordem física dos pinos, para manter a ligação simples. Isso significa que os pinos GPIO5 e GPIO15 são usados — ambos apenas pulsam brevemente durante a inicialização e são comumente usados para LEDs da placa, então o risco é baixo. Os pinos GPIO0, GPIO2 e GPIO12, que podem realmente interferir no modo de inicialização ou de gravação da placa, são totalmente evitados.

Diagrama de Ligação entre a Barra Gráfica de LED de 10 Segmentos e o ESP32

Diagrama de Ligação da Barra Gráfica de LED com ESP32 - Protoboard

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Barra Gráfica de LED Pino do ESP32
A1 (Anodo 1) GPIO23 (via 220Ω)
A2 (Anodo 2) GPIO22 (via 220Ω)
A3 (Anodo 3) GPIO21 (via 220Ω)
A4 (Anodo 4) GPIO19 (via 220Ω)
A5 (Anodo 5) GPIO18 (via 220Ω)
A6 (Anodo 6) GPIO5 (via 220Ω)
A7 (Anodo 7) GPIO17 (via 220Ω)
A8 (Anodo 8) GPIO16 (via 220Ω)
A9 (Anodo 9) GPIO4 (via 220Ω)
A10 (Anodo 10) GPIO15 (via 220Ω)
K1–K10 (Catodos) GND

Como Programar o ESP32 para a Barra Gráfica de LED de 10 Segmentos

  • Programar o ESP32 para a Barra Gráfica de LED de 10 Segmentos é simples. Não é necessário instalar nenhuma biblioteca.
  • Defina um array de pinos GPIO atribuídos a cada segmento: const int ledPins[10] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15};
  • Configure cada pino como saída dentro de setup(): pinMode(ledPins[i], OUTPUT);
  • Acenda um segmento escrevendo HIGH no seu pino: digitalWrite(ledPins[i], HIGH);
  • Apague um segmento escrevendo LOW no seu pino: digitalWrite(ledPins[i], LOW);

Código ESP32 - Barra Gráfica de LED de 10 Segmentos

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-10-segment-led-bar-graph */ const int NUM_SEGMENTS = 10; const int ledPins[NUM_SEGMENTS] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15}; void printBar(int litCount) { Serial.print("Bar: ["); for (int i = 0; i < NUM_SEGMENTS; i++) { Serial.print(i < litCount ? "*" : " "); } Serial.println("]"); } void setup() { Serial.begin(115200); for (int i = 0; i < NUM_SEGMENTS; i++) { pinMode(ledPins[i], OUTPUT); digitalWrite(ledPins[i], LOW); } } void loop() { for (int i = 0; i < NUM_SEGMENTS; i++) { digitalWrite(ledPins[i], HIGH); printBar(i + 1); delay(100); } delay(500); for (int i = NUM_SEGMENTS - 1; i >= 0; i--) { digitalWrite(ledPins[i], LOW); printBar(i); delay(100); } delay(500); }

Passos Rápidos

Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.

  • Copie o código acima e abra-o na Arduino IDE.
  • Selecione a placa ESP-WROOM-32 Dev Module e a porta COM correta.
  • Clique no botão Upload para compilar e carregar o código no ESP32.
  • Abra o Serial Monitor e defina a taxa de transmissão (baud rate) para 115200.
  • Observe a animação da barra na Barra Gráfica de LED e a saída exibida no Serial Monitor.

Saída do Serial Monitor

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Bar: [* ] Bar: [** ] Bar: [*** ] Bar: [**** ] Bar: [***** ] Bar: [****** ] Bar: [******* ] Bar: [******** ] Bar: [********* ] Bar: [**********] Bar: [********* ] Bar: [******** ] Bar: [******* ] Bar: [****** ] Bar: [***** ] Bar: [**** ] Bar: [*** ] Bar: [** ] Bar: [* ] Bar: [ ]
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!