Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduino

este guia, vou levá-lo através dos passos para programar uma tela I2C e, além disso, mostrar como detectar seu endereço I2C. Se você já se perguntou como trazer suas ideias à vida usando uma tela OLED I2C e um Arduino, você está no lugar certo. Vamos começar?

1. Introdução ao I2C e Telas OLED

I2C, ou “Inter-Integrated Circuit”, é um protocolo de comunicação que permite a conexão de múltiplos dispositivos em um único conjunto de fios. As telas OLED I2C são populares devido à sua eficiência energética, alto contraste e capacidade de exibir informações gráficas e textuais.

2. Materiais Necessários

  • Arduino (Uno, Mega, Nano, etc.)
  • Tela OLED I2C
  • Cabos jumper
  • Protoboard (opcional)

3. Conexão dos Componentes

Conecte a tela OLED ao Arduino da seguinte maneira:

  • VCC da tela -> 5V do Arduino
  • GND da tela -> GND do Arduino
  • SDA da tela -> Pin A4 (SDA) do Arduino
  • SCL da tela -> Pin A5 (SCL) do Arduino

4. Localizando o Endereço I2C de Seus Dispositivos

Antes de começarmos a programar, é essencial saber o endereço I2C de seus dispositivos. Se você não tiver essa informação, pode usar o Arduino para descobri-la. O código para isso envia um “ping” para cada um dos 128 endereços I2C possíveis e verifica se há uma resposta. O endereço do dispositivo responderá, permitindo que você o identifique.

#include <Wire.h>
#define TEMPOLEITURA 100
#define TEMPOESPERA 3000
byte endereco;
byte codigoResultado=0;
byte dispositivosEncontrados=0;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  while (!Serial); 
  scanI2c();           
}

void scanI2c(){
    for (endereco=0; endereco<128; endereco++){
    Wire.beginTransmission(endereco);
    codigoResultado = Wire.endTransmission();
    if (codigoResultado==0){
      Serial.print ("Dispositivo I2c detectado no endereço: ");
      Serial.println(endereco,HEX);
      dispositivosEncontrados++;
      delay(TEMPOESPERA);
    }
    delay(TEMPOLEITURA);
  }
  if (dispositivosEncontrados>0){
    Serial.print("Foi encontrado um total de: ");
    Serial.print(dispositivosEncontrados);
    Serial.println(" dispositivos");
  }
  else{
    Serial.println("Nenhum dispositivo foi encontrado !!!");
  }
}

void loop() {
}

5. Programação da Tela I2C

a. Bibliotecas Necessárias

Antes de começar, você precisará instalar as bibliotecas Adafruit_GFX e Adafruit_SSD1306. Elas estão disponíveis no Gerenciador de Bibliotecas do Arduino IDE.

b. Código de Exemplo

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

Adafruit_SSD1306 display = Adafruit_SSD1306(); 

void setup(){
  Wire.begin(); 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.setTextColor(WHITE); 
  display.setTextSize(1); 
  display.clearDisplay(); 
}
void loop() {
  display.setCursor(20,10); 
  display.print("WJ Componentes");
  display.display();
  delay(500);
  display.clearDisplay();
}

Conclusão

Programar uma tela I2C com Arduino é um processo simples e gratificante. Com a adição da funcionalidade de descoberta do endereço I2C, você está mais preparado do que nunca para trabalhar com uma variedade de dispositivos. Esperamos que este tutorial tenha sido útil e que você esteja tão animado quanto nós para criar projetos incríveis com sua tela OLED e Arduino. Lembre-se, a WJ Componentes está sempre aqui para ajudá-lo em sua jornada de eletrônica e robótica. Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *