Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Raspberry PI Pico Projekt #1 – LED Würfel

Posted on 15. Februar 20218. März 2024 by Stefan Draeger

In diesem Beitrag zum Raspberry PI Pico, möchte ich dir zeigen wie du dir einen kleinen LED-Würfel bauen kannst.

Raspberry PI Pico - LED Würfel mit Taster
Dieses Video auf YouTube ansehen.

  • Schaltung
  • Aufbau auf einer Lochrasterplatine
    • Werkzeuge
  • Programm
    • importieren der benötigten Module
    • definieren der GPIOs
    • Tupel mit Listen für die Augenzahlen am Würfel
    • zurücksetzen der LEDs
    • anzeigen von Augenzahlen
    • Tasterdruck auswerten
    • das gesamte Programm

Schaltung

Schaltung - LED Würfel am Raspberry PI Pico
Schaltung – LED Würfel am Raspberry PI Pico

Aufbau auf einer Lochrasterplatine

Das Projekt baue ich auf einer Lochrasterplatine auf. Du kannst das natürlich auch auf einer Streifenrasterplatine aufbauen jedoch musst du hier die Leiterbahnen unterbrechen und dieser Schritt entfällt bei einer Lochrasterplatine.

Für den Aufbau benötigst du folgende elektrische Bauteile:

  • sieben LEDs, 5 mm* **,
  • sieben 220 Ohm-Widerstände*,
  • einen 10 kOhm Widerstand*,
  • einen Taster für die Printmontage*,
  • zwei 20 Pin Buchsenleisten* ***,
  • eine Lochrasterplatine*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

** Die LEDs kaufe ich bei aliexpress.com im 100er-Pack für knapp 1,5 € inkl. Versandkosten. 

*** Die Buchsenleisten in 20 Pin sind recht teuer, du kannst dir auch welche in 40 Pin kaufen und diese mit einem Seitenschneider vorsichtig trennen. Jedoch gehen beim Trennen min. eine Buchse kaputt d.h. du benötigst zwei 40 Pin Buchsenleisten.

elektrische Bauteile für den LED Würfel
elektrische Bauteile für den LED Würfel

Werkzeuge

Folgende Werkzeuge habe ich verwendet:

  • 30 Watt Lötkolben*,
    • Lötkolbenständer*,
    • Hitze beständige Unterlage*,
    • Lötzinn, 1 mm*,
    • Flussmittel*
  • Seitenschneider*,
  • Entlötpumpe*,
  • Abbiegevorrichtung für Widerstände*

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Die Werkzeuge benötigst zu bestimmt auch für andere Projekte daher lohnt es sich den ein oder anderen Euro mehr zu investieren um dann zum Beispiel einen vernünftigen Lötkolben zu haben, welcher zuverlässig funktioniert!

Die Abbiegevorrichtung für Widerstände, bekommst du bei ebay.de für knapp 3,5€ zzgl. Versandkosten. Du kannst dir diese aber auch mit einem 3D Drucker selber drucken (3D Projekt auf Thingiverse.com).

3D gedruckte Abbiegevorrichtung für Widerstände
3D gedruckte Abbiegevorrichtung für Widerstände

Unter dem Abschnitt „Schaltung“ findest du auch die Belegung der LEDs und dem Taster zu GPIO Pins. 

Wie man eine (oder mehrere) LED am Raspberry PI Pico anschließt habe ich dir im Beitrag Raspberry PI Pico #2 – LEDs steuern erläutert. Und wie du einen Taster am auswertest findest du im Beitrag xyz.

Aufbau - LED Würfel mit Raspberry PI Pico
Aufbau – LED Würfel mit Raspberry PI Pico

Programm

Wie man am Raspberry PI eine LED an & aus schaltet habe ich dir bereits im Beitrag Raspberry PI Pico #2 – LEDs steuern erläutert. In unserem Programm verwenden wir 7 LEDs und zusätzlich einen Taster welcher über einen Pulldown Widerstand angeschlossen ist. Wie du einen Taster am Raspberry PI Pico anschließt und und auswertest habe ich dir im gelichnamigen Beitrag ausführlich erläutert Raspberry PI Pico #4 – Taster mit PullDown & PullUp abfragen.

importieren der benötigten Module

Wir benötigen lediglich zwei Module, zum einen „machine“ damit wir die GPIOs steuern können und das Modul „random“ damit wir eine Zufallszahl generieren können.

#wird benötigt um die GPIOs anzusteuern
from machine import Pin 
#benötigen wir um eine Zufallszahl zu generieren
import random

definieren der GPIOs

Damit wir später den Taster & die LEDs ansteuern können müssen wir uns ein paar Variablen anlegen mit „button“ & „led1“ bis „led7“. Der Taster wird als Eingangssignal definiert und die LEDs als Ausgangssignal.

#der Taster ist am GPIO 00 angeschlossen
button = Pin(0, Pin.IN)

#die LEDs sind auf dne GPIOs 01 bis 07
led1 = Pin(1, Pin.OUT)
led2 = Pin(2, Pin.OUT)
led3 = Pin(3, Pin.OUT)
led4 = Pin(4, Pin.OUT)
led5 = Pin(5, Pin.OUT)
led6 = Pin(6, Pin.OUT)
led7 = Pin(7, Pin.OUT)

