Oi, gente. Sou iniciante e estou fazendo um trabalho para escola, mas estou com um problema no código e não sei o que fazer.
Basicamente, quando o sensor de temperatura estiver acima de 27 o ar condicionado irá ligar. No caso, o ar condicionado será representado por um led (que tem que piscar só uma vez) e um piezo (que também tem que tocar só uma vez.
O problema é que, por causa do código estar dentro do loop, o led e o piezo não acende/toca só uma vez. Eles ficam sempre ligado.
Vou colocar o código completo aqui, mas ignorem as outras partes, pois o projeto tem mais de uma tarefa no mesmo código/arduino.
int led_branco = 13;
int led_verde = 12;
int rgb_verm = 11;
int rgb_azul = 10;
int rgb_verde = 9;
int pinPIR = 6;
int pinSensorTemp = A0;
int gCelsius = 0;
int piezo = 8;void setup()
{pinMode(pinSensorTemp, INPUT);
pinMode(led_branco, OUTPUT);
pinMode(led_verde, OUTPUT);
pinMode(rgb_verm, OUTPUT);
pinMode(rgb_azul, OUTPUT);
pinMode(rgb_verde, OUTPUT);
pinMode(pinPIR, INPUT);
pinMode(piezo, OUTPUT);}
void loop()
{int vez = 1;
//sensor de temperatura
int sensorTemp = analogRead(pinSensorTemp); //leitura do sensor
gCelsius = map(((analogRead(pinSensorTemp) - 20)*3.04), 0 , 1023, -40, 125);byte s_mov = digitalRead(pinPIR);
if(s_mov > 0)
{
digitalWrite(led_branco, HIGH);
} else{
digitalWrite(led_branco, LOW);
}if(gCelsius > 27){ digitalWrite(led_verde, HIGH); digitalWrite(piezo, HIGH); }else{ digitalWrite(led_verde, LOW); digitalWrite(piezo, LOW); }}
A parte que preciso de ajuda é na condição "if(gCelsius > 27)".
Quero que quando o sensor estiver acima de 27 o led e o piezo irá piscar/tocar só uma vez. (O led ficaria aceso por mais ou menos 0,2 segundos)
Espero que possam me ajudar. Obrigado.