//Author: Danny van den Brande, arduinosensors.nl
//This is a example of what you can do with the shock sensor.
//I made a simple mailbox alert project.
//Offcourse this can be used to detect anything else that produces a shock.
int ShockSensor = 4;
int RedLed = 5;
int GreenLed = 6;
int Buzzer = 7;
int value = HIGH;
boolean Alarm = false;
unsigned long LatestKnockTime;
int TriggerTime = 25; //You can change this if you want the alarm to trigger longer.
void setup ()
{
Serial.begin(9600);
pinMode (ShockSensor, INPUT) ; //the sensor set to input
pinMode (Buzzer, OUTPUT);
pinMode (RedLed, OUTPUT);
pinMode (GreenLed, OUTPUT);
}
void loop ()
{
value = digitalRead (ShockSensor) ; // Reading value
if (value == LOW)
{
LatestKnockTime = millis(); //
if (!Alarm){
Serial.println("Shock detected");// You can add a lcd and make it print on LCD
digitalWrite (GreenLed, HIGH);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
digitalWrite (Buzzer, HIGH);
delay(1000);
digitalWrite (Buzzer, LOW);
delay(1000);
Alarm = true;
}
}
else
{
if( (millis()-LatestKnockTime) > TriggerTime && Alarm){
Serial.println("Nothing Detected");
digitalWrite (Buzzer, LOW);
Alarm = false;
}
}
}
Comments