arduino控制温湿度,数码管风机,蜂鸣器大程序

这里面啥程序都有
https://mp.csdn.net/mdeditor/84961228#

按键 按下按键开始采集
第一次采集温度,每三秒一次使用数码管显示
设定大于25摄氏度时开启风扇 温度小于23度时关闭风扇

再次按下按键,采集温度每三秒一次使用数码管显示,大于60度时开启蜂鸣器响5秒

第三次按下按键,开始显示停机时间99分59秒,技术满了之后重新计数。

1.实验器材 开发板 风扇 按钮 温湿度 蜂鸣器 数字数码管 电源线等
2.代码如下
#include <VitconHT16K33.h>
#include <DHT.h>
#define DHTTYPE DHT11
#define buttonPin 2
#define DHTPIN 4
#define NOTE_DH6 990
using namespace vitcon;

#define Forward 8
#define Reverse 9
#define NOTE_D0 -1
const int buzzer = 12;

HT16K33 fnd;
DHT dht(DHTPIN, DHTTYPE);
int m=0;
int buttonState = 0;
int k=0;
int md[]={NOTE_DH6};
float noteDuration[]={1};
void onChange()
{
k++;
if(k>3){
k=1;
}
}
int len;
void setup() {
fnd.Init();
delay(1000);
pinMode(buttonPin, INPUT);
pinMode(12,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(2, INPUT);
len=sizeof(md)/sizeof(md[0]);
Serial.begin(9600);
Serial.println(“DHTxx test!”);
dht.begin();
attachInterrupt( digitalPinToInterrupt(2), onChange, FALLING);

}

void loop() {
//kk:
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
float hic = dht.computeHeatIndex(t, h, false);

if (k == 1) {
 Serial.print("Temperature: ");
 Serial.println(t);
 Serial.println(" *C\t");
 fnd.Number(t);
 fnd.Send();
delay(1000);
if(t>25){
digitalWrite(Reverse, LOW);
digitalWrite(Forward, HIGH);
  }
  if(t<23){
digitalWrite(Reverse, LOW);
digitalWrite(Forward, LOW);
delay(1000);
    }

}

if(k == 2){
Serial.print(“Humidity: “);
Serial.println(h);
Serial.println(” %\t”);
fnd.Number(h);
fnd.Send();
delay(1000);
if(h>60){
for(int x=0;x<len;x++){
tone(12,md[x]);
}
}else{
noTone(12);
}
if(t<23){
digitalWrite(Reverse, LOW);
digitalWrite(Forward, LOW);
delay(5000);
}
}
if(k3){
// Serial.println(“number”);
int i=0;
for(int i=1;i<=60;i++){
if(k
3){
delay(2);
fnd.Dot(1);
fnd.Send();
if(i==60){
i=0;
m=m+100;
}

if(m==9900){
m=0;

break;
}
fnd.Number(m+i);
fnd.Send();
}
else{
break;
}
}
}
}

3.实验思路
我们要找好头文件,以及实验器材的接口,与之对应不能有误
配置好我们所需要的东西,不能连着开关插拔器件,在loop中我们定义了三个循环三个方法来解决我们的实验问题
4.实验总结
此次实验中,我解决的不随便占用cpu资源的问题,用的是PWM控制蜂鸣器方法
还解决了,时间到59秒问题,改了循环
摁键 要连在D2处,原因如引脚图所示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值