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:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

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

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren