Botón con Arduino: cuenta pulsaciones con antirrebote en millis
Botón con Arduino: cuenta pulsaciones con antirrebote en millis
Una pulsación debe contar una vez. Usa la resistencia pull-up interna y una comprobación de estabilidad para distinguir el contacto real de sus rebotes.
Karen Muller · Tienda de Electrónica MX

El estado de reposo debe estar definido
Con INPUT_PULLUP el pin queda normalmente en HIGH y el botón lo conecta a GND al presionarlo. Por eso una pulsación se reconoce como LOW. No necesitas llevar 5 V a la otra pata del botón en este montaje.
El contacto puede rebotar
Al cerrar, un botón mecánico puede producir varias transiciones rápidas. El ejemplo espera que la lectura permanezca igual durante 30 ms y cuenta solo el cambio estable a LOW. Ese tiempo es ajustable según el componente.
Cablea por continuidad
En botones de cuatro patas, algunas terminales ya están unidas internamente. Comprueba los pares con la alimentación desconectada. El botón debe abrir y cerrar el recorrido entre D2 y GND; si eliges dos patas del mismo lado eléctrico, siempre parecerá presionado.
Mapa conceptual: del componente al resultado
Esquema funcional de esta guía. Para el cableado físico, sigue el pinout del modelo y las conexiones indicadas; las cajas no representan posiciones de terminales.
Video de Tienda de Electrónica MX
Botones en Electrónica: Guía COMPLETA para Usarlos en Arduino, Raspberry Pi y Más
Paso a paso de la práctica
- Conecta el botón entre D2 y GND del Uno, comprobando sus contactos.
- Carga el programa y abre el monitor a 9600 baudios.
- Pulsa diez veces y compara el contador; mantén presionado y comprueba que no suma más.
Programa completo de ejemplo
Ejemplo original preparado para esta guía, para Arduino Uno R3; no se presenta como transcripción del código del video. Copia el sketch completo en Arduino IDE, selecciona la placa y el puerto, y verifica antes de cargar. Si aparece un monitor serie, utiliza la velocidad indicada en Serial.begin.
const byte BOTON = 2;
int anterior = HIGH, estable = HIGH;
unsigned long cambio = 0, cuentas = 0;
void setup() { pinMode(BOTON, INPUT_PULLUP); Serial.begin(9600); }
void loop() {
int actual = digitalRead(BOTON);
if (actual != anterior) cambio = millis();
if (millis() - cambio >= 30UL && actual != estable) {
estable = actual;
if (estable == LOW) { cuentas++; Serial.println(cuentas); }
}
anterior = actual;
}El ejemplo no se ha probado físicamente en la unidad del catálogo. Las conexiones y las especificaciones de tu versión deben coincidir antes de energizar.
Errores que conviene evitar
- No confundir LOW con botón suelto usando INPUT_PULLUP.
- Un pull-up por sí solo no elimina el rebote mecánico.
Dónde comprar botones para Arduino en Puebla
Consulta estas referencias relacionadas y confirma modelo, presentación y disponibilidad antes de comprar. Puedes visitarnos en Calle 3 Sur 1104-A, Centro, Puebla, Puebla, C.P. 72000 o preguntar por las opciones de envío a tu destino en México. Para preparar una cotización, comparte el objetivo, la tarjeta utilizada y tu lista de materiales.

MICRO PUSH BUTTON 2T
SKU 02115 · Revisa el contenido y la ficha de la referencia.
Ver producto y consultar compra →
ARDUINO UNO R3 GENÉRICO
SKU 01025 · Revisa el contenido y la ficha de la referencia.
Ver producto y consultar compra →¿Quieres armarlo o elegir el equipo correcto?
Cuéntanos qué necesitas lograr. Te ayudamos a revisar referencias, accesorios y disponibilidad para tu compra.
Preguntar y cotizar por WhatsApp ↗Ubicación y contactoPreguntas frecuentes
¿El producto enlazado incluye todo lo que aparece en el video?
El video muestra una presentación concreta. Confirma contenido y accesorios en la ficha de la referencia que vas a comprar; no se consideran incluidos por aparecer en la demostración.
¿Puedo pedir ayuda para comprar en Puebla?
Sí. Envíanos por WhatsApp el nombre del producto, el objetivo de tu proyecto y la cantidad que necesitas. Confirma disponibilidad antes de tu visita o de elegir el envío.
¿Cuál es la siguiente guía de este tema?
Pull-up y antirrebote: dos problemas distintos en botones Arduino. Abre el enlace de lectura complementaria para continuar con un enfoque diferente.
Karen Muller · Tienda de Electrónica MX