Thursday, December 16, 2010

Project Code

#include <Servo.h>
#define CLOSED 11
#define ALARM 13
int but = 0;
const int analogPin = 0;
const int ledCount = 8;
int ledPins[] = {
  2,3,4,5,6,7,8,9
  };  
Servo myservo;
int val = 0;
int sensorReading = 0;
#define soundalarm 10


//FUNCTIONS


void setup(){
  for (int thisLed = 0; thisLed < ledCount; thisLed++){
    pinMode(ledPins[thisLed], OUTPUT);
  }
  pinMode(CLOSED, INPUT);
  pinMode(ALARM, INPUT);
  pinMode(soundalarm, OUTPUT);
  myservo.attach(12);
  myservo.write(val);
}


void senRead(){
  int sensorReading = analogRead(analogPin);
  if (sensorReading < 550){
    senRead();
  }
  else{
    int ledLevel = map(sensorReading, 500, 1023, 0, ledCount);
    for (int thisLed = 0; thisLed < ledCount; thisLed++){
      if (thisLed < ledLevel){
        digitalWrite(ledPins[thisLed], HIGH);
      }
      else {
        digitalWrite(ledPins[thisLed], LOW);
      }
    }
  }
  if (sensorReading >= 975){
    senRead();
  }
  delay(1000);
}


void openDoor(){
  val = 1500;
  myservo.write(val);
  delay(1000);
}


void alarm(){
  int a = digitalRead(ALARM);
  if (a == HIGH){
    delay(1000);
    alarm2();
  }
  else{
    alarm();
  }
}

void alarm2(){
  int but = digitalRead(CLOSED);
  int a = digitalRead(ALARM);
  if (a == HIGH){
      digitalWrite(soundalarm, HIGH);
      delay(5000);
      digitalWrite(soundalarm, LOW);
      alarm2();
  }
  else{
    if (but == HIGH){
      val = 0;
      myservo.write(val);
      delay(1000);
      clearleds();
    }
    else{
      alarm2();
    }
  }
}
  
void clearleds(){
  for (int thisLed = 0; thisLed < ledCount; thisLed++){
    digitalWrite(ledPins[thisLed], LOW);
  }
}
 
 
 
  //MAIN LOOP


void loop(){
  senRead();
  openDoor();
  alarm();
}

No comments:

Post a Comment