Boa tarde comunidade! Estava usando o modulo DHT11 com o arduino uno xingling (exatamente esse: Sensor de Umidade e Temperatura DHT11 - PISCALED | Arduino | Componentes eletrônicos | Motor de passo | Sensores - Encurtador de URL - Encurtador de Link - Bityli) normalmente e quando adicionei um display OLED (Display OLED 128x64 0.96" I2C - Azul/Amarelo - Eletrogate - Loja de Arduino \\ Robótica \\ Automação \\ Apostilas \\ Kits - Encurtador de URL - Encurtador de Link - Bityli) ele passou a ler -22°C de temperatura e 82% de umidade (travado nesses valores) e as vezes falhava e apresentava a mensagem "Failed to read from DHT". Eu tinha outro módulo reserva e também apresentou o mesmo problema. Ambos sensores nunca haviam sido usados antes, e um deles funcionou a principio e apresentou problemas posteriormente, o outro sequer funcionou... O que eu fiz:
Depois de ler um pouco a respeito dos possíveis problemas eu adicionei um resistor 10k entre os pinos vcc e data, diminui o comprimento dos fios (antes eu estava usando 2 jumpers femea/macho + macho/macho em cada pino do sensor, então passei a usar apenas um jumper macho/macho conectado direto ao arduino), testei alguns códigos diferentes, troquei os pinos (inclusive mudei a alimentação de 5v para 3.3v), retirei o módulo OLED e testei apenas o DHT11 (como estava a principio) e nada! Segue o código que usei, peguei no site da eletrogate:
#include "DHT.h"
#define DHTPIN A1 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11
// Conecte pino 1 do sensor (esquerda) ao +5V
// Conecte pino 2 do sensor ao pino de dados definido em seu Arduino
// Conecte pino 4 do sensor ao GND
// Conecte o resistor de 10K entre pin 2 (dados)
// e ao pino 1 (VCC) do sensor
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop()
{
// A leitura da temperatura e umidade pode levar 250ms!
// O atraso do sensor pode chegar a 2 segundos.
float h = dht.readHumidity();
float t = dht.readTemperature();
// testa se retorno é valido, caso contrário algo está errado.
if (isnan(t) || isnan(h))
{
Serial.println("Failed to read from DHT");
}
else
{
Serial.print("Umidade: ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
}
}
Ahh e só mais uma observação, instalei a lib via gerenciador de bibliotecas na própria IDE e fui procurar na pasta da IDE pra reinstalar e não encontrei. Será que pode ser algum bug?