按键 按下按键开始采集
第一次采集温度,每三秒一次使用数码管显示
设定大于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(k3){
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处,原因如引脚图所示
|
请发表评论