Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Implementar Comunicação I2C com Arduino

A comunicação I2C (Inter-Integrated Circuit) é um protocolo de comunicação serial que permite a conexão de múltiplos dispositivos em um barramento de dois fios. É amplamente utilizado em projetos com Arduino devido à sua simplicidade e eficiência para conectar sensores, displays e outros periféricos.

Exemplos:

  1. Configuração Básica do I2C no Arduino:

    Para começar, você precisará de dois dispositivos Arduino ou um Arduino e um sensor/dispositivo compatível com I2C. O Arduino Uno, por exemplo, utiliza os pinos A4 (SDA) e A5 (SCL) para comunicação I2C.

    // Código para Arduino como Mestre I2C
    #include <Wire.h>
    
    void setup() {
     Wire.begin(); // Inicia o I2C como mestre
     Serial.begin(9600);
    }
    
    void loop() {
     Wire.beginTransmission(8); // Endereço do dispositivo escravo
     Wire.write("Hello");       // Envia uma string
     Wire.endTransmission();    // Termina a transmissão
     delay(1000);
    }
    // Código para Arduino como Escravo I2C
    #include <Wire.h>
    
    void setup() {
     Wire.begin(8); // Endereço do dispositivo escravo
     Wire.onReceive(receiveEvent); // Registra o evento de recebimento
     Serial.begin(9600);
    }
    
    void loop() {
     delay(100);
    }
    
    void receiveEvent(int howMany) {
     while (Wire.available()) {
       char c = Wire.read(); // Lê um byte
       Serial.print(c);
     }
     Serial.println();
    }
  2. Conectando um Sensor I2C:

    Vamos conectar um sensor de temperatura e umidade DHT12, que se comunica via I2C, ao Arduino.

    #include <Wire.h>
    #include "DHT12.h"
    
    DHT12 dht12;
    
    void setup() {
     Wire.begin();
     Serial.begin(9600);
    }
    
    void loop() {
     dht12.read();
     Serial.print("Temperatura: ");
     Serial.print(dht12.cTemp);
     Serial.print(" *C, Umidade: ");
     Serial.print(dht12.humidity);
     Serial.println(" %");
     delay(2000);
    }

    Certifique-se de conectar o SDA do sensor ao pino A4 do Arduino e o SCL ao pino A5.

  3. Dicas de Solução de Problemas:

    • Verifique se os endereços I2C dos dispositivos estão corretos. Você pode usar um scanner I2C para identificar os endereços dos dispositivos conectados.
    • Assegure-se de que as resistências pull-up estão conectadas aos pinos SDA e SCL, se necessário.
    • Verifique as conexões físicas e a alimentação dos dispositivos.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.