Projects/Pantry

From Omnia
Revision as of 16:41, 10 March 2015 by Kenneth (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
/*
  PANTRY LIGHT CONTROL
  by Kenneth Burgener (2014)
*/

int blink_led = 11;    // on board LED
int blink_counter = 0;

int relay_pin = 21;    // relay control pin
int relay_counter = 0;

int fade_led = 12;     // the pin that the fade LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 10;    // how many points to fade the LED by

int switch_pin = 20;   // pin for door input switch
int switch_state = false;  // if switch is on or off
int switch_count = 0;
int switch_val = HIGH;    // variable for input pin value
int switch_val_last = HIGH;    // variable for input pin's previous value
int switch_debounce = 0;  // variable for debounce
int switch_safety = false;
int switch_off_delay = false;

int SECONDS = 10;  // 10 * 100 ms delay
int MINUTES = 60 * SECONDS;  // 10 * 100 ms delay

void setup() {
  pinMode(blink_led, OUTPUT);

  pinMode(fade_led, OUTPUT);

  pinMode(relay_pin, OUTPUT);
  digitalWrite(relay_pin, LOW);

  pinMode(switch_pin, INPUT);
  digitalWrite(switch_pin, HIGH);  // turn on pullup resistors
}

void loop() {
  /** SWITCH **/
  /** SWITCH **/
  /** SWITCH **/

  // read switch state
  if (switch_debounce == 0) {
    switch_val_last = switch_val;
    switch_val = digitalRead(switch_pin);
    if (switch_val != switch_val_last) {
      switch_debounce = 5;
    }
    if (switch_val == LOW) {
      digitalWrite(blink_led, HIGH);
    } else {
      digitalWrite(blink_led, LOW);
    }
  } else {
    switch_debounce--;
  }


  /** RELAY **/
  /** RELAY **/
  /** RELAY **/

  // of switch state change
  if (switch_debounce != 0 && switch_val != switch_val_last) {
    if (switch_val == LOW) {  // switch on
      switch_state = true;
      switch_count = 0;
    } else {  // switch off
      switch_state = false;
      switch_safety = false;
      if (switch_safety == false) {
        switch_off_delay = true;
      }
      switch_count = 0;
    }
  }

  // switch on state and safety
  if (switch_state == true && switch_safety == false) {
    switch_count++;
    if (switch_count == 1) {
      digitalWrite(relay_pin, HIGH);
    }
    if (switch_count == 300 * SECONDS) { // 5 MINUTES WARNING
      // warning off
      digitalWrite(relay_pin, LOW);
    }
    if (switch_count == 301 * SECONDS) { // 5 MINUTE WARNING
      // warning on
      digitalWrite(relay_pin, HIGH);
    }
    if (switch_count == 330 * SECONDS) { // 5 MINUTE 30 SECOND SAFETY SHUTOFF
      // safety off
      digitalWrite(relay_pin, LOW);
      switch_state = false;
      switch_count = 0;
      switch_safety = true;
    }
  }
  // reset safety
  if (switch_safety == true && switch_val == HIGH) {  // switch off
    switch_safety = false;
    switch_count = 0;
  }

  // switch off state and delay
  if (switch_state == false && switch_off_delay == true) {
    switch_count++;
    if (switch_count == 10 * SECONDS) { // 10 SECOND WARNING
      // warning off
      digitalWrite(relay_pin, LOW);
    }
    if (switch_count == 11 * SECONDS) { // 10 SECOND WARNING
      // warning on
      digitalWrite(relay_pin, HIGH);
    }
    if (switch_count == 15 * SECONDS) { // 15 SECOND SHUTOFF
      digitalWrite(relay_pin, LOW);
      switch_count = 0;
      switch_off_delay = false;
    }
  }



  /** BLINK LED **/
  /** BLINK LED **/
  /** BLINK LED **/
/*
  blink_counter++;
  if (blink_counter >= 4 * SECONDS) {
    blink_counter = 0;
  }
  if (blink_counter == 0) {
    digitalWrite(blink_led, HIGH);
  }
  if (blink_counter == 2 * SECONDS) {
    digitalWrite(blink_led, LOW);
  }
*/

  /** FADE LED **/
  /** FADE LED **/
  /** FADE LED **/

  // set the brightness
  analogWrite(fade_led, brightness);
  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;
  // reverse the direction of the fading at the ends of the fade:
  if (brightness == 0 || brightness == 150) {
    fadeAmount = -fadeAmount ;
  }


  /** LOOP DELAY **/
  /** LOOP DELAY **/
  /** LOOP DELAY **/
 
  // wait for 100 milliseconds per cycle
  delay(100);
}


%temp%\build3678427800310146579.tmp\sketch_mar09b.cpp

#line 1 "sketch_mar09b.ino"
#include "Arduino.h"
void setup();
void loop();
#line 1