#include <Arduino.h>
const int relayPin = 11; // Pino do relé
const int relayPin2 = 12; // Pino do relé
const int buttonPin = 2; // Pino do botão
const int buttonPin2 = 3; // Pino do botão
const int ligar = 4; // Pino do botão
const int sensorMagneticPin = 8; // Pino do sensor magnético
const int sensorMagneticPin2 = 9; // Pino do sensor magnético
bool ledOn = false; // Estado do LED
bool waitingForSensor = false; // Estado de espera pelo sensor
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, 1); // Certifique-se de que o relé comece desligado
pinMode(relayPin2, OUTPUT);
digitalWrite(relayPin2, 1); // Certifique-se de que o relé comece desligado
pinMode(buttonPin, INPUT_PULLUP); // Botão com resistor de pull-up interno
pinMode(buttonPin2, INPUT_PULLUP); // Botão com resistor de pull-up interno
pinMode(ligar, INPUT_PULLUP); // Botão com resistor de pull-up interno
pinMode(sensorMagneticPin, INPUT_PULLUP); // Sensor magnético com resistor de pull-up interno
pinMode(sensorMagneticPin2, INPUT_PULLUP); // Sensor magnético com resistor de pull-up interno
Serial.begin(9600);
}
void loop() {
// Verifica se o botão foi pressionado
if (digitalRead(buttonPin) == LOW) {
delay(50); // Debounce
while (digitalRead(buttonPin) == LOW) {
digitalWrite(relayPin, 0); // Liga o relé
Serial.println("Direita");
}
digitalWrite(relayPin, 1); // Desliga o relé
}
if (digitalRead(buttonPin2) == LOW) {
delay(50); // Debounce
while (digitalRead(buttonPin2) == LOW) {
digitalWrite(relayPin2, 0); // Liga o relé
Serial.println("Esquerda");
}
digitalWrite(relayPin2, 1); // Desliga o relé
}
// Verifica se o botão foi pressionado para ligar o LED
if (digitalRead(ligar) == LOW && !ledOn && !waitingForSensor) {
delay(50); // Debounce
turnOnLED();
waitingForSensor = true;
}
// Verifica o sensor magnético para desligar o LED
if (digitalRead(sensorMagneticPin) == LOW && ledOn && waitingForSensor) {
delay(50); // Debounce
turnOffLED();
waitingForSensor = false;
}
if (digitalRead(sensorMagneticPin2) == LOW) {
delay(50); // Debounce
if (digitalRead(sensorMagneticPin2) == LOW) {
digitalWrite(relayPin, 1); // Liga o LED
digitalWrite(relayPin2, 1); // Liga o LED
Serial.println("Desligado"); }
}
}
void turnOnLED() {
digitalWrite(relayPin, HIGH); // Liga o LED
digitalWrite(relayPin2, 0); // Liga o LED
Serial.println(">>>>>>>");
ledOn = true;
}
void turnOffLED() {
digitalWrite(relayPin, LOW); // Desliga o LED
digitalWrite(relayPin2, 1); // Desliga o LED
Serial.println("<<<<<<<");
ledOn = false;
}