Welcher Taster (Buzzer) zuerst gedrückt wird, dessen Lampe leuchtet und bleibt auch an, egal wie oft die anderen noch auf ihren Buzzer drücken. Die Anzeige lügt nicht. Sie zeigt eindeutig wer schneller war :-). So gibt es keinen Streit mehr darüber, welche Gruppe/ Person sich zuerst gemeldet hat. 

Wer den Taster drückt, kann sich aber auch nicht mehr rausreden. Die Anzeige lässt sich nur vom Spielleiter zurückstellen, wer gedrückt hat muss auch antworten.

spiel buzzer 2 personen led selber bauen

Die Schaltung dazu ist recht einfach, wie ihr auf dem Breadbord, das mit Fritzing erstellt wurde, sehen könnt. Wird einer der beiden Taster links oder rechts vom Attiny 45 gedrückt, erlischt das grüne Licht der Bi- Color LEDs und eine LED beginnt rot zu leuchten. Nun weiß man ganz genau, wer zuerst auf den Taster gedrückt hat. Über den dritten Taster beginnt das Spiel von vorne. 

Buzzer mit 2 LED und Summer

Wird der Taster gedrückt geht eine der beiden LEDs an und bleibt so lange an bis der Reset Taster gedrückt wurde.

attiny buzzer spiel wer hat zuerst gedreuckt

Widerstände:

LED = 150 Ohm, Reset Taster pull down = 47 K.Ohm, Spieler Taster pull down = 1 K. Ohm.

 

Code:

int spiel = 0 ;

void setup()
{
pinMode( 3 , INPUT);
pinMode( 4 , INPUT);
pinMode( 0 , OUTPUT);
pinMode( 1 , OUTPUT);
pinMode( 2 , OUTPUT);
spiel = 0 ;

digitalWrite( 0 , LOW );

digitalWrite( 1 , LOW );

}

void loop()
{
if (digitalRead(3))
{
spiel = 1 ;
digitalWrite( 0 , LOW );
digitalWrite( 1 , HIGH );
digitalWrite( 2 , HIGH );
delay( 1000 );
digitalWrite( 2 , LOW );
}
if (digitalRead(4))
{
spiel = 1 ;
digitalWrite( 0 , HIGH );
digitalWrite( 1 , LOW );
digitalWrite( 2 , HIGH );
delay( 1000 );
digitalWrite( 2 , LOW );
}
while ( ( ( spiel ) == ( 1 ) ) )
{
delay( 5000 );
}

}

 

Buzzer mit RGB LED

An den Attiny 45 werden die beiden Bi Color LEDs angeschlossen. Die rote Farbe bekommt je einen eigenen PIN. Da ich beim Attiny nur 5 PINs habe, bekommen die grünen einen gemeinsamen PIN und gehen beim Drücken des Tasters dann auch zusammen aus. Der Reset erfolgt über den Reset PIN des Attiny 45, der so schnell reagiert, dass die beiden grünen LEDs nach dem loslassen des Reset Tasters sofort wieder leuchten. 

attiny-45-buzzer-projekt-spielleiter

Die Spannungsversorgung kommt von einer 9 Volt Block Batterie, die über einen Festspannungsregler auf konstante 5 Volt gebracht wird. 

Eine Anleitung zum programmieren der Attinys findete ihr hier auf meiner Seite.

Widerstände:

LED = 100 Ohm, Reset Taster pull down = 47 K.Ohm, Spieler Taster pull down = 1 K. Ohm.

Programm für den Spiele Buzzer:

Die beiden Taster werden permanent über den Loop abgefragt. Durch betätigen der Taster wird PIN 3 oder 4 HIGH. Dann wird PIN 2 oder 1 auf HIGH geschaltet und eine der beiden roten LEDs leuchtet, zusätzlich wird PIN 0 LOW geschaltet und die grüne geht aus. 

 

// www.kreativekiste.de

// Spielleiter Buzzer 

void setup()
{
pinMode( 3, INPUT);
pinMode( 4, INPUT);
pinMode( 0 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 1 , OUTPUT);
}
void loop()
{
digitalWrite( 0 , HIGH );
if (digitalRead(4))
{
digitalWrite( 2 , HIGH );
digitalWrite( 0 , LOW );
delay( 9999999 );
}
if (digitalRead(3))
{
digitalWrite( 1 , HIGH );
digitalWrite( 0 , LOW );
delay( 9999999 );
}
}

Mit diesem Code kann die Schaltung nur vom Spielleiter zurückgesetzt werden, da der LOOP über die delay Zeit für 9999999 Millisekunden angehalten wird, könnte man auch schöner schreiben, reicht aber völlig aus, und da sich die Schaltung erst nach 10000 Sekunden oder 166 Minuten zurücksetzen würde. Vor allem aber kann der so geschrieben Code ganz einfach verändert werden, sodass sich die Schaltung von selbst resetet. Wird statt der delay Zeit von 9999999, nur eine delay Zeit von 50000 eingestellt, hat die Gruppe oder Person, die gedrückt hat, nur 50 Sekunden Zeit, die Frage zu beantworten. Dann darf die andere Gruppe versuchen die Frage zu beantworten. 

