Laser Security - Ino

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

//e-Innovators

//security alarm using arduino nano.

const int triggeredLED = 7;


const int triggeredLED2 = 8;
const int RedLED = 4;
const int GreenLED = 5;
const int inputPin = A0;
const int speakerPin = 12;
const int armButton = 6;

boolean isArmed = true;


boolean isTriggered = false;
int buttonVal = 0;
int prev_buttonVal = 0;
int reading = 0;
int threshold = 0;

//e-INNOVATORS.
const int lowrange = 2000;
const int highrange = 4000;

void setup(){

pinMode(triggeredLED, OUTPUT);
pinMode(triggeredLED2, OUTPUT);
pinMode(RedLED, OUTPUT);
pinMode(GreenLED, OUTPUT);
pinMode(armButton, INPUT);
digitalWrite(triggeredLED, HIGH);
delay(500);
digitalWrite(triggeredLED, LOW);

calibrate();
setArmedState();
}

void loop(){

reading = analogRead(inputPin);

int buttonVal = digitalRead(armButton);


if ((buttonVal == HIGH) && (prev_buttonVal == LOW)){
setArmedState();
delay(500);
}

if ((isArmed) && (reading < threshold)){


isTriggered = true;}

if (isTriggered){

for (int i = lowrange; i <= highrange; i++)


{
tone (speakerPin, i, 250);
}
for (int i = highrange; i >= lowrange; i--)
{
tone (speakerPin, i, 250);
}

digitalWrite(triggeredLED, HIGH);
delay(50);
digitalWrite(triggeredLED, LOW);
delay (50);
digitalWrite(triggeredLED2, HIGH);
delay (50);
digitalWrite(triggeredLED2, LOW);
delay (50);
}

delay(20);
}

void setArmedState(){

if (isArmed){
digitalWrite(GreenLED, HIGH);
digitalWrite(RedLED, LOW);
isTriggered = false;
isArmed = false;
} else {
digitalWrite(GreenLED, LOW);
digitalWrite(RedLED, HIGH);
tone(speakerPin, 220, 125);
delay(200);
tone(speakerPin, 196, 250);
isArmed = true;
}
}

void calibrate(){

int sample = 0;
int baseline = 0;
const int min_diff = 200;
const int sensitivity = 50;
int success_count = 0;

digitalWrite(RedLED, LOW);
digitalWrite(GreenLED, LOW);

for (int i=0; i<10; i++){


sample += analogRead(inputPin);
digitalWrite(GreenLED, HIGH);
delay (50);
digitalWrite(GreenLED, LOW);
delay (50);
}

do
{
sample = analogRead(inputPin);
if (sample > baseline + min_diff){
success_count++;
threshold += sample;

digitalWrite(GreenLED, HIGH);
delay (100);
digitalWrite(GreenLED, LOW);
delay (100);
} else {
success_count = 0;
threshold = 0;
}

} while (success_count < 3);

threshold = (threshold/3) - sensitivity;

tone(speakerPin, 196, 250);


delay(200);
tone(speakerPin, 220, 125);
}

You might also like