/********
Os dois leds piscam na mesma frequencia.
O botão 12, quando pressionado, faz com que os leds
pisquem a uma frequencia de 1 Hz.
Quando o botão 14 quando pressionado, aumenta a frequencia
para 4 Hz.
********/
#define LED1 16
#define LED2 17
#define BTN_LOW_FREQ 12 // 1 Hz
#define BTN_HIGH_FREQ 14 // 4 Hz (pull-up interno)
uint32_t periodo_ms = 500; // inicial: 2 Hz
bool estado_led = false;
uint32_t lastToggle = 0;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BTN_LOW_FREQ, INPUT); // sem pull-up
pinMode(BTN_HIGH_FREQ, INPUT_PULLUP); // ativo em LOW
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
void loop() {
uint32_t now = millis();
// ===== Leitura direta dos botões (sem debounce) =====
// Botão 12 → ativo em HIGH (ajustar se hardware diferente)
if (digitalRead(BTN_LOW_FREQ) == LOW) {
periodo_ms = 1000; // 1 Hz
}
// Botão 14 → pull-up → ativo em LOW
if (digitalRead(BTN_HIGH_FREQ) == LOW) {
periodo_ms = 250; // 4 Hz
}
// ===== Controle de piscar =====
if ((now - lastToggle) >= periodo_ms) {
lastToggle = now;
estado_led = !estado_led;
digitalWrite(LED1, estado_led);
digitalWrite(LED2, estado_led);
}
}