Samstag, 9. Juni 2012

Lichtsensor mit Poti

Die Empfindlichkeit des LDR's kann über das Poti eingestellt werden.




int led = 13;
int ldr = 0;
int pot = 1;
int cnt = 0;
int value, schwelle = 0;


void setup() {
  pinMode(led,OUTPUT);
  value = analogRead(ldr);
}


void loop() {
  cnt++;
  
  if(cnt>1000) {
    cnt = 0;
    value = analogRead(ldr);
  }
  
  schwelle = (analogRead(pot)/10);
  
  if(value>(analogRead(ldr)+schwelle)||value<analogRead(ldr)-schwelle){
    digitalWrite(led, HIGH);
    delay(5000);
    
    digitalWrite(led,LOW);
    value = analogRead(ldr);
  }
  
  delay(10);
}

Freitag, 8. Juni 2012

Lichtsensor

Schaltplan Lichtsensor



int led = 13;

void setup() {
  digitalWrite(led, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(0);
  if(val < 400) {
    digitalWrite(led, HIGH);
    Serial.println(val);
  } else {
    digitalWrite(led, LOW);
  }
}



Mittwoch, 6. Juni 2012

Arduino Ampel

Schaltplan Ampel
Steckplatine Ampel



int led_rot = 12;
int led_gelb = 11;
int led_gruen = 10;
int cnt = 0;
int state = 1;

void setup() {
  pinMode(led_rot, OUTPUT);
  pinMode(led_gelb, OUTPUT);
  pinMode(led_gruen, OUTPUT);
}

void loop() {
  cnt++;
  if(cnt == 100) {
    cnt = 0;
    statemaschine();
  }
  
  delay(10);
}

void statemaschine() {
    switch(state) {
      case 1:
      digitalWrite(led_rot, HIGH);
      digitalWrite(led_gelb, LOW);
      digitalWrite(led_gruen, LOW);
      state++;
      break;
     
      case 2:
      digitalWrite(led_rot, HIGH);
      digitalWrite(led_gelb, HIGH);
      digitalWrite(led_gruen, LOW);
      state++;
      break;
     
      case 3:
      digitalWrite(led_rot, LOW);
      digitalWrite(led_gelb, LOW);
      digitalWrite(led_gruen, HIGH);
      state++;
      break;
    
      case 4:
      digitalWrite(led_rot, LOW);
      digitalWrite(led_gelb, HIGH);
      digitalWrite(led_gruen, LOW);
      state = 1;
      delay(100);
      break;
    }
}  




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;
}