const int buttonPin = 13; // Pino do botão (conectado ao GND)
const int ledPin = 2; // Pino do LED
int ledState = LOW; // Estado inicial do LED (apagado)
bool buttonPressed = false; // Flag para controle do pressionamento
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Botão com resistor pull-up interno
pinMode(ledPin, OUTPUT); // LED como saída
digitalWrite(ledPin, ledState); // Garante estado inicial //
Serial.begin(9600);
}
void loop() {
// Lê o estado atual do botão
int buttonState = digitalRead(buttonPin);
// Se o botão foi pressionado (LOW porque é PULLUP)
if (buttonState == LOW) {
// Aguarda um pequeno tempo para debounce
delay(50);
// Só muda o estado se não foi um pressionamento anterior
if (buttonPressed == false) {
ledState = !ledState; // Inverte o LED
digitalWrite(ledPin, ledState); // Atualiza o LED
buttonPressed = true; // Marca como pressionado //
// Debug no monitor serial
Serial.print("Estado do LED: ");
Serial.println(ledState == HIGH ? "LIGADO" : "DESLIGADO");
}
} else {
// Quando soltar o botão, reseta o controle
buttonPressed = false;
}
}