Die Schaltung lässt sich mit beliebig vielen LEDs und Tastern erweitern, solange ihr genügend PINs habt oder Schieberegister verwendet. Hier noch mal die Schaltung auf einem Arduino UNO Board. Um den Code nicht noch mal neu zu schreiben, hier auch der Reset über den Reset des Arduino.  

 

arduino-buzzer-projekt-spiel

 

Hier noch ein Code, bei dem die LEDs vor der Anzeige des Ergebnisses kurz hin- und herblinken. So wird es etwas spannender.

// www.kreativekiste.de

// Buzzer für Spielleiter mit blink

int _ABVAR_1_a;

void Unterprogramm();

void setup()
{
pinMode( 3, INPUT);
pinMode( 4, INPUT);
pinMode( 0 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 1 , OUTPUT);
}
void loop()
{
digitalWrite( 0 , HIGH );
if (digitalRead(4))
{
Unterprogramm();
digitalWrite( 2 , HIGH );
digitalWrite( 0 , LOW );
delay( 9999999 );
}
if (digitalRead(3))
{
Unterprogramm();
digitalWrite( 1 , HIGH );
digitalWrite( 0 , LOW );
delay( 9999999 );
}
}
void Unterprogramm()
{
digitalWrite( 1 , HIGH );
digitalWrite( 2 , HIGH );
delay( 500 );
digitalWrite( 1 , LOW );
digitalWrite( 2 , LOW );
delay( 500 );
for (_ABVAR_1_a=1; _ABVAR_1_a<= ( 5 ); ++_ABVAR_1_a )
{
digitalWrite( 1 , HIGH );
delay( 150 );
digitalWrite( 1 , LOW );
delay( 150 );
digitalWrite( 2 , HIGH );
delay( 150 );
digitalWrite( 2 , LOW );
delay( 150 );
}
}

 

Wenn ein in Eagle erstellter Schaltplan lieber ist, hier ist einer. Schaltplan Buzzer für 2 Spieler.

Buzzer-mitAttiny-45-schaltung

 

 Spiele Buzzer mit LCD Display und Ardublock

 Ich habe als Hardware das SEEED grove System verwendet. Die Verdrahtung von GND und VCC habe ich jeweils ignoriert. Durch das GROVE spare ich mir die Pulldown und Vorwiderstände auf dem Breadborad. Die Taster für die Spieler sind an PIN 2-3, der Reset ist an PIN4. Die LEDs und der Buzzer für die Spieler sind an PINs 8-7-6. Das Grove Display ist an den IC2 Bus angeschlossen.

game buzzer arduino projekt for beginner

Das LCD Display kann natürlich auch einfach weg gelassen werden.

0 buzzer spiel arduino anfaenger grove starter kid

Die Module des Grove System sind in den passenden Blöcken sehr gut aufgehoben. So verrutscht nichts und es kann gut gespielt werden.

buzzer game grove seeed starter kit

 Die Software des Spiele Buzzers 

Die Software ist in drei Teile gegliedert. 

  • SETUP
  • LOOP
    • Spieler --> eins
    • Spieler --> zwei

 Im SETUP Teil mache ich nicht sehr viel. Es wird lediglich der Text für das Display angezeigt. Nach dem anzeigen des "Buzzer Spiel" wechselt die Farbe auf grün und der Text "bereit" erscheint. Mehr braucht es gar nicht.

1 buzzer spiel ardublock projekte

 Im LOOP Teil für den ersten Spieler geschieht schon wesentlich mehr. 

Zuerst wird der Taster an PIN zwei über den "falls" Block abgefragt.
Ist dieser HIGH:

  1. wird die LED von Spieler eins angeschaltet
  2. wird die "Char" Variable auf "A" gesetzt
  3. wird im LCD Display angezeigt wer gedrückt hat und über den Pfeil in die Richtung des "drückers" gezeigt
  4. wird ein Ton für 1000ms abgespielt

Als nächstes kommt ein "solange" Block. Da die Bedingung "CHAR = A" erfüllt ist wiederholt sich dieser Block solange bis "Char" nicht mehr A ist. Während "Char" noch "A" ist, wird nur der Taster an PIN abgefragt. Das ist der Reset Taster. Ist dieser HIGH:

  1. wird die LED die leuchtet ausgeschaltet
  2. wird der Text auf dem Display zurück gesetzt
  3. wird ein kurzer Ton abgespielt

Das Spiel ist bereit für eine neue Runde.

2 buzzer spiel ardublock projekte

Im LOOP Teil für den zweiten Spieler passiert genau das gleiche. Nur eben mit dem Taster, der LED und der Variablen für den zweiten Spieler. Auch hier ist das Spiel nach dem drücken des Reset Tasters bereit für eine neue Runde.

3 buzzer spiel ardublock projekte


Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok