Botón
El pulsador (o botón) es un elemento mecánico que cambia de estado al ser pulsado y a diferencia del interruptor al dejar de ejercer fuerza sobre él regresa al estado inicial. En otras palabras: permanece pulsado sólo en el instante que nosotros tenemos el dedo encima y el resto del tiempo está “apagado”.
Montaje de un botón
El siguiente esquema representa un montaje de tipo “pull-up” para un botón. La señal se lee en el pin marcado como “S”:
El montaje físico del esquema anterior tendría el siguiente aspecto:
Por el PIN (cable lila, situado arriba a la derecha) es por donde se obtiene la señal del pulsador.
Manejo de un botón
Para poder ver el estado usaremos, además del pulsador, un LED para señalizar el estado.
El siguiente programa define 2 variables para situar el botón y el LED asociado, configurando como entrada digital el botón y como salida digital el LED.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
const byte BTNpin = 5; // PIN donde está el botón conectado const byte LEDpin = 4; // El PIN al que se conectó el LED int btnStatus = 0; // Será el estado del pulsador void setup() { pinMode(LEDpin, OUTPUT); // Configurado el LED como SALIDA pinMode(BTNpin, INPUT); // Y el botón será una ENTRADA } void loop() { btnStatus = digitalRead(BTNpin); // Guardar el estado del botón if (btnStatus == HIGH) { digitalWrite(LEDpin, HIGH); // Al ser pulsado se enciende el LED } else { digitalWrite(LEDpin, LOW); // Y cuando se suelta el LED es apagado } } |
Este programa enciende el LED cuando el botón está en estado alto (HIGH) y apaga el mencionado LED cuando está en estado bajo (LOW). Eso significa que el anterior programa también sirve para ver de qué tipo es:
- Normalmente abierto: el LED estará siempre apagado, al pulsar se encenderá.
- Normalmente cerrado: el LED estará encendido, al pulsar se apagará.
Esta prueba se realiza pues los pulsadores tienen esas 2 opciones y esta es la forma más efectiva de saber de qué tipo es el nuestro.
Evitar los rebotes de un botón
El cambio de estado de un pulsador no es instantáneo y por ello se generan unos pequeños picos llamados rebotes (efecto debouncing en inglés) y debido a que la electrónica es muy rápida una pulsación nuestra se traduce en decenas de pulsaciones (la real y sus rebotes). Para evitar esos molestos falsos positivos producidos por los rebotes basta con esperar un corto espacio de tiempo, lo habitual es un tiempo entre 10 y 50 milisegundos y es un tiempo tan corto que si lo aplicamos significaría que podríamos ejercer entre 100 y 20 pulsaciones al botón cada segundo.