#define LDR_PIN 17
#define BUTTON_PIN 11
#define POT_PIN 8
volatile bool led_enabled = false;
unsigned long last_interrupt_time = 0;
int ldr_value = 0;
int pot_value = 0;
void IRAM_ATTR handleButtonInterrupt() {
unsigned long interrupt_time = millis();
if (interrupt_time - last_interrupt_time > 200) {
led_enabled = !led_enabled;
last_interrupt_time = interrupt_time;
}
}
void setup() {
Serial.begin(115200);
pinMode(LDR_PIN, INPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(POT_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), handleButtonInterrupt, FALLING);
}
void loop() {
if(led_enabled){
digitalWrite(LED_BUILTIN, HIGH);
ldr_value = analogRead(LDR_PIN);
pot_value = analogRead(POT_PIN);
Serial.println("nivel de luz: " + String( ldr_value ));
Serial.println("nivel do potenciometro: "+ String(pot_value));
}
else{
digitalWrite(LED_BUILTIN, LOW);
Serial.println("off");
}
delay(50);
}