10-06-2019, 22:37
Posiadam czujnik DHT11 bez rezystora, podłączyłem go mostkując +5V z Data przez rezystor 4.7, dodatkowo GND do GND, VCC do 5V i Data do pinu numer 2.
Korzystam z biblioteki "Mark Ruys" i po wgraniu szkicu co drugi odczyt to wilgotność 0 i temperatura 0, jakby co drugą sekundę pojawia się prawidłowy odczyt, a odświeża co sekundę.
Gdy wgram wersję, która pokazuje tylko prawidłowy odczyt pojawiają się tylko prawidłowe wartości ale mniej więcej co 2 sekundy, jakby pomija te, które byłyby równe 0.
Dlaczego tak jest, czytałem, że DHT11 pozwala na odczyt co 1 sekundę, a DHT22 co 2 sekundy. Czy coś jest nie tak z czujnikiem, czy jest ich aż tyle wersji, że różnie działają? Wygląda, że czujnik działa, a co drugi odczyt więc nie wiem czego to jest wina?
Korzystam z biblioteki "Mark Ruys" i po wgraniu szkicu co drugi odczyt to wilgotność 0 i temperatura 0, jakby co drugą sekundę pojawia się prawidłowy odczyt, a odświeża co sekundę.
Kod:
#include "DHT.h"
#define DHT11_PIN 2
DHT dht;
void setup()
{
Serial.begin(9600);
dht.setup(DHT11_PIN);
}
void loop()
{
//Pobranie informacji o wilgotnosci
int wilgotnosc = dht.getHumidity();
Serial.print(wilgotnosc);
Serial.print("%RH | ");
//Pobranie informacji o temperaturze
int temperatura = dht.getTemperature();
Serial.print(temperatura);
Serial.println("*C");
delay(1000); //Odczekanie wymaganego czasu
}
Kod:
#include "DHT.h"
#define DHT11_PIN 2
DHT dht;
void setup()
{
Serial.begin(9600);
dht.setup(DHT11_PIN);
}
void loop()
{
//Pobranie informacji o wilgotnosci
int wilgotnosc = dht.getHumidity();
//Pobranie informacji o temperaturze
int temperatura = dht.getTemperature();
if (dht.getStatusString() == "OK") {
Serial.print(wilgotnosc);
Serial.print("%RH | ");
Serial.print(temperatura);
Serial.println("*C");
}
//Odczekanie wymaganego czasugo
delay(dht.getMinimumSamplingPeriod());
}
Dlaczego tak jest, czytałem, że DHT11 pozwala na odczyt co 1 sekundę, a DHT22 co 2 sekundy. Czy coś jest nie tak z czujnikiem, czy jest ich aż tyle wersji, że różnie działają? Wygląda, że czujnik działa, a co drugi odczyt więc nie wiem czego to jest wina?