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:
- Abrir Arduino IDE.
- Vá para Esboço → Incluir biblioteca → Gerenciar bibliotecas.
- Procurar Adafruit SSD1306 e instale.
- 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.