debouncing del conmutador: el conmutador de conmutación seguiría rebotando

7

Tengo el clásico dolor de cabeza debouncing con el Arduino. El interruptor está destinado a encender y apagar un led. Entonces, si uso un botón de alternar (SPDT), ¿seguirá rebotando? Tal vez no, ya que no es un pulsador. ¿Cuánto más costaría usar la palanca? Es solo que es un proyecto que me pidieron que hiciera para mi laboratorio de fabricación local.

    
pregunta Ageis

3 respuestas

10

La mayoría de los interruptores o pulsadores SPST rebotarán, porque solo hay dos estados: contacto cerrado (por ejemplo, nivel bajo) y contacto abierto (nivel alto a través de una resistencia de extracción). Esto puede parecer obvio, pero es esa vacilación al abrir / cerrar lo que causa el rebote; solo una vez es suficiente para hacer que un interruptor no funcione.

Puedes desbaratar el interruptor con un condensador, pero como lo estás usando con un microcontrolador, es más barato hacerlo en software. Por lo general, tengo un temporizador de 32 ms (software) para las exploraciones del teclado, y solo acepto un cambio de estado si persiste durante dos exploraciones consecutivas. Eso significa que tendrá un retraso de hasta 64 ms, pero como el botón se operará manualmente, no notará un retraso tan breve.

Mencionas un botón SPDT, y esa es la mejor solución si quieres hacerlo en hardware.

Pero,francamente,noveoningunarazónparanohacerloenelsoftware,ytendrámuchasmásopcionesenlosbotonesSPSTqueenlosbotonesSPDT.

Sideseaunbotónqueapenasrebote,puedorecomendarlosAlps interruptor de tacto SKQG

que con los dispositivos que probé tuvo un rebote inicial de menos de 10 ns.

    
respondido por el stevenvh
10

El Grupo Ganssle ha escrito un informe muy completo llamado Una Guía para el Debate . En él, el autor, Jack Ganssle, tomó 18 interruptores diferentes y los presionó cada 300 veces. Registró los resultados utilizando un alcance MSO para ver la señal analógica real, así como la representación digital para simular lo que vería un microcontrolador.

Todoslosinterruptoresprobadosrebotarondemaneradiferente.Algunostipospeoresqueotros.Algunosnoenabsoluto.Peroinclusolosinterruptoresidénticosdelmismotiporebotarondemaneradiferente.

  

Losinterruptoresidénticosnoeranparticularmenteidénticos.Seprobarondosparesiguales;cadagemelodiferíadesuhermanoporunfactordedos.

Entonces,sivasausaruninterruptor,tenerquerebotaressolounhechodelavida.

La Parte 2 de la guía ofrece numerosos métodos para manejar el problema de la eliminación de rebotes.

Se discute el pestillo Set-Reset (SR) mencionado por stevenvh:

AsícomoelmétodoRCmásbarato:

Pero, como se menciona en los comentarios y otras respuestas, si tiene un microcontrolador, probablemente sea mejor hacerlo en software. La guía también analiza varios algoritmos que se pueden implementar.

De un ISR muy simple:

Aunaversiónexpandidaparamanejartodounpuertodeconmutadores:

Da una buena lectura al informe completo. Cómo deshacer un cambio es una habilidad que vale la pena tener y que usarás a lo largo de tu carrera.

    
respondido por el embedded.kyle
4

Todos los interruptores de contacto mecánico seco * rebotan. La cantidad varía. Un interruptor SPDT casi siempre se rompe antes de hacer, por lo que las estaciones son bajas / opacas / altas.

PUEDES obtener una marca antes de romper los interruptores SPDT, pero incluso esos pueden rebotar.

* La humectación de mercurio se usa en algunos relés para mejorar la capacidad de manejo actual. Creo que estos tienden a ser libres de rebotes, pero no tengo experiencia de ellos en el mundo real, y son raros y no se encontrará la humectación de mercurio en los interruptores que se han operado.

El software rebotará cualquier cosa: el tiempo que se tome dependerá de qué tan violento y continuo sea el rebote.

Una entrada activada por Schmitt con un retardo RC adecuado generalmente hace un buen trabajo de rebote. El rebote es posible si el retraso es demasiado corto en relación con los tiempos de recuperación en el peor de los casos.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas