Arduino - Projekte der 3AHET
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.

Hau den Lukas

Nach unten

Hau den Lukas Empty Hau den Lukas

Beitrag von Dylan Baumann Do März 17, 2016 10:15 am

Einfaches Hau den Lukas Spiel mit einem Arduino Mega. Der Code funktioniert einwandfrei uns ist je nach Größe des Spiels anzupassen. Im Moment funktioniert der Code nur für 3 Lichtschranken, ist aber beinahe beliebig erweiterbar.

Schaltung
Hau den Lukas Hau_de10

Code
Code:
int lichtschranke1 = 7; //pin for photocell 1
int lichtschranke2 = 6; //pin for photocell 1
int lichtschranke3 = 5; //pin for photocell 1
int LED1 = 12; //pin for LED 1
int LED2 = 11; //pin for LED 2
int LED3 = 10; //pin for LED 3
int a = 0;
int b = 0;
int c = 0;
int detectiontime = 300; //True value is detectiontime * 10 ms






void setup() {
  pinMode(lichtschranke1, INPUT);
  pinMode(lichtschranke2, INPUT);
  pinMode(lichtschranke3, INPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  a= 0;
  b= 0;
  c= 0;
  
if(digitalRead(lichtschranke1)== HIGH){
      
      digitalWrite(LED1, HIGH);
      a = 1;

      for(int dly = 0; dly <= detectiontime; dly++){
        
        if(digitalRead(lichtschranke2) == HIGH){

          digitalWrite(LED2, HIGH);
          b = 1;

          for(dly = 0; dly <= detectiontime; dly++){
            if(digitalRead(lichtschranke3) == HIGH){
              
            digitalWrite(LED3, HIGH);
            c = 1;
            
            }

            delay(10);
          }
        }

        delay(10);
        
      }
    }
if(a == 1 || b == 1 || c == 1){
  finish(a, b, c);
}

}

void finish(int a, int b, int c){
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
if(c == 1){
  for(int fin = 0; fin <= 5; fin++){

      digitalWrite(LED3, HIGH);

    delay(150);

      digitalWrite(LED3, LOW);

    delay(150);

  }
  a = 0;
  b = 0;
  c = 0;
}

if(b == 1){
  for(int fin = 0; fin <= 5; fin++){

      digitalWrite(LED2, HIGH);

    delay(150);

      digitalWrite(LED2, LOW);

    delay(150);

  }
  a = 0;
  b = 0;
  c = 0;
}

if(a == 1){
  for(int fin = 0; fin <= 5; fin++){

      digitalWrite(LED1, HIGH);

    delay(150);

      digitalWrite(LED1, LOW);

    delay(150);

  }
  a = 0;
  b = 0;
  c = 0;
}

}


Anmerkung
Im momentanen Code sind die Lichtschranken als Schließer programmiert, sie können aber ohne Probleme als Öffner einprogrammiert werden. Je nach Anzahl der LED/Lampen sind Transisitoren oder Relais zu empfehlen.

Dylan Baumann
Admin

Anzahl der Beiträge : 4
Anmeldedatum : 23.02.16
Alter : 25
Ort : 3AHET

Nach oben Nach unten

Nach oben


 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten