const int botaoPino = 15; // Pino do botão
const int ledPino = 2; // Pino do LED
volatile bool ledStatus = false; // Variável de estado do LED
// Tipo de interrupção para o botão (alterar conforme necessário: RISING, FALLING, CHANGE, HIGH, LOW)
//const int tipoInterrupcao = FALLING;
const int tipoInterrupcao = RISING;
//const int tipoInterrupcao = CHANGE;
//const int tipoInterrupcao = HIGH;
//const int tipoInterrupcao = LOW;
void setup() {
pinMode(botaoPino, INPUT_PULLUP); // Configura o pino do botão como entrada com resistor PULLUP
pinMode(ledPino, OUTPUT); // Configura o pino do LED como saída
// Configura a interrupção no pino do botão
attachInterrupt(digitalPinToInterrupt(botaoPino), ISR_funcao, tipoInterrupcao);
}
void loop() {
// Atualiza o LED com o estado atual
digitalWrite(ledPino, ledStatus ? HIGH : LOW);
}
// Função de Interrupção
void ISR_funcao() {
// Alterna o estado do LED ao disparar a interrupção
ledStatus = !ledStatus;
}