Skip to content

Instantly share code, notes, and snippets.

@InfamousVague
Last active October 28, 2015 23:13
Show Gist options
  • Save InfamousVague/aa3badc69933e3e096fd to your computer and use it in GitHub Desktop.
Save InfamousVague/aa3badc69933e3e096fd to your computer and use it in GitHub Desktop.
#define RELAY_ON 0
#define RELAY_OFF 1
#define Relay_1 2 // Arduino Digital I/O pin number
#define Relay_2 3
#define Relay_3 4
#define Relay_4 5
#define Relay_5 6 // Smoke
#define Relay_6 7
#define Relay_7 8
#define Relay_8 9
const int IR_Pin = 10;
int IR_State = 0;
void setup() {
//-------( Initialize Pins so relays are inactive at reset)----
digitalWrite(Relay_1, RELAY_OFF);
digitalWrite(Relay_2, RELAY_OFF);
digitalWrite(Relay_3, RELAY_OFF);
digitalWrite(Relay_4, RELAY_OFF);
digitalWrite(Relay_5, RELAY_OFF);
digitalWrite(Relay_6, RELAY_OFF);
digitalWrite(Relay_7, RELAY_OFF);
digitalWrite(Relay_8, RELAY_OFF);
//---( THEN set pins as outputs )----
pinMode(Relay_1, OUTPUT);
pinMode(Relay_2, OUTPUT);
pinMode(Relay_3, OUTPUT);
pinMode(Relay_4, OUTPUT);
pinMode(Relay_5, OUTPUT);
pinMode(Relay_6, OUTPUT);
pinMode(Relay_7, OUTPUT);
pinMode(Relay_8, OUTPUT);
pinMode(IR_Pin, INPUT);
delay(4000); //Check that all relays are inactive at Reset
}//--(end setup )---
void loop() {
Serial.begin(9600);
// Only allow us to run our open function if the coffin is open
boolean coffin_open = false;
boolean taskRunning = false;
IR_State = digitalRead(IR_Pin);
if (IR_State == HIGH) {
/* Runs this script whenever the IR thing is active.
* It is hard to tell when we want to run this without seeing how sensitive the IR sensor is,
* this might need to be changed later on
*/
// Open Coffin
// Smoke On
digitalWrite(Relay_5, RELAY_ON);
// Door Open
digitalWrite(Relay_1, RELAY_ON);
delay(3000);
digitalWrite(Relay_1, RELAY_OFF);
// Head Rise
digitalWrite(Relay_2, RELAY_ON);
delay(3500);
digitalWrite(Relay_2, RELAY_OFF);
// Close Coffin
// Smoke Off
digitalWrite(Relay_5, RELAY_OFF);
delay(6000);
// Lower Head
digitalWrite(Relay_3, RELAY_ON);
delay(3500);
digitalWrite(Relay_3, RELAY_OFF);
// Close Door
digitalWrite(Relay_4, RELAY_ON);
delay(3000);
digitalWrite(Relay_4, RELAY_OFF);
// Wait 3 seconds before open_coffin can be called again. (optional)
delay(3000);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment