arduino - 如何设置 Arduino 重置功能以仅读取 DHT11 传感器
问题描述
在玩 DHT11 传感器时,我意识到 Arduino 在硬重置后发现传感器断开连接。我的问题是如何在保持变量不变的情况下每分钟重置 Arduino,因为我有很多变量取决于先前的状态。例如,当 Arduino 检测到传感器断开连接时,我希望变量 (i) 变为等于 2。这就是我尝试过的。(这绝对是错误的,并且仍处于开发阶段)。可能吗?
#include <dht11.h>
int led1=10; //Green Light (Working)
int i=0;//Status variable
int l=13;//Button Press indicator
dht11 DHT11;
#define DHT11PIN 7
int led2=12;//Red Light (Not working)
int led3=11;//Warning Light (Yellow)
int input=2; //LED Reset Button
int oldButtonState = LOW;
void setup()
{
Serial.begin(9600);
pinMode(input,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(l,OUTPUT);
}
void(* resetFunc) (void) = 0;
void loop() {
for (int j=0;j<60;j++){
int chk = DHT11.read(DHT11PIN);
Serial.print("Temperature (C): ");
int temp=DHT11.temperature;
Serial.println((float)temp,2);
delay(100);
}
resetFunc();
int newButtonState = digitalRead(input);
if (newButtonState == HIGH && oldButtonState == LOW) {
digitalWrite(l,HIGH);
i+=1;}
else if (newButtonState == LOW && oldButtonState == HIGH) digitalWrite(l,LOW);
if (i == 3) {
i = 0;
}
if(i==0){
digitalWrite(led1,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led2,LOW);
}
else if (i==1){
digitalWrite(led1,LOW);
digitalWrite(led3,HIGH);
digitalWrite(led2,LOW);
}
else if(i==2){
digitalWrite(led1,LOW);
digitalWrite(led3,LOW);
digitalWrite(led2,HIGH);
}
oldButtonState = newButtonState;
}
谢谢您的帮助。
解决方案
推荐阅读
- django - django 在 Listview 中编辑记录
- java - 如何在骆驼中提取xpath列表
- php - 使用 xampp 时遇到服务器错误
- atom-editor - Atom - 从不同层次结构打开多文件夹项目
- sql - 我有一个符合统计的数据现在我想要一个符合我的数据库的数据
- java - Spring-boot + liquibase:复杂的数据操作/迁移/填充
- amazon-web-services - 将 Amazon SQS 用于接收相同消息的多个使用者
- javascript - 使用 MVC 检查至少一个自动生成 jquery 数据表复选框
- javascript - 类javascript画布中的线旋转
- javascript - Extjs 网格跨度和行跨度