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

Biblioteca Wire: Comunicação I2C com Arduino

A Biblioteca Wire é uma ferramenta essencial para quem deseja implementar comunicação I2C (Inter-Integrated Circuit) em projetos com Arduino. A comunicação I2C é amplamente utilizada em dispositivos eletrônicos para permitir que múltiplos dispositivos se comuniquem entre si usando apenas dois fios: SDA (Serial Data Line) e SCL (Serial Clock Line). Esta biblioteca facilita a implementação dessa comunicação, tornando-a mais acessível para iniciantes e eficiente para usuários avançados. A Biblioteca Wire está incluída no ambiente de desenvolvimento Arduino, eliminando a necessidade de instalação adicional.

Project: Neste projeto, vamos criar um sistema simples de leitura de temperatura usando um sensor de temperatura e umidade DHT22 e um display LCD I2C. O objetivo é ler os dados do sensor e exibi-los no display LCD. Este projeto demonstra como a Biblioteca Wire pode ser usada para facilitar a comunicação entre o Arduino e dispositivos I2C.

Components List:

  • 1 x Arduino Uno
  • 1 x Sensor de Temperatura e Umidade DHT22
  • 1 x Display LCD 16x2 com Interface I2C
  • 1 x Resistor de 10kΩ
  • Jumpers e Protoboard

Examples:

#include <Wire.h> // Inclui a biblioteca Wire 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 DHT22
#define DHTTYPE DHT22 // Define o tipo de sensor DHT

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

void setup() {
  Wire.begin(); // Inicia a comunicação I2C
  lcd.begin(); // Inicializa o LCD
  lcd.backlight(); // Liga a luz de fundo do LCD
  dht.begin(); // Inicializa o sensor DHT
  lcd.print("Iniciando..."); // Exibe mensagem inicial no LCD
  delay(2000); // Aguarda 2 segundos
  lcd.clear(); // Limpa a tela do LCD
}

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

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

  lcd.setCursor(0, 0); // Define o cursor na primeira linha
  lcd.print("Temp: "); // Exibe "Temp: "
  lcd.print(t); // Exibe a temperatura
  lcd.print(" C"); // Exibe " C"

  lcd.setCursor(0, 1); // Define o cursor na segunda linha
  lcd.print("Umid: "); // Exibe "Umid: "
  lcd.print(h); // Exibe a umidade
  lcd.print(" %"); // Exibe " %"

  delay(2000); // Aguarda 2 segundos antes de atualizar a leitura
}

Explicação do Código:

  1. As bibliotecas Wire, LiquidCrystal_I2C, e DHT são incluídas para suportar a comunicação I2C, o display LCD, e o sensor DHT, respectivamente.
  2. Definimos o pino de dados do DHT22 e o tipo de sensor.
  3. Inicializamos o sensor DHT e o display LCD I2C no setup().
  4. No loop(), lemos a temperatura e umidade do sensor DHT22.
  5. Verificamos se as leituras são válidas.
  6. Exibimos os valores de temperatura e umidade no display 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.