// Globale Variablen
const int ledPin1 = 13; // Pin für die LED 1
const int inputPin1 = 0; // Pin für den PIR-Sensor 1
const int ledPin2 = A0; // Pin für die LED 2
const int inputPin2 = A5; // Pin für den PIR-Sensor 2
const int ledPin3 = A1; // Pin für die LED 3
const int inputPin3 = A2; // Pin für den PIR-Sensor 3
const int buttonPin1 = 20; // Pin für Knopf grün
const int buttonPin2 = 21; // Pin für Knopf gelb
// Statusvariablen für LEDs
bool led1State = false; // Status der LED 1: false für aus, true für an
bool led2State = false; // Status der LED 2: false für aus, true für an
bool led3State = false; // Status der LED 3: false für aus, true für an
bool beerpongActive = false; // Statusvariable, ob Beerpong aktiv ist
void setup()
{
// Konfiguration der Pins
pinMode(ledPin1, OUTPUT); // LED-Pin 1 als Ausgang setzen
pinMode(inputPin1, INPUT); // Sensor-Pin 1 als Eingang setzen
pinMode(ledPin2, OUTPUT); // LED-Pin 2 als Ausgang setzen
pinMode(inputPin2, INPUT); // Sensor-Pin 2 als Eingang setzen
pinMode(ledPin3, OUTPUT); // LED-Pin 3 als Ausgang setzen
pinMode(inputPin3, INPUT); // Sensor-Pin 3 als Eingang setzen
pinMode(buttonPin1, INPUT); // Button-Pin 1 als Eingang setzen
pinMode(buttonPin2, INPUT); // Button-Pin 2 als Eingang setzen
// LEDs zu Beginn ausschalten
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}
void loop()
{
if (digitalRead(buttonPin1) == HIGH)
{
startBeerpong();
}
if (digitalRead(buttonPin2) == HIGH)
{
startHitman();
}
}
void startBeerpong()
{
if (!beerpongActive)
{
beerpongActive = true; // Beerpong aktiv setzen
// Alle LEDs einschalten
if (!led1State)
{
digitalWrite(ledPin1, HIGH);
led1State = true;
}
if (!led2State)
{
digitalWrite(ledPin2, HIGH);
led2State = true;
}
if (!led3State)
{
digitalWrite(ledPin3, HIGH);
led3State = true;
}
// Warten, bis alle LEDs aus sind
while (led1State || led2State || led3State)
{
if (digitalRead(inputPin1) == HIGH && led1State)
{
digitalWrite(ledPin1, LOW); // LED 1 ausschalten
led1State = false; // LED 1 Status auf aus setzen
}
if (digitalRead(inputPin2) == HIGH && led2State)
{
digitalWrite(ledPin2, LOW); // LED 2 ausschalten
led2State = false; // LED 2 Status auf aus setzen
}
if (digitalRead(inputPin3) == HIGH && led3State)
{
digitalWrite(ledPin3, LOW); // LED 3 ausschalten
led3State = false; // LED 3 Status auf aus setzen
}
}
}
}
void startHitman()
{
randomSeed(millis()); // Seed für den Zufallsgenerator setzen basierend auf der aktuellen Zeit
// Zufallszahl zwischen 0 und 2 generieren
int random_number = random(3); // Dies gibt 0, 1 oder 2 zurück
// LEDs initial ausschalten
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
if (random_number == 0)
{
// LED 1 einschalten
digitalWrite(ledPin1, HIGH);
// Warten, bis Bewegung erkannt wird
while (digitalRead(inputPin1) == LOW)
{
// Nichts tun
}
// LED 1 ausschalten, wenn Bewegung erkannt wird
if (digitalRead(inputPin1) == HIGH)
{
digitalWrite(ledPin1, LOW);
}
}
else if (random_number == 1)
{
// LED 2 einschalten
digitalWrite(ledPin2, HIGH);
// Warten, bis Bewegung erkannt wird
while (digitalRead(inputPin2) == LOW)
{
// Nichts tun
}
// LED 2 ausschalten, wenn Bewegung erkannt wird
if (digitalRead(inputPin2) == HIGH)
{
digitalWrite(ledPin2, LOW);
}
}
else
{
// LED 3 einschalten
digitalWrite(ledPin3, HIGH);
// Warten, bis Bewegung erkannt wird
while (digitalRead(inputPin3) == LOW)
{
// Nichts tun
}
// LED 3 ausschalten, wenn Bewegung erkannt wird
if (digitalRead(inputPin3) == HIGH)
{
digitalWrite(ledPin3, LOW);
}
}
}