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

A comunicação I2C (Inter-Integrated Circuit) é um protocolo de comunicação serial amplamente utilizado em sistemas embarcados para permitir a comunicação entre microcontroladores e periféricos. A importância do I2C reside em sua capacidade de conectar múltiplos dispositivos utilizando apenas dois fios, o que simplifica o design do circuito e reduz a quantidade de pinos necessários. No ambiente Arduino, a biblioteca Wire facilita a implementação da comunicação I2C, tornando-a acessível mesmo para iniciantes.

Project: Neste projeto, vamos demonstrar como configurar uma comunicação I2C entre um Arduino Uno e um sensor de temperatura e umidade DHT22. O objetivo é ler os dados do sensor e exibi-los no monitor serial. Este projeto é ideal para entender os fundamentos da comunicação I2C e como integrá-la com sensores comuns.

Components List:

  • 1x Arduino Uno
  • 1x Sensor de temperatura e umidade DHT22
  • 1x Display LCD 16x2 com interface I2C
  • 1x Protoboard
  • Jumpers (fios de conexão)

Examples:

#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 digital onde o DHT22 está conectado
#define DHTTYPE DHT22 // Definindo o tipo de sensor DHT

DHT dht(DHTPIN, DHTTYPE); // Inicializando o sensor DHT
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço I2C do LCD, e dimensões (16x2)

void setup() {
  Wire.begin(); // Inicializa a biblioteca Wire
  lcd.begin(); // Inicializa o display LCD
  lcd.backlight(); // Liga a luz de fundo do LCD
  dht.begin(); // Inicializa o sensor DHT
  Serial.begin(9600); // Inicializa a comunicação serial
}

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)) {
    Serial.println("Falha ao ler do sensor DHT!");
    return;
  }

  // Exibe os valores no monitor serial
  Serial.print("Umidade: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.println(" *C");

  // Exibe os valores no LCD
  lcd.setCursor(0, 0); // Define o cursor na primeira linha
  lcd.print("Umid: ");
  lcd.print(h);
  lcd.print(" %");
  lcd.setCursor(0, 1); // Define o cursor na segunda linha
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print(" C");

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

Comentários do código:

  1. #include <Wire.h> e #include <LiquidCrystal_I2C.h>: Importam as bibliotecas necessárias para a comunicação I2C e o display LCD.
  2. #define DHTPIN 2 e #define DHTTYPE DHT22: Define o pino de conexão e o tipo do sensor DHT.
  3. DHT dht(DHTPIN, DHTTYPE); e LiquidCrystal_I2C lcd(0x27, 16, 2);: Inicializa o sensor DHT e o display LCD com o endereço I2C.
  4. void setup(): Configura a inicialização dos componentes.
  5. void loop(): Lê os dados do sensor, verifica falhas, exibe os valores no monitor serial e no display LCD, e aguarda 2 segundos antes de repetir.

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.