kk logo

 Auf dieser Seite findest du einige Arduino Spiele mit LEDs und Tastern. Diese Spiele können dir helfen mit dem Arduino und seiner Programmierung einfach mal anzufangen und erste Erfahrungen beim Programmieren zu sammeln. Die Seite wird immer mal wieder ergänzt und am Ende findest die schon Ideen von mir die aber noch nicht auf dem Breadborad verfügbar sind. 

Bombe entschärfen

Die 3 Schalter müssen am besten durch drei Drähte ersetzt werden. Nur wenn man die drei Drähte in der richtigen Reihenfolge entfernt (hier die 3 Schalter, in der richtigen Reihenfolge schaltet) ist die Bombe entschärft. Wer findet die Regel heraus nach der die Bombe entschärft werden muss? Hier gilt das alte Sprichwort, Versuch macht kluch :-).... Wird ein falsche Reihenfolge gewählt, gibt der Summer einen Ton von sich. Während des Spieles blinkt die rote LED, ist die Bombe entschärft, geh die rote LED aus und die grüne LED leuchtet dauerhaft. Video vom Spiel https://www.youtube.com/watch?v=_oO6vman4MM 

arduino led Spiel Bombe entschärfen

Arduino Code

int folge = 0;
int blink = 0;
long zeit = 0L;
void setup() {
pinMode(2, INPUT);
pinMode(4, INPUT);
pinMode(6, INPUT);
pinMode(13, OUTPUT);
folge = 0;
blink = 0;}void loop() {
zeit = millis();
while(zeit + 300L >= millis()) {
if (( blink == 1 )) {
analogWrite(11 , 200);
}
if (( blink == 2 )) {
analogWrite(11 , 0);
}
if (( blink == 3 )) {
blink = 0;
}
if (( folge == 0 )) {
if (!( digitalRead(2) )) {folge = 1;
}
if (( !( digitalRead(4) ) || !( digitalRead(6) ) )) {
digitalWrite( 13 , HIGH );
delay( 1100 );
digitalWrite( 13 , LOW );
folge = 0;
}
}
if (( folge == 1 )) {
if (!( digitalRead(4) )) {folge = 2;
}
if (( digitalRead(2) || !( digitalRead(6) ) )) {
digitalWrite( 13 , HIGH );
delay( 1100 );
digitalWrite( 13 , LOW );
folge = 0;
}
}
if (( folge == 2 )) {
if (!( digitalRead(6) )) {folge = 3;
}
if (( digitalRead(2) || digitalRead(4) )) {
digitalWrite( 13 , HIGH );
delay( 1100 );
digitalWrite( 13 , LOW );
folge = 0;
}
}
while ( ( folge == 3 ) ) {
analogWrite(10 , 200);
analogWrite(11 , 0);
}
}
blink = ( blink + 1 );
}

Kopf oder Zahl 

Früher hat man eine Münze in die Luft geworfen und wieder aufgefangen so hatte man schnell eine Entscheidung. Ob das dann immer die besten Entscheidung war, wage ich zwar zu bezweifeln aber man hatte eine Entscheidung. Anstatt Kopf und Zahl gibt es hier zwei LEDs, eine rote und blaue LED, die über einen Zufallsgenerator eingeschaltet werden. Video vom Spiel: https://www.youtube.com/watch?v=gNtdE3ZRQpA

arduino spiel kopf oder zahl

Arduino Code 

int zufall = 0;void setup() {
pinMode(2, INPUT);
}
void loop() {
if (digitalRead(2)) {
zufall = random( 1 , 3 );
analogWrite(11 , 0);
analogWrite(10 , 0);
delay( 700 );
if (( zufall == 1 )) {
analogWrite(10 , 160);
}
if (( zufall == 2 )) {
analogWrite(11 , 160);
}
}
}

Spielautomat 

Das Spiel ist auch als Einarmiger Bandit bekannt, Ziel ist es das alle 4 LEDs leuchten. Dabei blinkt die erste LED, der Taster muss gedrückt werden, wenn die LED gerade leuchtet. Ist dies erledigt, blinkt die nächste LED und der Taster musserneut dann gedrückt werden wenn die zweite LED leuchtet. Das Spiel ist gewonnen wenn alle 4 LEDs leuchten. Über den Reset Taster des Arduino beginnt das von neuem.  Video vom Spiel: https://www.youtube.com/watch?v=eqBSfSaeLKY

arduino spiel Einarmiger Bandit

Arduino Code 

int blink = 0;
int pinout = 6;
long Zeit = 0L;void setup() {
pinMode(2, INPUT);
blink = 0;pinout = 6;}void loop() {
Zeit = millis();
while(Zeit + 200L >= millis()) {
if (( blink == 1 )) {analogWrite(pinout , 0);
}
if (( blink == 2 )) {analogWrite(pinout , 160);
}
if (( blink == 3 )) {blink = 0;
}
if (digitalRead(2)) {if (( ( blink == 2 ) || ( blink == 0 ) )) {delay( 1000 );
if (( pinout == 11 )) {pinout = 13;
}
if (( pinout == 10 )) {pinout = 11;
}
if (( pinout == 9 )) {pinout = 10;
}
if (( pinout == 6 )) {pinout = 9;
}
}
if (( blink == 1 )) {analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 0);
analogWrite(11 , 0);
delay( 1000 );
pinout = 6;
}
}
}
blink = ( blink + 1 );
} 

  

Konzentrationsspiel / Reaktionsspiel

Mehrere, keine oder auch alle, der vier LEDs leuchten zufällig. Nur wenn die beiden äußeren LEDs leuchten muss der Taster gedrückt werden. Vergisst der Spieler den Taster zu drücke wenn die beiden äußeren LEDs leuchten hat er das Spiel verloren. Wurde richtig gedrückt leuchten die blaue LED und die beiden äußern LEDs blinken. Wurde falsch gedrückt, leuchtet die blaue LED und die beiden mittleren LEDs blinken. Video von dem Spiel: https://www.youtube.com/watch?v=JwL3o3RjNFY

Arduino Konzentrationsspiel Reaktionsspiel mit LED und Taster 

Arduino Code:

int zeit1 = 0;
bool jetzt = false;
bool geschafft = false;
long zeit2 = 0L;
int zufall1 = 0;
int zufall2 = 0;
int zufall3 = 0;
int zufall4 = 0;
int punkte = 0;
void setup() {
pinMode(2, INPUT);
zeit1 = 0;
jetzt = false;geschafft = false;}void loop() {
zeit2 = millis();
while(zeit2 + 500L >= millis()) {
if (( zeit1 == 1 )) {
zufall1 = map ( random( 100 ) , 0 , 100 , 0 , 2 ) ;
zufall2 = map ( random( 300 ) , 0 , 300 , 0 , 2 ) ;
zufall3 = map ( random( 700 ) , 0 , 700 , 0 , 2 ) ;
zufall4 = map ( random( 900 ) , 0 , 900 , 0 , 2 ) ;
if (( zufall1 == 1 )) {
analogWrite(6 , 200);
}
if (( zufall2 == 1 )) {
analogWrite(9 , 200);
}
if (( zufall3 == 1 )) {
analogWrite(10 , 200);
}
if (( zufall4 == 1 )) {
analogWrite(11 , 200);
}
zeit1 = 2;
}
if (( ( ( zufall1 == 1 ) && ( zufall4 == 1 ) ) && ( ( zufall2 == 0 ) && ( zufall3 == 0 ) ) )) {
jetzt = true;
if (digitalRead(2)) {
geschafft = true;
punkte = ( punkte + 1 );
}
}
if (( zeit1 == 3 )) {
if (( jetzt == true )) {if (( geschafft == true )) {analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 0);
analogWrite(11 , 0);
analogWrite(3 , 200);
for (int i = 0; i < 5; i++) {
analogWrite(6 , 200);
analogWrite(11 , 200);
delay( 300 );
analogWrite(6 , 0);
analogWrite(11 , 0);
delay( 300 );
}
}
else {
analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 0);
analogWrite(11 , 0);
analogWrite(3 , 200);
for (int i = 0; i < 5; i++) {
analogWrite(9 , 200);
analogWrite(10 , 200);
delay( 300 );
analogWrite(9 , 0);
analogWrite(10 , 0);
delay( 300 );
}
}
analogWrite(3 , 0);
zeit1 = 0;
jetzt = false;
geschafft = false;
delay( 1700 );
}
zeit1 = 0;
analogWrite(6 , 0);
analogWrite(9 , 0);
analogWrite(10 , 0);
analogWrite(11 , 0);
}
}
zeit1 = ( zeit1 + 1 );
}

Hau den Lukas

Je nachdem wie lange der Taster gedrückt wurde leuchten die LEDs der Reihe nach auf, wer es schafft dass alle neun LEDs an sind hat gewonnen. Wurde zu lange gedrückt gehen alle LEDs wieder aus und der Spieler hat verloren. Deshalb lieber rechtzeitig loslassen. Leuchten auch nur drei LEDs ist immer noch besser als keine :-).... Video vom Spiel: https://www.youtube.com/watch?v=yyf8qrVLDVo 

arduino hau den lukas spiel mit 9 led

Arduino Code  

bool spiel = false;
int zeit = 0;
int zeit2 = 1;
int led = 12;
long zeit1 = 0L;
void setup() {
pinMode(12, OUTPUT);
pinMode(2, INPUT);
pinMode(led, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
spiel = false;
zeit = 0;zeit2 = 1;led = 12;}void loop() {
zeit1 = millis();
while(zeit1 + 200L >= millis()) {
if (( zeit2 == 1 )) {
digitalWrite( 12 , HIGH );
}
if (( zeit2 == 2 )) {
digitalWrite( 12 , LOW );
}
if (( zeit2 == 5 )) {
zeit2 = 1;
}
while ( digitalRead(2) ) {
zeit = ( zeit + 1 );
spiel = true;
digitalWrite( 12 , HIGH );
delay( 500 );
if (( zeit > 9 )) {
zeit = 10;
}
}
while ( ( spiel == true ) ) {
for (int i = 0; i < zeit; i++) {
digitalWrite( led , HIGH );
led = ( led - 1 );
delay( 500 );
}
if (( zeit > 9 )) {
digitalWrite( 12 , LOW );
digitalWrite( 11 , LOW );
digitalWrite( 10 , LOW );
digitalWrite( 9 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 7 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 5 , LOW );
digitalWrite( 4 , LOW );
delay( 1000 );
spiel = false;
zeit = 0;
led = 12;
}
while ( ( spiel == true ) ) {
while ( digitalRead(2) ) {
spiel = false;
zeit = 0;
led = 12;
digitalWrite( 12 , LOW );
digitalWrite( 11 , LOW );
digitalWrite( 10 , LOW );
digitalWrite( 9 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 7 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 5 , LOW );
digitalWrite( 4 , LOW );
delay( 700 );
}
}
}
}
zeit2 = ( zeit2 + 1 );
}
 

Arduino Würfel 

Ein Spielwürfel, umgangssprachlich einfach Würfel (von althochdeutsch wurfil: verwandt mit Wurf und werfen), ist ein Gegenstand, der nach einem Wurf auf einer waagerechten Ebene eine von mehreren unterscheidbaren stabilen Ruhelagen einnimmt und in vielen Spielen zum Erzeugen eines zufälligen Symbols (oft einer Zufallszahl) dient. Die mit Abstand meistverbreiteten Spielwürfel sind jene mit den Ziffern 1 bis 6 oder entsprechend vielen Punkten, den Augen, beschriftete Kuben oder Hexaeder. In unsere digitalen Welt gibt es natürlich auch eine digitale Version des Würfels. 

arduino einfach würfel programmieren mit zufallszahl

Arduino Code

int zufall = 0;void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
if (!( digitalRead(2) )) {
digitalWrite( 3 , LOW );
digitalWrite( 4 , LOW );
digitalWrite( 5 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 9 , LOW );
delay( 700 );
zufall = random( 5 );
if (( zufall == 0 )) {
digitalWrite( 5 , HIGH );
}
if (( zufall == 1 )) {
digitalWrite( 4 , HIGH );
digitalWrite( 8 , HIGH );
}
if (( zufall == 2 )) {
digitalWrite( 4 , HIGH );
digitalWrite( 5 , HIGH );
digitalWrite( 8 , HIGH );
}
if (( zufall == 3 )) {
digitalWrite( 3 , HIGH );
digitalWrite( 4 , HIGH );
digitalWrite( 8 , HIGH );
digitalWrite( 9 , HIGH );
}
if (( zufall == 4 )) {
digitalWrite( 3 , HIGH );
digitalWrite( 4 , HIGH );
digitalWrite( 5 , HIGH );
digitalWrite( 8 , HIGH );
digitalWrite( 9 , HIGH );
}
if (( zufall == 5 )) {
digitalWrite( 3 , HIGH );
digitalWrite( 4 , HIGH );
digitalWrite( 7 , HIGH );
digitalWrite( 6 , HIGH );
digitalWrite( 8 , HIGH );
digitalWrite( 9 , HIGH );
}
delay( 1000 );
}
}

Tennis Spiel für eine oder zwei Personen

Die LEDs blinken von rechts nach links und immer wenn die LED ganz außen ist muss der Spieler den Taster drücken. Dabei werden die LEDs immer schneller. Das Spiel geht so lange bis ein Spieler zu spät, zu früh oder einfach falsch gedrückt hat. Video von dem Spiel: https://www.youtube.com/watch?v=YGBfXPzKHj8

arduino led tennis spiel für 2 personen

Arduino Code

bool richtung = true;
int zeit3 = 500;
int zeit2 = 6;
bool spieler1 = false;
bool spieler2 = false;
long zeit1 = 0L;
int zeit4 = 0;
void Unterprogramm1();
void Unterprogramm2();void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(2, INPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(3, INPUT);
richtung = true;
zeit3 = 500;zeit2 = 6;spieler1 = false;spieler2 = false;}void loop() {
zeit1 = millis();
while(zeit1 + zeit3 >= millis()) {
if (( zeit2 == 1 )) {
digitalWrite( 4 , HIGH );
digitalWrite( 5 , LOW );
if (digitalRead(2)) {
spieler1 = true;
}
richtung = true;
spieler2 = false;
}
if (( zeit2 == 2 )) {
if (( ( spieler1 == false ) && ( richtung == true ) )) {while ( ( 1 == 1 ) ) {
}
}
digitalWrite( 4 , LOW );
digitalWrite( 5 , HIGH );
digitalWrite( 6 , LOW );
}
if (( zeit2 == 3 )) {
digitalWrite( 5 , LOW );
digitalWrite( 6 , HIGH );
digitalWrite( 7 , LOW );
Unterprogramm1();
Unterprogramm2();
}
if (( zeit2 == 4 )) {
digitalWrite( 6 , LOW );
digitalWrite( 7 , HIGH );
digitalWrite( 8 , LOW );
Unterprogramm1();
Unterprogramm2();
}
if (( zeit2 == 5 )) {
digitalWrite( 7 , LOW );
digitalWrite( 8 , HIGH );
digitalWrite( 9 , LOW );
Unterprogramm1();
Unterprogramm2();
}
if (( zeit2 == 6 )) {
digitalWrite( 8 , LOW );
digitalWrite( 9 , HIGH );
digitalWrite( 10 , LOW );
Unterprogramm1();
Unterprogramm2();
}
if (( zeit2 == 7 )) {
digitalWrite( 9 , LOW );
digitalWrite( 10 , HIGH );
digitalWrite( 11 , LOW );
Unterprogramm1();
Unterprogramm2();
}
if (( zeit2 == 8 )) {
if (( ( spieler2 == false ) && ( richtung == false ) )) {while ( ( 1 == 1 ) ) {
}
}
digitalWrite( 10 , LOW );
digitalWrite( 11 , HIGH );
digitalWrite( 12 , LOW );
}
if (( zeit2 == 9 )) {
digitalWrite( 11 , LOW );
digitalWrite( 12 , HIGH );
if (digitalRead(3)) {
spieler2 = true;
}
richtung = false;
spieler1 = false;
}
}
if (( richtung == true )) {
zeit2 = ( zeit2 + 1 );
}
if (( richtung == false )) {
zeit2 = ( zeit2 - 1 );
}
zeit4 = ( zeit4 + 1 );
if (( zeit4 == 5 )) {
zeit4 = 0;
if (( zeit3 > 300 )) {
zeit3 = ( zeit3 - 5 );
}
else {
zeit3 = ( zeit3 - 1 );
}
}
}
//Spieler1
void Unterprogramm1() {
if (digitalRead(2)) {
digitalWrite( 4 , HIGH );
digitalWrite( 5 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 9 , LOW );
digitalWrite( 10 , LOW );
digitalWrite( 11 , LOW );
digitalWrite( 12 , LOW );
while ( ( 1 == 1 ) ) {
}
}
}
//Spieler 2
void Unterprogramm2() {
if (digitalRead(3)) {
digitalWrite( 4 , LOW );
digitalWrite( 5 , LOW );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW );
digitalWrite( 8 , LOW );
digitalWrite( 9 , LOW );
digitalWrite( 10 , LOW );
digitalWrite( 11 , LOW );
digitalWrite( 12 , HIGH );
while ( ( 1 == 1 ) ) {
}
}
}

Quizz Buzzer 

Wer zuerst auf den Taster drückt dessen LED leuchtet und der andere hat keine Chance mehr. So ist immer klar wer zuerst gedrückt hat. Nun muss der Spieler dessen LED leuchtet aber auch die Frage beantworten, ein herausreden gibt es nicht mehr.  Video vom Spiel: https://www.youtube.com/watch?v=BP0jm5Jrxr4

arduino quizze buzzer code und breadboard

 

Arduino Code

bool sieg = false;void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
sieg = false;
analogWrite(10 , 180);analogWrite(11 , 180);}void loop() {
if (!( digitalRead(2) )) {
analogWrite(11 , 0);
sieg = true;
while ( ( sieg == true ) ) {
if (!( digitalRead(4) )) {
sieg = false;
delay( 1000 );
analogWrite(10 , 180);
analogWrite(11 , 180);
}
}
}
if (!( digitalRead(3) )) {
analogWrite(10 , 0);
sieg = true;
while ( ( sieg == true ) ) {
if (!( digitalRead(4) )) {
sieg = false;
delay( 1000 );
analogWrite(10 , 180);
analogWrite(11 , 180);
}
}
}
}

 

 

by grace

By grace alone somehow I standWhere even angels fear to treadInvited by redeeming loveBefore the throne of God aboveHe pulls me close with nail-scarred handsInto His everlasting arms

Ronnie

schwäbischer tüftler und bastler, kraftsportler, 41 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee