int led = 2; // Definindo que a luz está na porta digital 2
int pot = A0; // Definindo que o Sensor de movimento está na porta analógica A0
boolean dentroQuarto = false; // Definindo variável que representa se a pessoa está dentro do quarto
boolean podeDesligar = false; // Definindo variável que representa se acabou o delay para poder apagar a luz
void setup(){ // Inicia o void setup
// Definindo a luz como Saída
pinMode(led, OUTPUT);
// Defininindo o Sensor de movimento como Entrada
pinMode(pot, INPUT);
}
void loop() {
// Verificando se houve uma ativação do sensor de movimento
if ( digitalRead(pot) == HIGH ) {
dentroQuarto = true;
}
// Verifica se acabou o delay do sensor e a pessoa está dentro do quarto, permitindo que a luz seja desligado quando passar pelo sensor novamente
if ( dentroQuarto == true && digitalRead(pot) == LOW ) {
podeDesligar = true;
}
// Verifica se já pode desligar a luz e foi ativado o sensor, ou seja, quando a pessoa saiu do quarto
if ( podeDesligar == true && digitalRead(pot) == HIGH) {
dentroQuarto = false;
}
// Verifica se acabou o delay após a pessoa sair do quarto e desliga a permissão para desligar a luz
if ( podeDesligar == true && digitalRead(pot) == LOW && dentroQuarto == false) {
podeDesligar = false;
}
// Verifica se a pessoa está no quarto, se sim, acende a luz, senão, apaga a luz
if ( dentroQuarto == true) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}