Learning   Examples | Foundations | Hacking | Links

Ejemplos > E/S (I/O) Digital

Detección de Cambio de Estado de un Botón (Deteción de Extremos)

Cuando se tiene un pulsador trabajando, a menudo se requiere algún tipo de acción basado en las veces que se ha pulsado. Para ello, necesitas saber cuando el estado del botón cambia de apagado (off) a encendido (on), y contar cuántas veces se produce este cambio de estado. Esto se llama detección de cambio de estado o detección de extremos.

Conecte tres cables a la placa Arduino. El primero va de una patilla del pulsador a través de una resistencia pull-down (en este caso 10 KOhms) a tierra. El segundo va desde la patilla del mismo lado del botón a la fuente de 5 voltios. El tercero se conecta al pin digital de E/S (I/O) (en este caso el pin 2), que lee el estado del botón.

Cuando el pulsador está abierto (sin pulsar) no hay conexión entre los dos extremos del pulsador, de modo que el pin está conectado a tierra (a través de la resistencia pull-down) y leemos un LOW (bajo ó 0). Cuando el botón se cierra (pulsado), se establece una conexión entre sus dos extremos, conectando el pin al voltaje, para que podamos leer un HIGH (alto ó 1). (El pin sigue conectado a tierra, pero la resistencia limita el flujo de corriente, por lo que la resistencia hacia +5V es menor)

Si desconectas el pin de E/S del todo, el LED puede parpadear de forma errática. Esto se debe a que la entrada es "flotante", es decir, no está conectada no a positivo ni a masa. Será mas o menos aleatorio devolviendo HIGH o LOW. Esta es la causa por la que se usa la resistencia pull-down en el circuito.

Circuito

imagen desarrollada utilizando Fritzing. Para mas circuitos de ejemplo, visita la página del proyecto Fritzing

Esquema:

haz click en la imagen para ampliar

El siguiente programa (sketch) lee constantemente el estado del botón. En cada lectura compara el estado del botón con el estado la anterior vez que fue leído en el bucle principal. Si el estado actual del botón es diferente del último estado leido y el estado actual es HIGH (alto o 1), entonces cambia de apagado (off) a encendido (on). Despues el programa incrementa un contador de pulsaciones del botón.

El programa comprueba también el valor del contador de pulsaciones de botón, y si es múltiplo de cuatro, pone el LED del pin 13 a ON (encendido). De lo contrario, lo apaga.

Código

 
     
     
       
  

     
     

Share