// variáveis para uso do buzzer
const byte buzzer = 12;
int bz;
bool flagArpegio; // obs: para baixo
bool flagAtivo = true;
int tipoSirene = 2;
int r = 9;
int g = 6;
int b = 5;
int tempo;
const int out[] = {r, g, b, buzzer};
const byte lenOut = 4;
void setup() {
iniciar();
}
void loop() {
sirene();
}
void iniciar()
{
Serial.begin(9600);
for (int n = 0; n < lenOut; n++)
{
pinMode(out[n], OUTPUT);
}
}
void sirene()
{
if (flagAtivo) // == true;
{
tone(buzzer, bz);
delay(1);
tempo++;
if (tipoSirene == 1)
{
if (tempo % 200 == 0)
{
digitalWrite(b, digitalRead(r));
digitalWrite(r, !digitalRead(r));
}
if (bz == 3000)
{
flagArpegio = true;
noTone(buzzer);
Serial.println(bz);
}
else if (bz == 200)
{
flagArpegio = false;
noTone(buzzer);
Serial.println(bz);
}
if (flagArpegio)
{
bz--;
}
else
{
bz++;
}
}
else if (tipoSirene == 2)
{
if (tempo % 200 == 0)
{
digitalWrite(r, HIGH);
digitalWrite(g, !digitalRead(g));
}
if (tempo % 1000 == 0)
{
Serial.println("1000ms");
bz = 466.1638;
}
else if (tempo % 500 == 0)
{
Serial.println("500ms");
bz = 622.2540;
}
}
}
else
{
noTone(buzzer);
delay(1);
tempo++;
}
}