//Decalaracion de etiquetas
#define Led_Verde 5
#define Led_Amarillo 4
#define Led_Rojo 3
#define Sirena 8
#define Rele 2
#define BatOk 12.5
#define BatCorte 12
#define BatSobreTension 14.4
//DEclaracion de variables
float Xvoltaje = 0.0;
void setup()
{
Serial.begin(9600); // Inicializar la comunicación serial
pinMode(Led_Verde, OUTPUT);
pinMode(Led_Amarillo, OUTPUT);
pinMode(Led_Rojo,OUTPUT);
pinMode(Sirena,OUTPUT);
pinMode(Rele,OUTPUT);
digitalWrite(Rele,false);
}
void loop()
{
Xvoltaje=medirTension(); //llamo a la funcion de medir tension
if ((Xvoltaje > BatOk) && (Xvoltaje < BatSobreTension))
{
Serial.println("Tension ok");
digitalWrite(Rele,true);
digitalWrite(Led_Verde,true);
}
else
{
if (Xvoltaje > BatSobreTension)
{
Serial.println("!!Sobre Tension!!");
digitalWrite(Rele,false);
//
digitalWrite(Led_Verde,true);
digitalWrite(Led_Amarillo,true);
digitalWrite(Led_Rojo,true);
delay(500);
digitalWrite(Led_Verde,false);
digitalWrite(Led_Amarillo,false);
digitalWrite(Led_Rojo,false);
delay(500);
}
else
{
Serial.println("Tension de Corte");
digitalWrite(Led_Rojo,true);
digitalWrite(Led_Amarillo,false);
digitalWrite(Led_Verde,true);
digitalWrite(Rele,false);
}
}
}
float medirTension()
{
int sensorValue = analogRead(A0); // Leer el valor del pin analógico
// Convertir el valor analógico a tensión (0-5V)
float sensorVoltaje = sensorValue * (5.0 / 1023.0);
// Ajustar la lectura según el divisor de voltaje
float voltaje = sensorVoltaje * ((10.0 + 5.0) / 5.0);
// Mostrar la tensión leída
// Serial.print("Voltage: ");
// Serial.println(voltage);
return voltaje;
delay(3000);
}