李向阳 发表于 2018-12-9 18:13:26

【实验室培训_201810期】+周航、李向阳+第四周任务(软件)

一、实验任务:通过按下不同的按键,串口监视器输出显示不同温度类型(摄氏度、华氏温度、开氏温度、列氏温度)与湿度,同时不同的发光二极管发光。

二、通过Arduino软件编写程序与DHT11模块,利用串口监视器显示不同按键按下所显示的湿度与不同的温度类型。

三、实验步骤:
1.实验设计:通过按键1,2,3,4依次控制串口监视器显示摄氏温度、华氏温度、开氏温度、列氏温度,和湿度。
2.实验程序:按键1控制串口显示湿度与摄氏温度,并且发光二极管1,8发光;
                  按键2控制串口显示湿度与华氏温度,并且发光二极管2,7发光;
                         按键3控制串口显示湿度与开氏温度,并且发光二极管3,6发光;
                  按键4控制串口显示湿度与列氏温度,并且发光二极管4,5发光;
实验主要代码(部分):
if(val8==LOW)
{
   /* 查看 DHT11 是否在线或数据读取是否成功 */
int chk = DHT11.read(DHT11PIN);

/* 输出 DHT11 模块数据 */
Serial.print("Read sensor: ");
switch (chk)
{
/* 数据读取成功 */
case DHTLIB_OK:
Serial.println("OK");
break;
/* 数据读取成功,但检验错误 */
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error");
break;
/* 数据读取超时,即模块不在线 */
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Time out error");
break;
/* 其他错误 */
default:
Serial.println("Unknown error");
break;
}
/* 输出湿度信息 */
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);
/* 输出温度信息 */
Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature, 2);//摄氏温度
Serial.println("\n");
delay(2000);
for(i=0;i<2;i++)
{
digitalWrite(A0,HIGH);
delay(400);
digitalWrite(A0,LOW);
delay(400);
digitalWrite(7,HIGH);
delay(400);
digitalWrite(7,LOW);
delay(400);
}
}
3、串口监视器显示:
DHT11 TEST PROGRAM
LIBRARY VERSION: 0.4.1

Read sensor: OK
Humidity (%): 63.00
Temperature (oC): 14.00

Read sensor: OK
Humidity (%): 63.00
Temperature (oF): 57.20

Read sensor: OK
Humidity (%): 63.00
Temperature (K): 287.15

Read sensor: OK
Humidity (%): 64.00
Temperature (oRe): 11.20

4、实验效果展示:


四、实验收获
1、编写程序时,由于串口通信的原因,管脚0与1不可以作为跑马灯或者按键的输入管脚。
2、编写程序的时候在初始化的时候应该把按键的四个输入管脚电平拉高,否则会先执行一次全过程才进入想要的程序中。

页: [1]
查看完整版本: 【实验室培训_201810期】+周航、李向阳+第四周任务(软件)