Mittwoch, 6. Juni 2012

Arduino Codeschloss

Schaltplan Codeschloss

Steckplatine Codeschloss




int led_rot = 4;
int led_gruen = 5;
int sw1 = 2;
int sw2 = 3;
int buzzer = 8;
int x,y,code1,code2,resetTimer = 0;

void setup() {
  pinMode(led_rot, OUTPUT);
  pinMode(led_gruen, OUTPUT);
  pinMode(buzzer, OUTPUT);

  pinMode(sw1, INPUT);
  digitalWrite(sw1, HIGH);

  pinMode(sw2, INPUT);
  digitalWrite(sw2, HIGH);
  clr_Code();
}

void loop() {
  //Code 1 = 5

  if (!digitalRead(sw1)) {
    delay(50);
    if(!digitalRead(sw1)) {
      blink();
      x++;
      if (x == 5) {
        code1 = true;
      } else code1 = false;
   
      do {
      }while(!digitalRead(sw1));
    }
  }

  //Code 2 = 3

  if(!digitalRead(sw2)) {
    delay(50);
    if(!digitalRead(sw2)) {
      blink();
      y++;
      if(y == 3) {
        code2 = true;
      } else code2 = false;
   
      do{
        delay(50);
        resetTimer++;
        if(resetTimer>50) {
          toggle_Flash();
          clr_Code();
          break;
        }
      }while(!digitalRead(sw2));
      resetTimer = 0;
    }
  }

  if(code1 == true && code2 == true) {
    digitalWrite(led_gruen, HIGH);
    clr_Code();
    delay(5000);
    digitalWrite(led_gruen, LOW);
  } else {
    digitalWrite(led_gruen, LOW);
  }
}

void blink(void) {
  digitalWrite(led_rot, HIGH);
  tone(buzzer, 500, 150);
  delay(200);
  digitalWrite(led_rot, LOW);
}

void toggle_Flash(void) {
  int tog = 0;
  for(x=0;x<6;x++) {
    if(tog==0)tog=1;else tog=0;
    digitalWrite(led_rot,tog);
    tone(buzzer,500,250);
    delay(300);
  }
}

void clr_Code(void) {
  x = 0;
  y = 0;
  code1 = 0;
  code2 = 0;
  resetTimer = 0;
}

2 Kommentare:

  1. ich verstehe die methode void toggle_Flash(void) nicht. Kann mir das jemand erklären?

    AntwortenLöschen
  2. Dieser Kommentar wurde vom Autor entfernt.

    AntwortenLöschen