【Gokit3S SOC/MCU 试用体验】+温湿度传感器输出数据

  • wuxiaokang
  • LV3工程师
  • |      2018-04-03 09:14:45
  • 浏览量 1595
  • 回复:0
由于是小白啊,自己搞了半天才把传感器的数据成功输出,我觉得重要的是编码和这个硬件吧,只有自己编的代码才能有所获吧,虽然第一次发帖有点慢,但是我发的贴希望对大家有帮助,前面课程有点多,代码总是有问题,今天刚刚弄出来,把代码分析一下,我终于把数据通过串口输出来了,后面的我相信不会难的额。 int data_1; int DHpin = 8; //dht_11接8的引脚 /*************DHpin = 8*************/ /*************数据读取*************/ byte dat; byte read_data() { byte data=0; for (int i = 0; i < 8; i++) { if (digitalRead(DHpin) == LOW) { while (digitalRead(DHpin) == LOW); //等待50us; delayMicroseconds(30); //判定数据是‘0’还是‘1’; if (digitalRead(DHpin) == HIGH) data |= (1 << (7 - i)); //高位在前,低位在后; while (digitalRead(DHpin) == HIGH); //数据‘1’,等待下一位; } } return data; } void start_test() { digitalWrite(DHpin, LOW); //拉低总线,发送开始信号 delay(30); //延时>18ms digitalWrite(DHpin, HIGH); //发送高电平 delayMicroseconds(40); //延时40us,等待响应; pinMode(DHpin, INPUT); //数字I/O口改变为输入 while (digitalRead(DHpin) == HIGH); //等待读得输入高电平 delayMicroseconds(80); //拉低总线80us; if (digitalRead(DHpin) == LOW); //如果数字I/O口输入低电平 delayMicroseconds(80); //延时80us,开始接收数据 for (int i = 0; i < 4; i++) //接收5字节温湿度数据 dat = read_data(); pinMode(DHpin, OUTPUT); //数字I/O口改变为输出 digitalWrite(DHpin, HIGH); } /**********DHpin 8**************/ /**********数据读取结束**************/ //++++++++++++++++++++++++++++++++++++++++++++++++++++/ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(DHpin, OUTPUT); pinMode(DHpin_, OUTPUT); } void loop() { // put your main code here, to run repeatedly: //Serial.print("湿度"); start_test(); data_1=(int)dat; data_2=(int)dat; Serial.println("湿度——1_1"); Serial.print(data_1); delay(50); Serial.print("温度——1_2"); Serial.print(data_2); delay(50); delay(200); } 这个是串口输出数据额,后期把传感器先玩的比较熟悉,我比较笨,只有一步一步来额。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子