Я новичок в кодировании Arduino.
У меня есть проект, который использует Arduino для открывания ворот, но только когда температура поднимается выше 24 градусов.Проблема в том, как заставить Arduino отправить сигнал на размыкание реле, но только один раз?
Я пытался использовать операторы if и пытаться выполнить их некоторое время (1);но это, кажется, заканчивает весь сценарий.так что это не делает то, что я хочу ...
```
float temp;
int tempPin = A0;
int Relay1 = 13;
bool ronce = false;
void setup() {
Serial.begin(9600);
pinMode(Relay1,OUTPUT);
}
void loop() {
delay(500);
temp = analogRead(tempPin);
temp = temp * 0.48828125;
Serial.print(temp);
if(temp>24){
ronce == true;
Serial.println(" Temp over 24 degree");
if (ronce = true){
Serial.println(" Ronce is true.");
while(1){
Serial.println("runOnce");
digitalWrite(Relay1,HIGH);
delay(500);
digitalWrite(Relay1,LOW);
}
}
}
else {
ronce == false;
Serial.println(" failure");
}
}
Я хочу, чтобы он отправил сигнал на 24 градуса на реле, чтобы перейти на NC и заземление, а затем выключиться через 500 мс.тогда он не должен включаться снова до тех пор, пока он снова не опустится ниже 24 градусов.
Выход получается между 20-37 градусами, поэтому LM35 делает, как я хочу, это просто код.