Principio microcontroladores parte 9: Botón y Software contra rebotes métodos (1 / 2 paso)

Paso 1: Botón contra rebotes

Para ilustrar el botón contra rebotes, el proyecto que hemos seleccionado contiene dos LEDs. Cuando se presiona el botón, los LEDs alternar entre ellos. Una pulsación enciende uno y el otro en. Al soltar el botón, puede comenzar el proceso otra vez y que los LEDs cambiar otra vez. Usted notará que el LED cambiará dos veces o más con solo un botón Pulse.

Hay dos formas de paralizar contra rebotes. Un método en el circuito (hardware) con el uso de un condensador y un software contra rebotes. El hardware simplemente usa un condensador para eliminar contra rebotes, y el software creará una variable que mide el nivel de confianza de la secuencia de botón de unos o ceros.

Descargo de responsabilidad: Este método que utilizo para hardware contra rebotes es una muy simple y pobre mans método. El principal problema con este método es que la tensión sube de 0 a 5v en lugar de una inmediata o cambio instantáneo. Esto puede poner la señal en un rango que el microcontrolador no sabe cómo lidiar con la tensión. Esta gama es el área entre los límites de las señales altos y bajos, que es entre 2 y 3 voltios. Con esto dicho, no he personalmente visto ningún problema con esto con mi botón contra rebotes. Si desea eliminar esta escalada, utilizar un disparador de schmitt.

En la ilustración video, verá que el circuito está conectado en la placa sin el hardware contra rebotes, por lo que el problema puede ser experimentado. Dos LED está conectado para el microcontrolador, en Puerto B, uno en el pin 0 y el otro en el pin 2. Ambos de estos pernos se establecerá en la salida y puesto que los LED son verdes, una resistencia de 330 ohm se utiliza para cada LED. El interruptor está conectado a la clavija 1 en el puerto B. Este pin se establecerá para la entrada y set para leer alta (pin a un "1"). para la primera prueba de "rebote", no utilizaremos un capacitor a través de los dos cables del botón.

