标题:
LCD1602+DTH11+MQ-135空气污染检测 温湿度程序
[打印本页]
作者:
yao123
时间:
2017-4-6 23:21
标题:
LCD1602+DTH11+MQ-135空气污染检测 温湿度程序
1602的温湿度程序
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int temp;//温度
int humi;//湿度
int tol;//校对码
int j;
unsigned int loopCnt;
int chr[40] = {0};//创建数字数组,用来存放40个bit
unsigned long time;
#define pin 7
int Aout=A0 ;//MQ-135 AO 接 Arduino Uno A0
int temp1 = 0; //临时变量,存储A0读取的数据
void setup() {
Serial.begin(9600);//定义波特率
pinMode(A0, INPUT);//定义A0为INPUT模式
lcd.begin(16, 2);
}
void loop() {
bgn:
delay(2000);
//设置2号接口模式为:输出
//输出低电平20ms(>18ms)
//输出高电平40μs
pinMode(pin,OUTPUT);
digitalWrite(pin,LOW);
delay(20);
digitalWrite(pin,HIGH);
delayMicroseconds(40);
digitalWrite(pin,LOW);
//设置2号接口模式:输入
pinMode(pin,INPUT);
//高电平响应信号
loopCnt=10000;
while(digitalRead(pin) != HIGH)
{
if(loopCnt-- == 0)
{
//如果长时间不返回高电平,输出个提示,重头开始。
Serial.println("HIGH");
goto bgn;
}
}
//低电平响应信号
loopCnt=30000;
while(digitalRead(pin) != LOW)
{
if(loopCnt-- == 0)
{
//如果长时间不返回低电平,输出个提示,重头开始。
Serial.println("LOW");
goto bgn;
}
}
//开始读取bit1-40的数值
for(int i=0;i<40;i++)
{
while(digitalRead(pin) == LOW)
{}
//当出现高电平时,记下时间“time”
time = micros();
while(digitalRead(pin) == HIGH)
{}
//当出现低电平,记下时间,再减去刚才储存的time
//得出的值若大于50μs,则为‘1’,否则为‘0’
//并储存到数组里去
if (micros() - time >50)
{
chr[i]=1;
}
else{
chr[i]=0;
}
}
//湿度,8位的bit,转换为数值
humi=chr[0]*128+chr[1]*64+chr[2]*32+chr[3]*16+chr[4]*8+chr[5]*4+chr[6]*2+chr[7];
//温度,8位的bit,转换为数值
temp=chr[16]*128+chr[17]*64+chr[18]*32+chr[19]*16+chr[20]*8+chr[21]*4+chr[22]*2+chr[23];
//校对码,8位的bit,转换为数值
tol=chr[32]*128+chr[33]*64+chr[34]*32+chr[35]*16+chr[36]*8+chr[37]*4+chr[38]*2+chr[39];
//输出:温度、湿度、校对码
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("temp:");
lcd.print(temp);
lcd.print((char) 0xDF);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("humidity:");
lcd.print(humi);
lcd.print("%");
delay (5000);
temp1 = analogRead(Aout); //读取A0的模拟数据
if (temp<500 )
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("status:normal");
lcd.setCursor(0,1);
lcd.print("potency:");
lcd.print(temp1);
}
if (temp1>500)
{
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整代码下载:
1602 DTH11 MQ-5.doc
(19 KB, 下载次数: 102)
2017-4-6 23:20 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
daiqiangqin
时间:
2017-4-7 13:46
应该发表在ARDUINO版,这个是51版。
作者:
lucq7896
时间:
2017-4-7 17:05
当51程序下的
作者:
6010010
时间:
2020-8-20 10:40
有原理图吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1