const int ledPin = 12;
const int buzzerPin = 13;
int frecuenciaInicial = 220; // Frecuencia inicial del buzzer (Hz)
int frecuenciaFinal = 1500; // Frecuencia final del buzzer (Hz)
int incrementoFrecuencia = 40; // Incremento de frecuencia (Hz)
int tiempoParpadeo = 200; // Intervalo de parpadeo del LED (milisegundos)
int tiempoBuzzer = 200; // Intervalo de cambio de frecuencia del buzzer (milisegundos)
int tiempoAnteriorParpadeo = 0;
int tiempoAnteriorBuzzer = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// Control del parpadeo del LED
int tiempoActual = millis();
if (tiempoActual - tiempoAnteriorParpadeo >= tiempoParpadeo)
{
tiempoAnteriorParpadeo = tiempoActual;
digitalWrite(ledPin, !digitalRead(ledPin)); // Invierte el estado del LED
}
// Control del sonido del buzzer
if (tiempoActual - tiempoAnteriorBuzzer >= tiempoBuzzer)
{
tiempoAnteriorBuzzer = tiempoActual;
tone(buzzerPin, frecuenciaInicial);
Serial.print("Frecuencia:"); //Mensaje por consola de temperatura peligrosa
Serial.print(frecuenciaInicial); //Mensaje por consola de temperatura peligrosa
Serial.println(" Hz"); //Mensaje por consola de temperatura peligrosa
frecuenciaInicial += incrementoFrecuencia;
delay(200);
// Restringe la frecuencia del buzzer al rango establecido
if (frecuenciaInicial > frecuenciaFinal)
{
Serial.println("Reiniciando buzzer... ");
frecuenciaInicial = 220;
noTone(buzzerPin);
digitalWrite(ledPin, LOW); // Apaga el LED
delay(3500);
}
}
}