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

Comunicação I2C com Arduino: Um Guia Prático

A comunicação I2C (Inter-Integrated Circuit) é uma das formas mais eficientes e populares de comunicação entre dispositivos eletrônicos. Utilizada amplamente em projetos de automação, sensores e displays, o protocolo I2C permite a conexão de múltiplos dispositivos usando apenas dois fios: SDA (dados) e SCL (clock). Este artigo abordará a implementação da comunicação I2C com o Arduino, destacando sua importância, suas aplicações práticas e os ajustes necessários para integrá-lo ao ambiente Arduino.

Projeto: Neste projeto, vamos criar um sistema básico de leitura de temperatura e umidade usando um sensor DHT22 e um display LCD I2C. O objetivo é demonstrar como a comunicação I2C pode ser usada para simplificar a conexão de múltiplos dispositivos ao Arduino, proporcionando uma interface clara e fácil de entender.

Lista de componentes:

  1. Arduino Uno (1 unidade)
  2. Sensor DHT22 (1 unidade)
  3. Display LCD 16x2 com interface I2C (1 unidade)
  4. Jumpers (vários)
  5. Protoboard (1 unidade)

Exemplos:

Primeiro, instale as bibliotecas necessárias para o sensor DHT e o display LCD I2C. No Arduino IDE, vá em "Sketch" -> "Include Library" -> "Manage Libraries" e procure por "DHT sensor library" e "LiquidCrystal I2C". Instale ambas.

Código para leitura de temperatura e umidade e exibição no LCD:

#include <Wire.h>                // Biblioteca para comunicação I2C
#include <LiquidCrystal_I2C.h>   // Biblioteca para o display LCD I2C
#include <DHT.h>                 // Biblioteca para o sensor DHT

#define DHTPIN 2                 // Pino de dados do sensor DHT
#define DHTTYPE DHT22            // Tipo de sensor DHT

DHT dht(DHTPIN, DHTTYPE);        // Inicializa o sensor DHT
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inicializa o display LCD I2C no endereço 0x27

void setup() {
  lcd.begin();                   // Inicializa o LCD
  lcd.backlight();               // Liga a luz de fundo do LCD
  dht.begin();                   // Inicializa o sensor DHT
}

void loop() {
  float h = dht.readHumidity();  // Lê a umidade
  float t = dht.readTemperature(); // Lê a temperatura em Celsius

  // Verifica se a leitura falhou
  if (isnan(h) || isnan(t)) {
    lcd.setCursor(0, 0);
    lcd.print("Erro no sensor");
    return;
  }

  // Mostra os valores no LCD
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print(" C");

  lcd.setCursor(0, 1);
  lcd.print("Umid: ");
  lcd.print(h);
  lcd.print(" %");

  delay(2000); // Aguarda 2 segundos antes da próxima leitura
}

Comentários sobre o código:

  • #include <Wire.h>: Inclui a biblioteca necessária para comunicação I2C.
  • #include <LiquidCrystal_I2C.h>: Inclui a biblioteca para o display LCD I2C.
  • #include <DHT.h>: Inclui a biblioteca para o sensor DHT.
  • #define DHTPIN 2: Define o pino de dados do sensor DHT.
  • #define DHTTYPE DHT22: Define o tipo do sensor DHT.
  • DHT dht(DHTPIN, DHTTYPE): Inicializa o sensor DHT.
  • LiquidCrystal_I2C lcd(0x27, 16, 2): Inicializa o display LCD I2C no endereço 0x27.
  • void setup(): Configurações iniciais para o sensor DHT e o display LCD.
  • void loop(): Loop principal que lê a temperatura e a umidade e as exibe no LCD.

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.