//Stops the servo void neutral(Servo servo) { servo.writeMicroseconds(1424); } //Turns servo counter-clockwise (opens) void left(Servo servo) { servo.writeMicroseconds(700); } //Turns servo clockwise (closes) void right(Servo servo) { servo.writeMicroseconds(2300); } //Detects button state as (true = pressed) or (false = not-pressed) boolean handleButton() { int button_pressed = ! digitalRead(BUTTON); return button_pressed; } //Opens drape for X milliseconds void openDrape(int time, Servo s) { left(s); delay(time); neutral(s); } //Closes drape for X milliseconds void closeDrape(int time, Servo s) { right(s); delay(time); neutral(s); } long resetAutoTimer(int input, int day) { long autoOpenTimer = 0; if (day < 5) { // do it tomorrow morning autoOpenTimer = ONE_DAY + TEN_AM; } else if (day == 5) { //skip two days autoOpenTimer = ONE_DAY + TEN_AM + TWO_DAY; } else { //skip one day autoOpenTimer = ONE_DAY + TEN_AM + ONE_DAY; } return autoOpenTimer; }