El programa para hacer dos LEDs alternar cuando se pulsa la tecla es muy sencillo. En primer lugar, se inicializan los pernos: pernos de la salida a los LEDs están listos para la salida en el DDR (registro de dirección de datos). Uno de los LEDs se pueden alternar, así al principio, uno está en uno está apagado. Luego, se inicia el bucle sin fin y se ejecuta el código dentro de ese bloque hasta el microcontrolador pierde potencia. Dentro de este bucle, el pin que está conectado el pulsador constantemente se comprueba para determinar si está en. Si se presiona y exhibe un 1, comprueba si el botón estaba primeros liberados. Esto es importante, porque si no tenemos este control, el botón sólo cambiará continuamente mientras se presiona el botón. Sólo queremos que el botón para cambiar si el botón es presionado y liberado.

 #include <avr/io.h> int main(void) { DDRB |= 1 << PINB0; //Set Direction for output on PINB0 PORTB ^= 1 << PINB0; //Toggling only Pin 0 on port b DDRB |= 1 << PINB2; //Set Direction for Output on PINB2 DDRB &= ~(1 << PINB1); //Data Direction Register input PINB1 PORTB |= 1 << PINB1; //Set PINB1 to a high reading int Pressed = 0; //Initialize/Declare the Pressed variable 
 while (1) { if (bit_is_clear(PINB, 1)) //Check is the button is pressed { //Make sure that the button was released first if (Pressed == 0) { PORTB ^= 1 << PINB0; //Toggle LED in pin 0 PORTB ^= 1 << PINB2; //Toggle LED on pin 2 Pressed = 1; } } else { //This code executes when the button is not pressed. Pressed = 0; } <p> }</p><p>}</p> 

Cuando el microcontrolador está programado, y se presiona el botón repetidas veces, llega a estar claro que el LED cambiará, a veces correcta y a veces varias veces con sólo una pulsación. Añadir el condensador y comprobar el botón presionar y LED alternar nuevamente. En el osciloscopio, con el condensador instalado, un aumento gradual de la tensión se crea cuando se pulsa el botón, se oponen a un montón de arriba y abajo de tensiones resultantes de un rebote de las partes mecánicas del botón. Pero cuando se suelta el botón, muestra que la tensión es un cambio directo. Esto es porque el otro capacitor no está instalado entre el botón y el microcontrolador.

Artículos Relacionados

Arduino: Software contra rebotes en función de la interrupción...

Arduino: Software contra rebotes en función de la interrupción...

Hi everybody!Recientemente estaba trabajando en un proyecto donde quería medir las RPM de una de las ruedas en mi coche, y de eso calcular la velocidad, realizar un seguimiento de la distancia de los Driven etc. con un Arduino.Quería usar un imán y u
Principio microcontroladores parte 8: Agregar un botón al microcontrolador y lo que es hacer algo

Principio microcontroladores parte 8: Agregar un botón al microcontrolador y lo que es hacer algo

Una manera muy simple y fácil para proporcionar para la interacción humana con el microcontrolador es insertar un botón en el circuito. Comunicarse con equipos mediante dos principales dispositivos de entrada: el ratón y el teclado. Un teclado no es
Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Hola, esperamos que te ha gustado la parte 1 del principio microcontroladores. Vamos a mover a lo largo de a parte 2 y empezar a hablar acerca de cómo obtener tu microcontrolador para comunicarse con una computadora e interfaces.Por lo tanto, en este
Principio microcontroladores parte 6: Escribir el primer programa para encender un LED

Principio microcontroladores parte 6: Escribir el primer programa para encender un LED

Sé que estás listo para escribir el primer programa. Han sido a través de mucho hasta ahora! Mientras estamos en el tema, vamos a recapitular los acontecimientos. Salió y compró el Microcontrolador AVR de Atmel de su elección. Elegí theATMega32 para
Principio microcontroladores parte 3: Transferencia de un programa en el microcontrolador (conductores)

Principio microcontroladores parte 3: Transferencia de un programa en el microcontrolador (conductores)

¡ Bienvenido a parte 3. Este es un pequeño tutorial que tratará simplemente cargar los controladores para hacer que el programador pueda comunicarse con el ordenador correctamente.Tenga en cuenta que a veces los dispositivos TinyISP y USBAVR ahora vi
Principio microcontroladores parte 5: Pruebas del programador y la construcción del primer circuito

Principio microcontroladores parte 5: Pruebas del programador y la construcción del primer circuito

Hasta ahora, tienes todo el software instalado y había construido la interfaz que proporcionará una conveniente conexión del programador al microcontrolador (MCU). Para el siguiente paso, usted necesitará un protoboard (los números son muy útiles), u
Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Principio microcontroladores parte 11: Temporizadores, contadores y el reloj del microcontrolador

Temporizadores y contadores son tan esenciales que usted verá muchos ejemplos que a lo largo de esta serie. Como el nombre lo dice, se utilizan temporizadores para tiempo y contando. Cuenta y el tiempo le permite hacer algunas cosas muy prolijo como
Principio microcontroladores parte 13: Introducción a la interfaz de LCD

Principio microcontroladores parte 13: Introducción a la interfaz de LCD

El microcontrolador es una maravillosa pieza de ingeniería y puede hacer muchas cosas (con la ayuda de alguna gran programación), pero sigue siendo una caja negra opaca. Si desea compartir información, o mostrar lo que está tratando de hacer, necesit
Principio microcontroladores parte 7: Revisar el primer programa para hacer el parpadeo del LED

Principio microcontroladores parte 7: Revisar el primer programa para hacer el parpadeo del LED

Ha escrito el primer programa, que enciende un LED. sí, eso fue espectacular! Bueno, no realmente, pero vamos a introducir un poco de locura para el LED. Le daremos una personalidad "bipolar" por lo que es blink. Luego paso a otro nivel y hacer
Principio microcontroladores parte 4: Instalar el entorno de programación (WinAVR)

Principio microcontroladores parte 4: Instalar el entorno de programación (WinAVR)

Bienvenido al siguiente paso en nuestra serie. Vamos a introducir algunos elementos básicos de programación ahora. Este tutorial es simplemente acerca de cómo instalar el entorno de programación. El entorno de programación que vamos a usar se llama W
Tutorial de microcontroladores parte 10: Crear un juego (el botón)

Tutorial de microcontroladores parte 10: Crear un juego (el botón)

Ahora estamos listos para aplicar lo que sabemos y hacer un juego real. El juego consistirá en un par de botones y dos conjuntos de LEDs (2 filas de 7). El objetivo del juego es ver que entre dos personas puede presionar su botón más veces en la meno
Interrupciones contra rebotes con MPIDE parte 2: filtros RC

Interrupciones contra rebotes con MPIDE parte 2: filtros RC

¡ Hola chicos! ¿Estás listo para la segunda parte de mi serie debouncing?"Pero Jay!" Puedo te escucho preguntando: "No sabía que hubo una primera"! ¿O tal vez que dijo "espera, contra rebotes? ¿Qué es eso? No estoy muy seguro. Int
Interrupciones contra rebotes con MPIDE parte 1: fuerza bruta

Interrupciones contra rebotes con MPIDE parte 1: fuerza bruta

Ya es hora ¿no?¡Bienvenido! Si has estado siguiendo a mis I'bles hasta este punto, he mostrado dos maneras diferentes de configurar interrupciones en MPIDE usando attachInterrupt() y setIntVector(). En el primero de esos tutoriales, explicó lo que "r
Arduino Nano: Contra rebotes y alternar botón con Visuino

Arduino Nano: Contra rebotes y alternar botón con Visuino

Botones conectado a Arduino se pueden utilizar fácilmente como interruptor de encendido/apagado. Desgraciadamente los botones tienden a crear ruido que despiden cuando conectar/desconectar, hacer la funcionalidad de alternar no fiable. El ruido puede