mirror of
https://github.com/adafruit/DHT-sensor-library.git
synced 2023-10-23 22:20:38 +03:00
Resolve issue #20 by moving delay after 2 second read check to make read return quickly.
This commit is contained in:
parent
9611395a77
commit
f2a48d6267
10
DHT.cpp
10
DHT.cpp
@ -93,10 +93,8 @@ boolean DHT::read(void) {
|
|||||||
uint8_t j = 0, i;
|
uint8_t j = 0, i;
|
||||||
unsigned long currenttime;
|
unsigned long currenttime;
|
||||||
|
|
||||||
// pull the pin high and wait 250 milliseconds
|
// Check if sensor was read less than two seconds ago and return early
|
||||||
digitalWrite(_pin, HIGH);
|
// to use last reading.
|
||||||
delay(250);
|
|
||||||
|
|
||||||
currenttime = millis();
|
currenttime = millis();
|
||||||
if (currenttime < _lastreadtime) {
|
if (currenttime < _lastreadtime) {
|
||||||
// ie there was a rollover
|
// ie there was a rollover
|
||||||
@ -115,6 +113,10 @@ boolean DHT::read(void) {
|
|||||||
|
|
||||||
data[0] = data[1] = data[2] = data[3] = data[4] = 0;
|
data[0] = data[1] = data[2] = data[3] = data[4] = 0;
|
||||||
|
|
||||||
|
// pull the pin high and wait 250 milliseconds
|
||||||
|
digitalWrite(_pin, HIGH);
|
||||||
|
delay(250);
|
||||||
|
|
||||||
// now pull it low for ~20 milliseconds
|
// now pull it low for ~20 milliseconds
|
||||||
pinMode(_pin, OUTPUT);
|
pinMode(_pin, OUTPUT);
|
||||||
digitalWrite(_pin, LOW);
|
digitalWrite(_pin, LOW);
|
||||||
|
@ -25,6 +25,9 @@ void setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
// Wait a few seconds between measurements.
|
||||||
|
delay(2000);
|
||||||
|
|
||||||
// Reading temperature or humidity takes about 250 milliseconds!
|
// Reading temperature or humidity takes about 250 milliseconds!
|
||||||
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
||||||
float h = dht.readHumidity();
|
float h = dht.readHumidity();
|
||||||
|
Loading…
Reference in New Issue
Block a user