Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun
Componentes y materiales
- 1 × Arduino Mega 2560 (o cualquier placa Arduino compatible)
- 1 × Pantalla serial de 7 segmentos SparkFun - Rojo (sin placa breakout)
- 1 × Protoboard (genérica)
- 1 × Cables jumper (genéricos)
- 1 × Cable USB-A a Mini-USB
Aplicaciones y servicios en línea
- Arduino IDE
Sobre el proyecto
Este proyecto nació de la necesidad de contar con un temporizador sencillo. Solo tienes que cargar el código en tu Arduino (cualquier modelo funciona) y la cuenta regresiva comienza automáticamente. Para modificar el tiempo total, cambia el valor de la variable n en el código. Recuerda: 1000 = 1 segundo, así que 60000 = 60 segundos. La fórmula es (SEGUNDOS × 1000). Al pulsar el botón de reset, el contador se reinicia automáticamente.
long n = 60000; // tiempo inicial → CAMBIA AL TIEMPO DESEADO
Código
El siguiente código controla la pantalla de 7 segmentos de 4 dígitos mediante multiplexación. Incluye funciones para mostrar números, gestionar el punto decimal y manejar el reinicio mediante el pin 13.
// Configuración de pines para la pantalla de 7 segmentos
const int a = 12, b = 10, c = 8, d = 7, e = 6, f = 11, g = 9;
int p = 0; // punto decimal
int startStopReset = 13; // botón de reinicio
const int d1 = 1, d2 = 2, d3 = 3, d4 = 4; // pines de selección de dígito
long n = 60000; // tiempo inicial en milisegundos (60 segundos)
int x = 100;
int del = 55; // retardo de multiplexación en microsegundos
void setup() {
pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(d4, OUTPUT);
pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT);
pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(p, OUTPUT);
pinMode(startStopReset, INPUT_PULLUP);
}
void loop() {
// Multiplexación de los 4 dígitos
digitalWrite(p, HIGH);
clearLEDs();
pickDigit(1); pickNumber((n/x/1000)%10); delayMicroseconds(del);
clearLEDs();
pickDigit(2); pickNumber((n/x/100)%10); delayMicroseconds(del);
clearLEDs();
pickDigit(3); dispDec(3); pickNumber((n/x/10)%10); delayMicroseconds(del);
clearLEDs();
pickDigit(4); pickNumber(n/x%10); delayMicroseconds(del);
n--; // decrementa el contador
// Reinicio al pulsar el botón (pin 13 a LOW)
if (digitalRead(startStopReset) == LOW) {
n = 60000; // restablece al tiempo original
}
}
// Funciones auxiliares: pickDigit, pickNumber, dispDec, clearLEDs, zero()...nine()
// (Ver código completo en el repositorio del proyecto)
Esquemático
Consulta el diagrama de conexiones para cablear correctamente la pantalla de 4 dígitos al Arduino. La pantalla SparkFun se comunica vía serial, pero este ejemplo usa control directo de segmentos para fines educativos.
Proceso de manufactura
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
- Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
- Construye tu Propio Tamagotchi con Arduino: Mascota Digital DIY
- Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Pistola de Agua Inteligente Activada por Movimiento con Arduino Nano
- Temporizador de Lavado de Manos con Arduino: Herramienta DIY Simple para Combatir el COVID‑19
- Girasol Arduino: Construye un Girasol Electrónico que Sigue al Sol
- Construye tu Propio Coche RC Porsche con Arduino: Guía Paso a Paso
- Genera Tonos Musicales con Arduino: Guía Paso a Paso