Como usar uma tela OLED de 0,91 "com Arduino

How to Use a 0.91" OLED Display with Arduino

UM Tela OLED de 0,91 " é uma tela pequena e de alto contraste perfeita para Exibindo dados de texto, gráficos e sensores em projetos Arduino. Este guia vai guiar você fiação, codificação e exibição de texto e gráficos usando o Módulo OLED baseado em SSD1306 com Arduino.


1. O que você precisa

Conselho de Arduino (Uno, Mega, Nano, etc.)
Tela OLED 0,91 "(SSD1306, I2C)
Fios de jumper
Arduino IDE instalado

🔹 Observação: Este tutorial se concentra em I2C Comunicação, que usa apenas Dois fios (SDA e SCL), tornando -o ideal para projetos simples.


2. Fiação do 0,91 "OLED para Arduino (modo I2C)

Pino de tela OLED Arduino Uno Pin Pin Arduino Nano
VCC 5V 5V
Gnd Gnd Gnd
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 Para Arduino Mega: Usar SDA (pino 20) e SCL (pino 21).


3. Instalando as bibliotecas necessárias

Antes de codificar, instale o Adafruit SSD1306 e Adafruit GFX Bibliotecas:

  1. Abrir Arduino IDE.
  2. Vá para Esboço → Incluir biblioteca → Gerenciar bibliotecas.
  3. Procurar Adafruit SSD1306 e instale.
  4. Procurar Adafruit GFX e instale.

4. Código básico para exibir o texto no OLED

Este exemplo inicializa o OLED e exibe "Olá, Arduino!".

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);

    // Start OLED display
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("SSD1306 allocation failed");
        for (;;);
    }

    display.clearDisplay();  // Clear buffer
    display.setTextSize(1);  // Text size
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 10);
    display.println("Hello, Arduino!");
    display.display(); // Show text on screen
}

void loop() {
    // Nothing here (text is static)
}

🔹 O que este código faz:
✔ Inicializa o Exibição SSD1306.
✔ Impressões "Olá, Arduino!" na tela.
✔ Usos Endereço I2C 0x3c (Alguns módulos podem usar 0x3d).


5. Exibindo gráficos (linhas, círculos, imagens)

Para desenhar formas, modifique o código usando Funções Adafruit GFX.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();

    // Draw a rectangle
    display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
    
    // Draw a filled circle
    display.fillCircle(90, 16, 10, SSD1306_WHITE);

    display.display();
}

void loop() {}

🔹 Outras funções de desenho:
display.drawLine(x1, y1, x2, y2, color); → desenha uma linha
display.drawCircle(x, y, radius, color); → desenha um círculo
display.drawRect(x, y, width, height, color); → desenha um retângulo


6. Exemplo de texto de rolagem

Este exemplo rola o texto horizontalmente na tela OLED.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();
    
    display.setTextSize(1);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 10);
    display.println("Scrolling Text...");
    display.display();
    
    // Start scrolling
    display.startscrollleft(0x00, 0x0F); 
}

void loop() {}

🔹 Funções de rolagem:
display.startscrollleft(start, stop); → Role o texto esquerda
display.startscrollright(start, stop); → Role o texto certo
display.stopscroll(); → Pare de rolar


7. Dicas para solução de problemas

Problema: Exibir não mostra nada.
✅ Verificar Fiação (SDA & SCL conectada corretamente).
✅ Garanta o O endereço I2C OLED é 0x3C (ou tente 0x3d).
✅ Use um I2C Scanner Para detectar o dispositivo:

#include <Wire.h>
void setup() {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Scanning...");
    
    for (byte address = 8; address < 120; address++) {
        Wire.beginTransmission(address);
        if (Wire.endTransmission() == 0) {
            Serial.print("Found I2C device at 0x");
            Serial.println(address, HEX);
        }
    }
}
void loop() {}

Problema: O texto é muito pequeno ou muito grande.
✅ Ajustar display.setTextSize(1); (Aumente para texto maior).


8. Aplicações práticas

Exibindo dados do sensor -Mostre leituras em tempo real de DHT11, BMP280, etc.
Exibição do relógio - Combine -se com Módulo RTC DS3231 Para fazer um relógio digital.
Sistemas de menu - Use botões para navegar pelos menus.
Indicador de tensão da bateria - Monitore os níveis de energia em projetos portáteis.


9. Conclusão

Usando a 0,91 "OLED com Arduino é uma ótima maneira de adicionar saída visual para seus projetos. Se você quer exibir Dados de texto, gráficos ou sensores, esta tela pequena oferece alto contraste e baixo consumo de energia.

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.