#define BOTAO 12
#define LED_CURTO 13
#define LED_LONGO 11
unsigned long tempoPressionado = 0;
bool estadoAnterior = HIGH;
const unsigned long tempoFiltro = 50;
const unsigned long tempoCurto = 2000;
const unsigned long tempoLongo = 5000;
bool ledCurto = false;
bool ledLongo = false;
void setup() {
  pinMode(BOTAO, INPUT_PULLUP);
  pinMode(LED_CURTO, OUTPUT);
  pinMode(LED_LONGO, OUTPUT);
}
void loop() {
  bool leitura = digitalRead(BOTAO);
  if (leitura == LOW && estadoAnterior == HIGH) {
    tempoPressionado = millis();
    estadoAnterior = LOW;
  }
  if (leitura == HIGH && estadoAnterior == LOW) {
    unsigned long duracao = millis() - tempoPressionado;
    if (duracao >= tempoLongo) {
      ledLongo = !ledLongo;
      digitalWrite(LED_LONGO, ledLongo);
    } else if (duracao >= tempoCurto) {
      ledCurto = !ledCurto;
      digitalWrite(LED_CURTO, ledCurto);
    }
    estadoAnterior = HIGH;
  }
}