Boa tarde,
sou novo aqui e novo com o arduino e o primeiro projeto que peguei pra mexer foi o de medir a temperatura com o DHT11.
to usando a biblioteca do DHT como abaixo e então consegui valores em °C, °F e de Umidade, porém os valores em °C são dados inteiros (ex. hora 23 °C, hora 24 °C, ...) e os valores em Fahrenheit são dados com uma resolução maior, usando as casas decimais. Olhando o código (Também sou novo com programação) percebi que a variável principal dele é o °F e queria mudar pra usar como variável principal o °C para pegar uma melhor resolução, alguém pode me ajudar?
(desde já agradeço e peço perdão por ser leigo e com uma dúvida boba)
Código:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hi = dht.computeHeatIndex(f, h);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hi);
Serial.println(" *F");
}
Tags:
Veja esse exemplo :
http://playground.arduino.cc/Main/DHT11Lib
Nota:
Para usar a biblioteca, crie uma pasta no seu ARDUINO \ bibliotecas com o nome DHT11 e coloque os arquivos dht11.h e dht11.cpp lá. Esteja ciente de que a biblioteca será visível apenas depois de reiniciar todas as instâncias do Arduino IDE.
OI DW, boa tarde.
Veja este datasheet do DHT11. http://robocraft.ru/files/datasheet/DHT11.pdf
Na pagina 2 ele apresenta: Specifications Resolution = 1.
Ou seja ele mede a temperatura de 1 em 1 grau.
Os valores em Fahrenheit são calculados internamente pela biblioteca usando float, e portanto os
valores podem ter casas decimais, mas a resolução é a mesma.
Rui
Olá Dean!
O método readTemperture() por padrão devolve a temperatura em Celsius(C):
float t = dht.readTemperature();
Se você quer em Fahrenheit, passe o parâmetro true:
float f = dht.readTemperature(true);
O programador é que determina qual ele quer exibir. Se você não quiser em Fahrenheit, basta retirar as linhas.
Já o valor da sensação de temperatura (computeHeatIndex), no exemplo está exibindo em Fahrenheit.
Para exibir em Celsius, passe o parâmetro false:
float s = dht.computeHeatIndex(t, h, false);
Como o Rui falou, ambas possuem a mesma precisão(float)
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por