Em diversos projetos precisamos agilizar o controle de cliques em push buttons e, então, fiz essa biblioteca para me auxiliar.
Com a ButtonControl é possível controlar cliques rápidos e também cliques duplos, triplos, longos e sequenciais. Além de retornar os tempos dos cliques em milissegundos.
Adicionando a biblioteca no projeto e declarando o botão conectado ao pino 4:
#include <ButtonControl.h>
ButtonControl btn(4);
Por padrão, a biblioteca já efetuará a configuração do pino para INPUT_PULLUP. É possível alterar através dos parâmetros opcionais:
ButtonControl btn(buttonPin, internalPullup = true, logicSignal = LOW);
Utilizando o modo de verificação de clique rápido:
if (btn.fastClick()) {
Serial.println("Clicou!");
}
Modo de clique normal:
if (btn.click()) {
Serial.println("Clicou!");
Serial.print("Quantidade de cliques: ");
Serial.println(btn.getButtonClicks());
}
Modo de clique longo:
if (btn.longClick()) {
Serial.println("Clique longo!");
Serial.print("Tempo do clique longo em milissegundos: ");
Serial.println(btn.getLongClickTime());
}
Junto com a biblioteca estão disponíveis os códigos com os exemplos de funcionamento.
A biblioteca está disponível em:
Tem limitações de quantidade botões? Obrigado pela lib!
ResponderExcluirBom dia! Possui limitação de hardware. Quantos pinos tiver disponível no projeto. Abraços!
Excluir