#include <TimerOne.h>
#define LED_ROJO 10 // Valvula
// Opciones de rango de temperatura
#define Pulsador A1
#define Pulsador A2
#define Pulsador A3
#define Pulsador A4
int t_deseada = 0;
int t_espera = 20000; // 20 segundos para seleccionar temperatura
int t_salida = 7000; // 7 segundos para dispensar café
int t_inicio = 0;
// Pines para los segmentos A-G del display de 7 segmentos
#define PIN_A 1
#define PIN_B 2
#define PIN_C 3
#define PIN_D 4
#define PIN_E 5
#define PIN_F 6
#define PIN_G 7
volatile int B = 0; // Variable para el número a mostrar
int A = 0;
void setup() {
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
}
void loop(){
if (A == 1) {
A = 0;
if (analogRead(PULSADOR1) > 500) t_deseada = 60;
}
}
// 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);
}
}