Играя с датчиком 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;
}
Спасибо за вашу помощь.