#include <TimerOne.h>
#define LED_ROJO 10
#define POT A0
int tiempo = 0;
int posicion = 0;
// Pines para los segmentos A-G del display de 7 segmentos
#define PIN_A 2 // Segmento A
#define PIN_B 3 // Segmento B
#define PIN_C 4 // Segmento C
#define PIN_D 5 // Segmento D
#define PIN_E 6 // Segmento E
#define PIN_F 7 // Segmento F
#define PIN_G 8 // Segmento G
volatile int B = 0; // Variable para el número a mostrar
int A;
void setup() {
// Configurar pines como salidas
pinMode(LED_ROJO, OUTPUT);
digitalWrite(LED_ROJO, LOW);
pinMode(PIN_A, OUTPUT);
pinMode(PIN_B, OUTPUT);
pinMode(PIN_C, OUTPUT);
pinMode(PIN_D, OUTPUT);
pinMode(PIN_E, OUTPUT);
pinMode(PIN_F, OUTPUT);
pinMode(PIN_G, OUTPUT);
// Configuramos el timer para 1ms
Timer1.initialize(1000); // 1 ms
Timer1.attachInterrupt(ISR_Blink); // Configuramos la interrupción
// Inicializamos el valor de A con 0
B = 0;
}
void loop() {
if (A == 1) {
A = 0;
if (segundos == 0 / seg == 3)
tiempo = 0
seg = 0
if (potv = analogRead(POT);
if (potv <= 204){
seccion = 1;
}
else if (potv <= 409){
seccion = 2;
}
if (seccion == 1)
// Función de interrupción para el temporizador
void ISR_Blink() {
mostrarNumero(B);
A = 1;
}
// Función para mostrar un número en el display de 7 segmentos
void mostrarNumero(int dato) {
// Inicialmente, todos los segmentos están apagados
digitalWrite(PIN_A, HIGH);
digitalWrite(PIN_B, HIGH);
digitalWrite(PIN_C, HIGH);
digitalWrite(PIN_D, HIGH);
digitalWrite(PIN_E, HIGH);
digitalWrite(PIN_F, HIGH);
digitalWrite(PIN_G, HIGH);
if (dato == 0) {
// Encender segmentos para mostrar el número 0
digitalWrite(PIN_A, LOW);
digitalWrite(PIN_B, LOW);
digitalWrite(PIN_C, LOW);
digitalWrite(PIN_D, LOW);
digitalWrite(PIN_E, LOW);
digitalWrite(PIN_F, LOW);
// Segmento G permanece apagado
}
if (dato == 1) {
// Encender segmentos para mostrar el número 1
digitalWrite(PIN_A, HIGH);
digitalWrite(PIN_B, LOW);
digitalWrite(PIN_C, LOW);
digitalWrite(PIN_D, HIGH);
digitalWrite(PIN_E, HIGH);
digitalWrite(PIN_F, HIGH);
digitalWrite(PIN_G, HIGH);
}
if (dato == 2) {
// Encender segmentos para mostrar el número 2
digitalWrite(PIN_A, LOW);
digitalWrite(PIN_B, LOW);
digitalWrite(PIN_C, HIGH);
digitalWrite(PIN_D, LOW);
digitalWrite(PIN_E, LOW);
digitalWrite(PIN_F, HIGH);
digitalWrite(PIN_G, LOW);
}
if (dato == 3) {
// Encender segmentos para mostrar el número 3
digitalWrite(PIN_A, LOW);
digitalWrite(PIN_B, LOW);
digitalWrite(PIN_C, LOW);
digitalWrite(PIN_D, LOW);
digitalWrite(PIN_E, HIGH);
digitalWrite(PIN_F, HIGH);
digitalWrite(PIN_G, LOW);
}
if (dato == 4) {
// Encender segmentos para mostrar el número 4
digitalWrite(PIN_A, HIGH);
digitalWrite(PIN_B, LOW);
digitalWrite(PIN_C, LOW);
digitalWrite(PIN_D, HIGH);
digitalWrite(PIN_E, HIGH);
digitalWrite(PIN_F, LOW);
digitalWrite(PIN_G, LOW);
}
if (dato == 5) {
// Encender segmentos para mostrar el número 5
digitalWrite(PIN_A, LOW);
digitalWrite(PIN_B, HIGH);
digitalWrite(PIN_C, LOW);
digitalWrite(PIN_D, LOW);
digitalWrite(PIN_E, HIGH);
digitalWrite(PIN_F, LOW);
digitalWrite(PIN_G, LOW);
}
}