// Defina o pino do buzzer
int buzzerPin = 7;
// Defina as frequências mínima e máxima para a sirene
int minFrequency = 300; // Frequência baixa em Hz
int maxFrequency = 2000; // Frequência alta em Hz
// Duração para cada transição de frequência (em milissegundos)
int transitionDuration = 100; // Tempo para cada passo da transição
// Passo de frequência para cada iteração
int frequencyStep = 5; // Passo de frequência para cada iteração
// Configurações iniciais
void setup() {
// Configura o pino do buzzer como saída
pinMode(buzzerPin, OUTPUT);
}
// Função para gerar som de sirene oscilante
void loop() {
// Transição de agudo para grave
for (int freq = maxFrequency; freq >= minFrequency; freq -= frequencyStep) {
tone(buzzerPin, freq, transitionDuration);
delay(transitionDuration);
}
// Transição de grave para agudo
for (int freq = minFrequency; freq <= maxFrequency; freq += frequencyStep) {
tone(buzzerPin, freq, transitionDuration);
delay(transitionDuration);
}
}
/*#define buzzer 7
void setup() {
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
long long lastRead = millis();
long long alarmInterval = 300;
int i = 0;
void loop() {
int tones[] = {622, 587, 554};
if (millis() - lastRead > alarmInterval) {
lastRead = millis();
Serial.print("i");
Serial.println(i);
tone(buzzer, tones[i]);
i = = (i + 1) % (sizeof(tones)/sizeof(int));
}
}
*/