Tupel mit Listen für die Augenzahlen am Würfel

Um später die Würfelaugen anzuzeigen erzeugen wir uns ein Tupel (eine Art Liste) mit den möglichen Augenzahlen. Der Vorteil ist dass, wir mit einer Schleife durch diese Liste iterieren können und so unser Code deutlich schlanker wird.

numbers = (
        [led4], #Zahl 1
        [led1, led7], #Zahl 2
        [led1, led4, led7], #Zahl 3
        [led1,led3, led5, led7], #Zahl4
        [led1, led3, led4, led5, led7], #Zahl 5
        [led1, led2, led3, led5, led6, led7]) #Zahl 6

zurücksetzen der LEDs

Bevor wir eine neue Zahl anzeigen können müssen wir erstmal alle LEDs zurücksetzen dazu dient die Funktion „resetLeds“.

In dieser Funktion setzen wir die Zustände der LEDs (value) auf 0 also LOW / AUS.

def resetLeds():
    led1.value(0)
    led2.value(0)
    led3.value(0)
    led4.value(0)
    led5.value(0)
    led6.value(0)
    led7.value(0)

anzeigen von Augenzahlen

Um die Augenzahl anzeigen zu lassen dient die Funktion „showNumber“. Dieser Funktion wird eine Liste mit GPIOs übergeben. In einer Schleife wird dann jeder GPIO aktiviert.

def showNumber(leds):
    resetLeds()
    for led in leds:
        led.value(1)

Tasterdruck auswerten

In einer Endlosschleife prüfen wir ob der Taster gedrückt wurde. Wenn dieser gedrückt wurde dann wird eine Zufallszahl zwischen 1 und 6 ermittelt. Da diese Zahl eine Gleitkommazahl ist runden wir diese. Diese ermittelte Zahl dient als Index zum zuvor definierten Tupel.

while True:
    if button.value():
        number = int(random.uniform(1,6))
        showNumber(numbers[number])

ACHTUNG: Ggf. kann unser Taster prellen, d.h. wenn wir einmal draufdrücken kann dieser beim loslassen zwei (oder sogar mehr) Signale senden. Hier müsste man mit einem kleinen Timer arbeiten , aber für den LED Würfel ist das völlig ausreichend.

das gesamte Programm

from machine import Pin
import random

button = Pin(0, Pin.IN)

led1 = Pin(1, Pin.OUT)
led2 = Pin(2, Pin.OUT)
led3 = Pin(3, Pin.OUT)
led4 = Pin(4, Pin.OUT)
led5 = Pin(5, Pin.OUT)
led6 = Pin(6, Pin.OUT)
led7 = Pin(7, Pin.OUT)

numbers = (
        [led4], #Zahl 1
        [led1, led7], #Zahl 2
        [led1, led4, led7], #Zahl 3
        [led1,led3, led5, led7], #Zahl4
        [led1, led3, led4, led5, led7], #Zahl 5
        [led1, led2, led3, led5, led6, led7]) #Zahl 6

def resetLeds():
    led1.value(0)
    led2.value(0)
    led3.value(0)
    led4.value(0)
    led5.value(0)
    led6.value(0)
    led7.value(0)

def showNumber(leds):
    resetLeds()
    for led in leds:
        led.value(1)

while True:
    if button.value():
        number = int(random.uniform(1,6))
        showNumber(numbers[number-1])
    

4 thoughts on “Raspberry PI Pico Projekt #1 – LED Würfel”

  1. Torsten Schönwitz sagt:
    19. Februar 2023 um 23:30 Uhr

    Besten Dank für die tolle Erklärung.
    Ich möchte da Programm benutzen, um von einem Soundchip am Ende zufällige Sprüche oder Geräusche abspielen zu lassen. Ich habe, ohne viel Ahnung vom programmieren zu haben, es schon hinbekommen, dass ich nun pro Tastendruck nur eine LED leuchten lassen. Mein Problem ist zum einen das Prellen und zum anderen das ansteuern aller Ausgänge während des Tastendrucks. Hast du eine Idee, wie man das Programm dahingehend modifizieren könnte?
    Ideal wäre, wenn jeweils ein Ausgang aktiviert ist während auch der Eingang aktiviert ist und nach abschalten des Eingangs alle Ausgänge deaktiviert sind.
    Jetzt, während des Schreibens fällt mir auf, dass ein Würfel gar nicht geeignet ist, da ja immer eine LED aktiv ist. Hast du trotzdem eine Idee?
    Mit freundlichem Gruß,
    Torsten.

    Antworten
    1. Stefan Draeger sagt:
      20. Februar 2023 um 15:23 Uhr

      Hi,

      schicke mir doch mal eine genaue Erläuterung deines Projektes an info@draeger-it.blog

      Gruß

      Stefan Draeger

      Antworten
  2. Kurt sagt:
    9. Oktober 2023 um 18:37 Uhr

    Dat Programm funzt so nich.

    Antworten
    1. Stefan Draeger sagt:
      11. Oktober 2023 um 12:06 Uhr

      Hi,

      ich denke du meinst das Array welches mit Index 0 beginnt und ich hier von 1 bis max. 6 zugreife.
      Hier habe ich nun den Code angepasst und den Index mit -1 reduziert.

      Gruß und Danke für den Hinweis,
      Stefan

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}