//湿度高8位 湿度低8位 温度高8位 温度低8位 校验位 传感器输出40位数据 Humi_H=DHT11_ReceiveByte(); Humi_L=DHT11_ReceiveByte();//等于0 Temp_H=DHT11_ReceiveByte(); Temp_L=DHT11_ReceiveByte();//温度低8位中的Bit8为1则表示负温度,否则为正温度,后7位为小数部分 Check=DHT11_ReceiveByte...
1、代码中引用了#include《dht11.h》,这个是操作DHT11的库文件,有了它,就可以轻松操作我们这个温湿度传感器了。但是引用这个库文件的操作步骤是: (1)在网上找到并下载该库文件,包括一个头文件和一个.cpp文件。 (2)在arduinoIDE中点击菜单:程序–导入库–addlibrary,然后选择你存放库文件的那个文件夹。 (3)在...
DHT11_delay_ms(1500); //DHT11上电后要等待1S以越过不稳定状态在此期间不能发送任何指令 DHT11_receive(); lcd_write_command(0x80); //从lcd1602第一行第一个位置开始显示 for(i=0;i《9;i++) lcd_write_data(rec_dat[i]); //显示数据 } }...
ms(4500); //DHT11上电后要等待1S以越过不稳定状态在此期间不能发送任何指令DHT11_receive();ES...
H;voidDHT11_receive(void)//接收40位的数据 { uchar R_H,R_L,T_L,RH,RL,TH,TL,revise;...
DHT11是一种数字温湿度传感器,有4个引脚但只有三个有效引脚,分别是VDD,DATA和GND,如图1所示,使用的是典型的单总线通信,即一根数据线。这根数据线需要通过上拉电阻连接到电源,使得数据线在空闲时保持高电平。数据手册建议每2秒种对数据进行一次读取,来保证数据的稳定性。
} write_com(0xc0); //第二行第一个开始显示 temp: for(i=0;i<5;i++) { write_data(array1[i]); } while(1) { delay1s(); //等待 1s 以越过不稳定状态 DHT_receive(); //DHT11读取函数 DHT_display();//1602显示温湿度 } }
}voidDHT11_receive()//接收40位的数据{ uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;intnumber;//闪烁频率intcount2; uchar tempValue; uchar humidityValue; number=20; count2=0; DHT11_start(); count2=0;if(Data==0) {while(Data==0);//等待拉高DHT11_delay_us(40);//拉高后延时80...
unsigned char DHT11_ReceiveByte(void) { unsigned char i,k; unsigned char Byte=0x00; for(i=0;i<8;i++){ while(!Data); //等待响应信号结束 k = 11;while (--k); //Delay30us if(Data){Byte|=(0x01<>i); 就没有问题了…… 惨痛教训 共勉版权声明:本文为crayon2347原创文章,遵循 CC 4....
Data); ///等待50us低电平过去 DHT11_delay_us(8); //延时60us,如果还为高则数据为1,否则为0 dat< <=1; //移位使正确接收8位数据,数据为0时直接移位 if(Data==1) //数据为1时,使dat加1来接收数据1 dat+=1; while(Data); //等待数据线拉低 } return dat; } void DHT11_receive() //接...