O display OLED se tornou uma escolha popular para integração em projetos Arduino, principalmente por ser compacto, ter baixo consumo de energia e permitir visibilidade excepcional mesmo em ambientes claros. Além disso, graças à sua fácil ligação, a sua utilização está ao alcance de qualquer entusiasta da electrónica, independentemente da sua experiência. Neste artigo, daremos uma olhada aprofundada em como conectar e programar um display OLED de 0.96 polegadas com Arduino, detalhando os aspectos técnicos e oferecendo exemplos práticos de código.
Se você nunca trabalhou com um display OLED, existem alguns pontos importantes que você deve saber antes de iniciar seu projeto. Os OLEDs (Diodo Emissor de Luz Orgânico) têm diferenças fundamentais com outros tipos de telas, como LCDs. Por exemplo, o OLED não requer retroiluminação, o que reduz significativamente o consumo de energia. Em telas tão pequenas quanto 0.96 polegadas, isso pode ser essencial se o projeto for alimentado por bateria. Agora, vamos nos aprofundar em seus recursos.
O que é uma tela OLED?
Uma tela OLED é um tipo de display que utiliza um composto orgânico que emite luz quando uma corrente elétrica é aplicada. Isto os torna ideais para muitos projetos eletrônicos, pois sua tecnologia permite que cada pixel se ilumine sozinho, o que também melhora a visibilidade externa. A maioria das telas OLED comercializadas para Arduino possuem um controlador SSD1306, que permite gerenciar o envio de sinais para a tela. Na verdade, o SSD1306 é um dos mais comuns em projetos Arduino, e veremos isso nos exemplos mais adiante.
Uma das principais vantagens das telas OLED é o baixo consumo. Em média, uma pequena tela de 0.96″ pode consumir cerca de 20mA. Por que isso é importante? Bem, se você estiver usando uma bateria para alimentar seu projeto Arduino, reduzir o consumo de energia é sempre uma vantagem significativa. Além disso, sua resolução de 128x64 pixels pode representar imagens com nitidez bastante boa considerando seu tamanho.
Por outro lado, um dos problemas que pode surgir com este tipo de ecrã é que o seu tamanho é muito pequeno. Embora ofereçam boa visibilidade, em alguns projetos onde é necessária a exibição de muitas informações, esse tamanho pode ser insuficiente.
Conectando o display OLED ao Arduino
O display OLED se conecta facilmente à placa Arduino usando um barramento I2C ou SPI, dependendo do modelo. Para este tutorial vamos focar na conexão via I2C, por ser uma das mais comuns e simples.
Você deve conectar os pinos do display OLED aos pinos correspondentes do seu Arduino da seguinte forma:
- GND (Terra) com o pino GND do Arduino
- VCC com o pino 5V ou 3.3V do Arduino
- SDA para Arduino pino A4
- SCL para pino A5 do Arduino
Como você pode ver, a conexão é bastante simples: são necessários apenas quatro cabos. Então, quer você use o barramento SPI ou I2C, o processo de conexão é semelhante, embora os pinos variem dependendo do tipo de comunicação que você escolher.
Exemplo de código para display OLED
Para fazer a tela OLED funcionar com Arduino, uma das melhores opções é utilizar as bibliotecas desenvolvidas pela Adafruit. O controlador SSD1306, como mencionamos anteriormente, é compatível com a biblioteca Adafruit SSD1306, o que facilita nossa vida na hora de criar gráficos e textos na tela.
Abaixo deixo para vocês um código básico que permitirá exibir texto em uma tela OLED com conexão I2C:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
Este código inicializa a tela, limpa o display e então escreve “Hello, World!” na tela OLED. Você pode utilizar diversas funções da biblioteca Adafruit GFX para criar gráficos, desenhar linhas, círculos ou até mesmo exibir imagens na tela.
Outros exemplos úteis para tela OLED
O exemplo acima é apenas uma introdução básica, mas você pode fazer muito mais com telas OLED. Por exemplo, você pode desenhar diversas formas geométricas, fazer animações ou até mesmo criar pequenos gráficos.
Um dos recursos mais interessantes que as bibliotecas Adafruit oferecem é a capacidade de desenhar vários pixels, o que significa que você pode criar animações de rolagem. Um exemplo adicional seria a rolagem de texto, o que é muito útil se você planeja exibir mensagens que mudam dinamicamente.
Outro uso que você pode dar a essas telas é mostrar dados em tempo real em projetos interativos, como um sensor de temperatura ou umidade. A tela pode ser atualizada conforme novas leituras dos sensores são obtidas, tornando qualquer projeto muito mais visual.
Problemas comuns ao usar telas OLED
Um dos problemas mais comuns ao usar monitores OLED com Arduino é a falta de memória. As bibliotecas Adafruit, embora muito completas, podem consumir uma quantidade considerável de memória do processador Arduino, principalmente em versões como o Arduino Uno. Se você tiver problemas de espaço, você pode tentar otimizar seu código, retirando funções que não precisa, ou até mesmo utilizar uma placa com mais capacidade, como um Arduino Mega.
Outro problema comum é a configuração inicial da conexão I2C. Se você não estiver usando os pinos SDA e SCL corretos, o display poderá não funcionar ou mostrar erros de conexão. Certifique-se de usar os pinos corretos com base no seu modelo Arduino.
Por fim, alguns usuários também relatam uma tela em branco ou que não responde a nenhum comando. Isso pode ser resolvido garantindo que a tensão de alimentação esteja correta (3.3 V ou 5 V dependendo do modelo do monitor) e que os cabos estejam conectados corretamente.