/******************************************************************************* * * Projeto 31 – Alarme com laser * http://squids.com.br/arduino * *******************************************************************************/ const int buzzerPin = 7; // Piezo no pino 8 const int ldrPin = 0; // LDR no pino analógico 0 const int ledPin = 3; // LED no pino digital 3 const int ledVerde = 8; const int ledVermelho = 10; int ldrValue = 0; // Valor lido do LDR int toneVal = 0; int toneAdjustment = 2000; float sinVal; void setup() { //Ativando o serial monitor que exibirá os valores lidos no sensor. Serial.begin(9600); //Definindo pinos digitais dos leds e buzzer como de saída. pinMode(ledPin, OUTPUT); pinMode(buzzerPin, OUTPUT); pinMode(ledVerde,OUTPUT); pinMode(ledVermelho,OUTPUT); } void loop() { ldrValue = analogRead(ldrPin); // lê o valor do LDR //Luminosidade baixa. if (ldrValue <= 800) { apagaLeds(); digitalWrite(ledVermelho,HIGH); //toca o alarme digitalWrite(ledPin, HIGH); sirene(); delay(25); // espera um pouco noTone(buzzerPin); // interrompe o tom } //Luminosidade alta. if (ldrValue > 800) { apagaLeds(); digitalWrite(ledVerde,HIGH); } //Exibindo o valor do sensor no serial monitor. Serial.print("Valor lido no sensor: "); Serial.println(ldrValue); delay(50); } //Função sirene void sirene(){ //tocar 5 ciclos for (int k=0; k<5; k++){ for (int x=0;x<180;x++){ //converte graus em radianos sinVal = (sin(x*(3.1412/180))); //agora gera uma frequencia toneVal = 2000+(int(sinVal*100)); //toca o valor no buzzer tone(7,toneVal); //atraso de 2ms e gera novo tom delay(2); } } } //Função criada para apagar todos os leds de uma vez. void apagaLeds() { digitalWrite(ledVerde,LOW); digitalWrite(ledVermelho,LOW); digitalWrite(ledPin,LOW); }