#include <Arduino.h>
#define BUTTON_PIN 12
#define LED_PIN_1 21
#define LED_PIN_2 18
volatile bool buttonPressed = false;
volatile unsigned long buttonPressStartTime = 0;
volatile bool estado1 = false;
volatile bool estado2 = false;
unsigned long lastPrintTime = 0;
void buttonInterrupt() {
if (digitalRead(BUTTON_PIN) == HIGH) {
buttonPressed = true;
buttonPressStartTime = millis();
} else {
buttonPressed = false;
}
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), buttonInterrupt, RISING);
}
void loop() {
if (buttonPressed) {
unsigned long elapsedTime = buttonPressStartTime;
Serial.println(elapsedTime);
if (elapsedTime >= 3000 || estado1 == true) {
digitalWrite(LED_PIN_1, HIGH);
noInterrupts();
estado1 = true;
elapsedTime = 0;
interrupts();
}
if (elapsedTime >= 5000 || estado2 == true) {
digitalWrite(LED_PIN_2, HIGH);
noInterrupts();
estado2 = true;
elapsedTime = 0;
interrupts();
}
}else {
buttonPressStartTime = 0;
}
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4