Raspberry Pi Pico: Reaktionsspiel mit zwei Tastern und LEDs

Experimentieren mit Tastern und LEDs ist ja ganz nett. Aber soll es das schon gewesen sein? Taster drücken und LED geht an. Voll langweilig. Es wird Zeit das wir etwas wirklich sinnvolles mit Tastern und LEDs machen. Ein Spiel gefällig? Du musst natürlich zu Zweit sein, sonst macht das keinen richtigen Spaß.

Na dann los. Aufgebaut und hergeschaut. Wer hat am schnellsten den Taster gedrückt, wenn die Onboard-LED angeht?

Aufbau und Bauteile

Raspberry Pi Pico: Reaktionsspiel mit zwei Tastern und LEDs

  • S1, Taster
  • S2, Taster
  • R1, Widerstand, 470 Ohm
  • R2, Widerstand, 470 Ohm
  • LED1, Leuchtdiode, rot, gelb oder grün
  • LED2, Leuchtdiode, gelb, gelb oder grün
  • Verbindungskabel

Schnell und einfach alle Bauteile zusammen bestellen

Programmcode

Im folgenden Programm werden zwei Taster und drei Leuchtdioden definiert. Die Onboard-LED soll nach einer zufälligen Zeit zwischen 5 und 10 Sekunden angehen. Wer zuerst seinen Taster drückt, dessen Leuchtdiode leuchtet und der Spieler hat gewonnen. Wessen LED leuchtet, kann das Spiel mit Drücken seines Tasters erneut starten.

# Bibliotheken laden
from machine import Pin
from time import sleep
from random import randint

# Initialisierung
led_onboard = Pin(25, Pin.OUT, value=0)
led1 = Pin(19, Pin.OUT, value=0)
led2 = Pin(12, Pin.OUT, value=0)
btn1 = Pin(16, Pin.IN, Pin.PULL_UP)
btn2 = Pin(15, Pin.IN, Pin.PULL_UP)

# Wiederholung
while True:
    # LEDs ausschalten
    led1.off()
    led2.off()
    # Blinken: gleich geht das Spiel los
    for i in range (1, 10):
        led_onboard.toggle()
        sleep(0.2)
    led_onboard.off()
    # Zufällige Zeit ermitteln und warten
    rand = randint(5, 10)
    sleep(rand)
    # Onboard-LED einschalten
    led_onboard.on()
    # Wiederholung: Wer drückt seinen Taster zuerst?
    while True:
        # Taster 1 wird zuerst gedrückt
        if btn1.value() == 0:
            led1.on()
            sleep(2)
            while True:
                if btn1.value() == 0: break
                sleep(0.1)
        # Taster 2 wird zuerst gedrückt
        if btn2.value() == 0:
            led2.on()
            sleep(2)
            while True:
                if btn2.value() == 0: break
                sleep(0.1)
        # Schleife beenden, wenn eine LED an ist
        if led1.value() == 1 or led2.value() == 1: break
        sleep(0.1)

Weitere verwandte Themen:

Elektronik-Sets für das Hardware-nahe Programmieren

Elektronik-Sets für das Hardware-nahe Programmieren

Programmieren mit dem Raspberry Pi Pico
Online-Meeting

Programmieren mit dem Raspberry Pi Pico

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

Frag Elektronik-Kompendium.de