Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Seeed_Grove_Temp_Humidity_Example DHT11_Temp_Humidity IoT_W5500_MQTT
Fork of DHT by
Revision 5:cce2105f7365, committed 2017-01-07
- Comitter:
- Sly_fox
- Date:
- Sat Jan 07 22:26:26 2017 +0000
- Parent:
- 4:0667c68ef5e0
- Commit message:
- Added comments on calculation of temperature and humidity for DHT22
Changed in this revision
| DHT.cpp | Show annotated file Show diff for this revision Revisions of this file | 
--- a/DHT.cpp	Sat Jan 07 21:58:20 2017 +0000
+++ b/DHT.cpp	Sat Jan 07 22:26:26 2017 +0000
@@ -77,7 +77,7 @@
     // start the transfer
     DHT_io.output();
     DHT_io = 0;
-    wait_ms(18);
+    wait_ms(18);  // for DHT22 minimum 800µs but for DHT11 etc. 18ms are required
     DHT_io = 1;
     wait_us(30);
     DHT_io.input();
@@ -133,6 +133,10 @@
 
 }
 
+
+
+
+
 float DHT::CalcTemperature()
 {
     float v;
@@ -142,11 +146,15 @@
             v = DHT_data[2];
             return float(v);
         case DHT22:
-            v = DHT_data[2] & 0x7F;
+        // to calculate temperture of DHT22 in Celsius = (DHT_data[2]*256 + DHT_data[3]) / 10
+        // if first bit of DHT_data[2] is 1 then the temperature is negative. 
+        
+        
+            v = DHT_data[2] & 0x7F;  // mask of the bit for negative temperture
             v *= 256;
             v += DHT_data[3];
             v /= 10;
-            if (DHT_data[2] & 0x80)
+            if (DHT_data[2] & 0x80)  // if first bit of DHT_data[2] is 1 then the temperature is negative.  
                 v *= -1;
             return float(v);
     }
@@ -213,6 +221,7 @@
             v = DHT_data[0];
             return float(v);
         case DHT22:
+        // to calculate humidity of DHT22 = (DHT_data[0]*256 + DHT_data[1]) / 10
             v = DHT_data[0];
             v *= 256;
             v += DHT_data[1];
    