資源簡(jiǎn)介
Arduino-DHT11溫濕度傳感器庫(kù)文件
例程均為中文注釋。

代碼片段和文件信息
//
//????FILE:?dht11.cpp
//?VERSION:?0.4.1
//?PURPOSE:?DHT11?Temperature?&?Humidity?Sensor?library?for?Arduino
//?LICENSE:?GPL?v3?(http://www.gnu.org/licenses/gpl.html)
//
//?DATASHEET:?http://www.micro4you.com/files/sensor/DHT11.pdf
//
//?HISTORY:
//?George?Hadjikyriacou?-?Original?version?(??)
//?Mod?by?SimKard?-?Version?0.2?(24/11/2010)
//?Mod?by?Rob?Tillaart?-?Version?0.3?(28/03/2011)
//?+?added?comments
//?+?removed?all?non?DHT11?specific?code
//?+?added?references
//?Mod?by?Rob?Tillaart?-?Version?0.4?(17/03/2012)
//?+?added?1.0?support
//?Mod?by?Rob?Tillaart?-?Version?0.4.1?(19/05/2012)
//?+?added?error?codes
//
#include?“dht11.h“
//?Return?values:
//?DHTLIB_OK
//?DHTLIB_ERROR_CHECKSUM
//?DHTLIB_ERROR_TIMEOUT
int?dht11::read(int?pin)
{
//?BUFFER?TO?RECEIVE
uint8_t?bits[5];
uint8_t?cnt?=?7;
uint8_t?idx?=?0;
//?EMPTY?BUFFER
for?(int?i=0;?i5;?i++)?bits[i]?=?0;
//?REQUEST?SAMPLE
pinMode(pin?OUTPUT);
digitalWrite(pin?LOW);
delay(18);
digitalWrite(pin?HIGH);
delayMicroseconds(40);
pinMode(pin?INPUT);
//?ACKNOWLEDGE?or?TIMEOUT
unsigned?int?loopCnt?=?10000;
while(digitalRead(pin)?==?LOW)
if?(loopCnt--?==?0)?return?DHTLIB_ERROR_TIMEOUT;
loopCnt?=?10000;
while(digitalRead(pin)?==?HIGH)
if?(loopCnt--?==?0)?return?DHTLIB_ERROR_TIMEOUT;
//?READ?OUTPUT?-?40?BITS?=>?5?BYTES?or?TIMEOUT
for?(int?i=0;?i<40;?i++)
{
loopCnt?=?10000;
while(digitalRead(pin)?==?LOW)
if?(loopCnt--?==?0)?return?DHTLIB_ERROR_TIMEOUT;
unsigned?long?t?=?micros();
loopCnt?=?10000;
while(digitalRead(pin)?==?HIGH)
if?(loopCnt--?==?0)?return?DHTLIB_ERROR_TIMEOUT;
if?((micros()?-?t)?>?40)?bits[idx]?|=?(1?< if?(cnt?==?0)???//?next?byte?
{
cnt?=?7;????//?restart?at?MSB
idx++;??????//?next?byte!
}
else?cnt--;
}
//?WRITE?TO?RIGHT?VARS
????????//?as?bits[1]?and?bits[3]?are?allways?zero?they?are?omitted?in?formulas.
humidity????=?bits[0];?
temperature?=?bits[2];?
uint8_t?sum?=?bits[0]?+?bits[2];??
if?(bits[4]?!=?sum)?return?DHTLIB_ERROR_CHECKSUM;
return?DHTLIB_OK;
}
//
//?END?OF?FILE
//
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-01-15?18:15??Dht11\
?????文件????????2149??2012-09-04?14:09??Dht11\dht11.cpp
?????文件?????????392??2012-09-04?14:38??Dht11\dht11.h
?????目錄???????????0??2014-01-15?18:15??Dht11\examples\
?????目錄???????????0??2014-01-15?18:15??Dht11\examples\dht11\
?????文件????????2474??2012-09-05?10:41??Dht11\examples\dht11\dht11.ino
?????文件????????1331??2019-02-14?14:20??DHT11例程.ino
評(píng)論
共有 條評(píng)論