Código Arduino e vídeo para display OLED SSD1306 128 x 64

Código Arduino e vídeo para display OLED SSD1306 128 x 64

Neste tutorial, exploraremos como usar o display SSD1306 OLED 128 x 64 com um Arduino. O SSD1306 é um display versátil que permite exibir texto, gráficos e várias formas com facilidade. Ao final deste artigo, você será capaz de configurar o display e executar código que demonstre suas capacidades.

SSD1306 OLED displaying text

Vamos guiá-lo pelas conexões de hardware necessárias e fornecer trechos de código para ajudá-lo a entender os principais identificadores usados no programa. Para uma explicação mais visual, não deixe de assistir ao vídeo associado (no vídeo em 00:00).

Hardware Explicado

Os componentes principais deste projeto incluem a placa Arduino e o módulo de display OLED SSD1306. O display SSD1306 utiliza o protocolo de comunicação I2C, o que simplifica a fiação ao exigir apenas duas linhas de dados: SDA para dados e SCL para o sinal de clock. O display opera em tensões entre 3.3V e 5V, tornando-o compatível com a maioria das placas Arduino.

Além do display, você precisará de fios jumper para conectar o módulo ao seu Arduino. As conexões incluem VCC para alimentação, GND para massa, SDA para o pino de dados do Arduino e SCL para o pino de clock. Essa configuração permite comunicação fácil entre o Arduino e o display OLED.

Detalhes da ficha técnica

FabricanteAdafruit
Número da peçaSSD1306
Tensão de lógica/E/S3.3 V - 5 V
Tensão de alimentação3.3 V - 5 V
Resolução do ecrã128 x 64 pixels
Endereço I2C0x3C
InterfaceI2C
PacoteMódulo

  • Certifique-se da ligação correta: VCC a 3.3V ou 5V, GND ao terra, SDA no pino A4, SCL no pino A5 (no Arduino Uno).
  • O display requer resistores pull-up nas linhas SDA e SCL caso estes não estejam já incluídos.
  • Verifique se o endereço I2C está definido corretamente no código, normalmente 0x3C para este display.
  • Use uma biblioteca adequada, como a Adafruit_SSD1306, para facilitar a integração.
  • Limpe a tela antes de desenhar novos gráficos para evitar artefatos de sobreposição.

Instruções de Fiação

Arduino wiring for SSD1306 OLED
Arduino wiring for SSD1306 OLED

Para ligar o display OLED SSD1306 ao seu Arduino, siga estes passos:

Conecte o pino VCC do display OLED ao pino 5V (ou 3.3V) do Arduino. Em seguida, conecte o pino GND do display ao pino GND do Arduino. Para a comunicação I2C, conecte o pino SDA do display ao pino A4 do Arduino e o pino SCL ao pino A5. Essa configuração permitirá que o Arduino se comunique com o display OLED usando o protocolo I2C.

Certifique-se de que todas as conexões estão seguras e verifique novamente se está usando a tensão correta para o seu modelo de display específico. Se estiver usando um modelo diferente de Arduino, os pinos SDA e SCL podem variar (por exemplo, no Arduino Mega, SDA está no pino 20 e SCL está no pino 21).

Exemplos de Código e Guia Passo a Passo

No código, inicializamos o display e configuramos os parâmetros, como o endereço I2C e as dimensões. Um identificador-chave édisplay, que representa a instância do display SSD1306. Aqui está um trecho da função setup:

void setup() {                
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C
}

Neste trecho, odisplay.beginA função inicializa o display com o endereço I2C especificado. É essencial que o endereço corresponda ao do seu display para garantir a comunicação adequada.

Em seguida, na função loop, usamos odisplay.clearDisplay()método para limpar a tela antes de desenhar novo conteúdo. Podemos definir o tamanho e a posição do texto usando osetTextSizeesetCursormétodos:

void loop() {
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(2,1); // set cursor at top left corner
  display.println("Robojax"); // display text
}

Aqui, o texto "Robojax" é exibido nas coordenadas (2,1) na tela. Isso permite posicionar o texto com precisão no display OLED.

Finalmente, para renderizar as alterações na tela, chamamosdisplay.display(). Esta função envia todos os comandos armazenados no buffer para o display para atualizar seu conteúdo:

display.display();

Esta deve ser a última linha da sua função loop para garantir que todos os comandos de desenho sejam executados. Se você esquecer este passo, nada aparecerá no display.

Lembre-se de que o código completo está abaixo do artigo para sua referência.

Demonstração / O que esperar

Após carregar o código no seu Arduino, você deverá ver o texto "Robojax" exibido na tela OLED. O código também demonstra texto rolante e o desenho de linhas, formas e outros gráficos no display. Fique atento a armadilhas comuns, como fiação incorreta ou endereços I2C incompatíveis, que podem impedir o funcionamento correto do display (no vídeo em 10:00).

Marcadores de tempo do vídeo

  • 00:00- Introdução ao display OLED SSD1306
  • 02:30- Fiação do display
  • 05:00- Revisão de código
  • 08:00- Demonstração das funcionalidades do display
  • 10:00- Problemas Comuns e Resolução de Problemas

Imagens

SSD1306 OLED screen 128x32 module
SSD1306 OLED screen 128x32 module
SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED displaying text
Arduino wiring for SSD1306 OLED
Arduino wiring for SSD1306 OLED
38-This is the Arduino code for the PCA9685 16-channel 12-bit servo controller.
Idioma: C++
39-This is Arduino code for an SSD1306 OLED 128 x 64 display without custom methods.
Idioma: C++
40-This is the Arduino code for the SSD1306 OLED 128 x 64 display without custom methods.
Idioma: C++
Copiado!

Arquivos📁

Nenhum arquivo disponível.