#define FET 8
|
|
#define testFET 0
|
|
|
|
#define SWLIGHT 10
|
|
#define SWREED 11
|
|
|
|
#define LED 13
|
|
|
|
//Switches on Pins 10, and 11
|
|
//Switch 10, is light switch. Ground when switch is up (ON).
|
|
//Switch 11, is magnet reed switch, Ground when door is closed.
|
|
|
|
uint8_t SWLIGHTvar = 0;
|
|
uint8_t SWREEDvar = 0;
|
|
|
|
void setup() {
|
|
pinMode(FET, OUTPUT);
|
|
pinMode(SWLIGHT, INPUT);
|
|
pinMode(SWREED, INPUT);
|
|
|
|
pinMode(LED, OUTPUT);
|
|
}
|
|
|
|
void loop() {
|
|
//test the fet
|
|
/* while(1){
|
|
digitalWrite(FET, HIGH); // turn the LED on (HIGH is the voltage level)
|
|
delay(100); // wait for a second
|
|
digitalWrite(FET, LOW); // turn the LED off by making the voltage LOW
|
|
delay(1000); // wait for a second
|
|
}*/
|
|
|
|
|
|
/* OUTLINE */
|
|
//Read light switch, read magnet switch
|
|
//if light switch is 5v, do nothing, wait 3 seconds
|
|
//if light switch is gnd, continue
|
|
//if reed switch is gnd, do nothing, wait 100 ms
|
|
//if reed switch is high, continue
|
|
//ring bell, sleep for 10 seconds
|
|
|
|
|
|
|
|
SWLIGHTvar = digitalRead(SWLIGHT);
|
|
SWREEDvar = digitalRead(SWREED);
|
|
|
|
|
|
//Use onboard LED to monitor whether magnet reed is synced or not
|
|
if(SWREEDvar == 1){
|
|
digitalWrite(LED, 1); //magnet not connected to reed
|
|
}
|
|
else{
|
|
digitalWrite(LED, 0); //magnet connected
|
|
}
|
|
|
|
//trigger FET and Actuator
|
|
if(SWLIGHTvar == 0){
|
|
if(SWREEDvar == 1){
|
|
digitalWrite(FET, 1); // turn on (HIGH is the voltage level)
|
|
delay(80); // wait
|
|
digitalWrite(FET, 0); // turn off by making the voltage LOW
|
|
delay(15000); // wait for 15 seconds
|
|
}
|
|
goto breakout;
|
|
}
|
|
|
|
//if light switch is 5v, do nothing, wait 3 seconds
|
|
delay(3000);
|
|
breakout:
|
|
delay(100);
|
|
|
|
|
|
|
|
}
|