Desenhando uma barra de progresso no OLED com o Esptop 10 usando o Arduino IDE

Desenhando uma barra de progresso no OLED com o Esptop 10 usando o Arduino IDE
Esp32 é uma placa de microcontrolador de conservação de energia baseada em IoT. O ESP32 tem todos os recursos que uma placa de microcontrolador precisa. Esp32 com OLED pode exibir diferentes tipos de dados em forma gráfica. Aqui neste artigo, abordaremos o código para exibir barras de progresso em uma tela OLED. Isso moverá o progresso em tempo real de acordo com um intervalo definido.

Esta lição inclui os seguintes tópicos:

  • 1: Introdução à tela OLED ESP32
  • 2: Módulo de exibição OLED de fiação para ESP32
  • 3: Instalando as bibliotecas necessárias
  • 4: desenhando uma barra de progresso na tela OLED usando Arduino IDE
  • 4.1: código
  • 4.2: saída

1: Introdução à tela OLED ESP32

Uma tela OLED I2C é um tipo de exibição orgânica emissora de luz (OLED) que usa o protocolo de circuito interegrado (I2C) para comunicação. Os displays OLED são conhecidos por sua alta taxa de contraste, ângulo de visualização amplo e tempo de resposta rápido, tornando-os adequados para uma variedade de aplicativos de exibição.

Uma tela OLED I2C normalmente consiste em uma pequena tela OLED e um circuito de motorista que converte os sinais I2C nas tensões e correntes apropriadas necessárias para acionar os pixels OLED.

LEDs dentro da tela OLED iluminam os pixels que nos exibem diferentes imagens e texto. Enquanto do outro lado, a tela LCD usa uma luz de fundo para iluminar seus pixels. O brilho desses pixels pode ser controlado por pixel por pixel.

Agora vamos interface o ESP32 com uma tela OLED.

2: Módulo de exibição OLED de fiação para ESP32

As telas OLED funcionam principalmente em dois protocolos de comunicação. Estes são i2c e spi. Entre esses dois SPI (interface periférica em série) é mais rápida em comparação com o I2C, mas na maioria das vezes a tela OLED I2C é preferida devido a um número menor de fios.

O I2C é um protocolo de comunicação serial de dois fios que permite que vários dispositivos compartilhem um único conjunto de dados e linhas de relógio, tornando-o uma opção conveniente para conectar displays OLED a microcontroladores e outros dispositivos

Usando I2C OLED Two Pins SDA e SCL são suficientes para exibir imagens e texto. A imagem dada mostra Esp32 com 0.Tela OLED de 96 polegadas (128 × 64 pixels).

Esp32 pinos A conexão com OLED é a seguinte:

Como interfiguramos o ESP32 com uma tela OLED, agora instalaremos as bibliotecas necessárias no Arduino IDE para que possamos avançar com formas exibidas na tela OLED.

3: Instalando as bibliotecas necessárias

Para exibir imagens, precisamos instalar as bibliotecas necessárias para tela OLED no Arduino IDE. Sem usar essas bibliotecas, o ESP32 não pode exibir gráficos no OLED.

Principalmente duas bibliotecas da Adafruit são usadas: SSD1306 e Biblioteca GFX. Primeiro abra o Arduino IDE e pesquise na biblioteca SSD1306. Instale a biblioteca OLED SSD1306 por Adafruit. Outra maneira de instalar vai: Sketch> Incluir biblioteca> Gerenciar bibliotecas:

Agora instale o GFX Biblioteca por Adafruit:

Agora instalamos as duas bibliotecas. Agora podemos programar facilmente o ESP32 com uma tela OLED.

4: desenhando uma barra de progresso na tela OLED usando Arduino IDE

Para desenhar uma barra de progresso em uma tela OLED, usaremos o mostrar.drawProgressBar (20, 20, 100, 20, progresso); função.

Esta função leva 5 argumentos:

  • Posição do centro em relação à coordenada x
  • Posição do centro em relação à coordenada y
  • O terceiro argumento é largura do bar
  • Quarto argumento é a altura da barra de progresso
  • O último argumento é o progresso real que passamos por um valor inteiro entre 0 e 100

Depois de definir todos esses 5 parâmetros, envie o código para a placa ESP32.

1: código

Abra o Arduino IDE, Connect ESP32 e Código de upload:

O código iniciado incluindo os arquivos de biblioteca SSD1306 necessários. Depois disso, definimos o endereço I2C e os pinos i2c para comunicação.

Lembre -se de verificar o endereço I2C antes de definir. Para verificar o endereço I2C de qualquer dispositivo, envie o código fornecido no tutorial como digitalizar o endereço I2C no ESP32 usando o Arduino IDE.

Se você estiver usando mais de um dispositivo I2C com o mesmo endereço, você deve alterar o endereço de qualquer um deles primeiro.

Em seguida no código, inicializamos a tela OLED e definimos uma fórmula de progresso.

A fórmula de progresso calculará o progresso e o valor do armazenamento no progresso da variável global. Simplesmente somamos o 10 para o valor do progresso atual e obtemos o restante dividindo -o com 110 usando o operador do módulo. Depois que a barra de progresso for concluída, teremos 110%110, o que nos dá 0. Isso começará automaticamente a barra novamente de zero.

Próximo drawProgressBar é chamado e esta função exibirá a barra de progresso de acordo com o valor atual do progresso variável. Esta função levará 5 argumentos, conforme explicado anteriormente.

#include "SSD1306.h "
SSD1306 Display (0x3C, 21, 22);
int progresso = 0;
Void Setup ()
mostrar.iniciar();

Void Loop ()
mostrar.claro();
progresso = (progresso + 10) % 110;
mostrar.drawProgressBar (20, 20, 100, 20, progresso);
mostrar.mostrar();
atraso (1000);

2: saída

Após o upload do código no ESP32 abaixo, a saída aparecerá na tela OLED. Esta saída mostra que a barra de progresso está em 10%, que é a posição inicial do conjunto:

Agora, a barra de progresso está em 100%, o que significa que uma determinada tarefa é concluída:

Aqui estão os estágios de saída entre 0% e 100%. Definimos o intervalo de progresso para 10:

Conclusão

A barra de progresso é uma ótima maneira de exibir o progresso em tempo real de um projeto. Usando displays OLED com ESP32, podemos pegar dados em tempo real e exibi -los sobre a tela. Usando o código dado qualquer um dos dados pode ser representado na forma de barra de progresso.