Depois de lidar com a rejeição de software por um tempo, acho que é um grande problema para o sistema, então pensei em fazer um debouncer de hardware com um gatilho Schmitt (74HC14), um capacitor, botão e resistor, como mostrado abaixo em talkingelectronics.com :
Mas eu li que o gatilho Schmitt é meio desagradável como um inversor comum ao determinar quando produzir uma saída alta ou baixa, porque alterna o estado na marca de 33% e 66%, onde, como um inversor normal, se aproxima da marca de 50% (mas com a versão HC provavelmente é mais de 55%).
Fiquei me perguntando, porque o gatilho Schmitt é de seis inversores em um pacote, a depuração melhoraria substancialmente com qualquer botão de minha escolha aplicado à primeira entrada se eu fizesse seis circuitos no lado direito com os mesmos valores de componentes e conectasse todos os deles em série? (Exemplo: saída do primeiro circuito para a entrada do segundo circuito onde o capacitor e o resistor se encontram.)
Respostas:
O uso de gatilhos de Schmitt em série não reduziria ainda mais o salto.
Considere o filtro:
A entrada é (U). A linha vermelha é um limite de 50%, cuja saída é vista como sinal (A). Ele salta cada vez que a entrada é cruzada.
As linhas verdes são algo entre 33% e 66%, como você afirmou. Mas a saída (B) muda apenas quando a entrada (U) passa de um limite verde para o outro.
Mais importante ainda, a saída é totalmente ALTA ou BAIXA (digital). Portanto, se a saída de um gatilho Schmitt fosse inserida na entrada de outro, não haveria essencialmente nenhuma diferença.
Pegue a saída filtrada acima (B) e pense em como seria vista por outro gatilho Schmitt:
Novamente, a saída do primeiro seria HIGH ou LOW. Portanto, ele cruzaria os limites ao mesmo tempo, resultando na mesma saída que a entrada. Não há nada para rebater! Se alguma coisa, eu esperaria que isso criasse mais ruído, porque você está apresentando mais componentes e, portanto, mais espaço para erros.
Parece que o que você pode estar procurando é um gatilho Schmitt com limites ajustáveis. Alguns são simétricos (por exemplo: 33% e 66%, ou 10% e 90%). Outros são não simétricos (por exemplo: 33% e 80%). Você pode criar o seu próprio usando um amplificador operacional.
Tente brincar com esta simulação que reuni há algum tempo: Simulação de gatilho de Schmitt - Não inversora Não simétrica
fonte
Um único gatilho Schmitt com um filtro analógico na frente pode ser usado para rebater. No entanto, após o disparo de Schmitt, o sinal é totalmente digital. Qualquer gatilho Schmitt adicional não vai mudar isso. Idealmente, eles preservarão o sinal.
Em um tópico separado, a rejeição no firmware não deve apresentar muita carga. A maneira usual é provar o estado do comutador em uma interrupção periódica que você já possui. Você declara o estado rejeitado o valor atual da chave quando vê a chave nesse estado por N amostras consecutivas. Normalmente, eu exijo que o comutador esteja no mesmo estado por 50 interrupções consecutivas de 1 ms para que o novo estado seja considerado válido. Isso geralmente leva uma fração muito pequena do ciclo geral do processador.
fonte