#define LED1 2
#define LED2 3
#define LED3 4
#define LED4 5
#define LED5 6
#define PIR1 23 // Sensor no poste 2
#define PIR2 25 // Sensor no poste 4
#define LDR A0
int luminosidade = 0;
const int BRILHO_BAIXO = 5; // 2% de 255
const int BRILHO_ALTO = 255; // 100%
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(PIR1, INPUT_PULLUP);
pinMode(PIR2, INPUT_PULLUP);
//Serial.begin(9600);
}
void loop() {
luminosidade = analogRead(LDR);
//Serial.println(luminosidade);
if (luminosidade > 512) { // Se estiver escuro
bool movimento_pir1 = digitalRead(PIR1); // detecta o movimento
bool movimento_pir2 = digitalRead(PIR2);
// Define brilho inicial baixo para todos os LEDs
int brilho1 = BRILHO_BAIXO;
int brilho2 = BRILHO_BAIXO;
int brilho3 = BRILHO_BAIXO;
int brilho4 = BRILHO_BAIXO;
int brilho5 = BRILHO_BAIXO;
// Se detectar movimento no PIR1 (poste 2)
if (movimento_pir1) {
brilho1 = BRILHO_ALTO; // LED adjacente
brilho2 = BRILHO_ALTO; // LED do sensor
brilho3 = BRILHO_ALTO; // LED adjacente
}
// Se detectar movimento no PIR2 (poste 4)
if (movimento_pir2) {
brilho3 = BRILHO_ALTO; // LED adjacente
brilho4 = BRILHO_ALTO; // LED do sensor
brilho5 = BRILHO_ALTO; // LED adjacente
}
// Aplica o brilho calculado aos LEDs
analogWrite(LED1, brilho1);
analogWrite(LED2, brilho2);
analogWrite(LED3, brilho3);
analogWrite(LED4, brilho4);
analogWrite(LED5, brilho5);
} else { // Se estiver claro
// Apaga todos os LEDs
analogWrite(LED1, 0);
analogWrite(LED2, 0);
analogWrite(LED3, 0);
analogWrite(LED4, 0);
analogWrite(LED5, 0);
}
delay(100); // Pequeno delay para estabilidade
}