Sirene Policial com buzzer no arduino

Montagem


 



Exemplo de código

int buzzer = 12; //Atribui o pino digital D1 (GPIO5) à variável buzzer
int azul = 11; //Atribui o pino digital D2 (GPIO4) à variável azul
int vermelho = 10; //Atribui o pino digital D3 (GPIO0) à variável vermelho
int tempo = 100; //variável usada para definir o tempo de acionamento do buzzer
int frequencia = 0; //variável usada para armazenar a frequencia que será usada no acionamento do buzzer
unsigned long millisTarefa1 = millis(); //variável que recebe o tempo atual em milissegundos
int temp = 250; //variável usada para definir o tempo de acionamento do led


void setup() {
  //configura buzzer, azul e vermelho como saída (OUTPUT)
  pinMode(buzzer, OUTPUT);
  pinMode(azul, OUTPUT);
  pinMode(vermelho, OUTPUT);
}
//Função de acionamento dos LEDs
void led() {
  if (millis() - millisTarefa1 > temp) {//Se o resultado da subtração de millis() - millisTarefa1 for maior que temp (250 milissegundo)
    digitalWrite(azul, HIGH);//Liga o LED azul
    digitalWrite(vermelho, LOW);//Desliga o LED vermelho
  } else {//Senão
    digitalWrite(azul, LOW);//Desliga o azul
    digitalWrite(vermelho, HIGH);//Liga o LED vermelho
  }
  if ((millis() - millisTarefa1) > (2 * temp)) {//Se o resultado da subtração de millis() - millisTarefa1 for maior que 2 vezes temp (500 milissegundo)
    millisTarefa1 = millis();//Atribui a millisTarefa1 o valor de millis()
  }
}

void loop() {
  for (frequencia = 150; frequencia < 1800; frequencia += 1) { //Define frequencia igual a 150; verifica se frequencia é menor que 1800; realiza a soma frequencia = frequencia + 1
    led(); //Chama a função led
    tone(buzzer, frequencia, tempo); //Aciona o led com frequência definida pelo for e tempo igual a 100 milissegundos
    delay(1); //delay de 1 milissegundos
  }
  for (frequencia = 1800; frequencia > 150; frequencia -= 1) { //Define frequencia igual a 1800; verifica se frequencia é maior que 150; realiza a subtração frequencia = frequencia - 1
    led(); //Chama a função led
    tone(buzzer, frequencia, tempo); //Aciona o led com frequência definida pelo for e tempo igual a 100 milissegundos
    delay(1); //delay de 1 milissegundos
  }
}

Comentários

Postagens mais visitadas