You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
1.7 KiB

#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);
}