Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
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:
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:
#include <Wire.h>
e #include <LiquidCrystal_I2C.h>
: Importam as bibliotecas necessárias para a comunicação I2C e o display LCD.#define DHTPIN 2
e #define DHTTYPE DHT22
: Define o pino de conexão e o tipo do sensor DHT.DHT dht(DHTPIN, DHTTYPE);
e LiquidCrystal_I2C lcd(0x27, 16, 2);
: Inicializa o sensor DHT e o display LCD com o endereço I2C.void setup()
: Configura a inicialização dos componentes.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.