Wie steuere ich ein Neopixel Rundlicht mit Raspberry Pico (w)?

von | Jul 1, 2024 | Allgemein, Technik | 0 Kommentare

Schlagwörter: Raspberry Pi

Heute möchte ich euch mal zeigen wie man ein Neopixel Rundlicht mit einem Raspberry Pi (w) kontrollieren und ansteuern kann.

Für ein Kunde musste ich ein Gerät zusammenbauen das ihn mit einem Lichteffekt darüber informiert, wenn in seinem Online Shop eine neue Bestellung eingegangen ist.

Aus diesem Grund zeige ich heute wie ihr so ein rundes Neopixel mit einem Raspberry Pico kontrollieren könnt. Natürlich könnt ihr auch ein normales Raspberry Pi 4 oder 5 verwenden oder sonst ein anderes Model. Ihr müsst dann halt einfach schauen, dass ihr beim Zusammenbau den korrekten Daten-GPIO erwischt und kein Strom-Pin 😛 Das wäre ja ein wenig ungeschickt.

Hier zeige ich euch mal wie so ein Aufbau genau aussieht – hier mal mit 1 einzelnen Neopixel Ringlicht oder dann auch eines mit 2.

Natürlich kann man auch 2 Neopixel gleichzeitig ansteuern und so sieht dann der Aufbau aus

Video

Python

Wenn ihr natürlih alle andere Pins verwendet, dann müsst ihr euer Script auch anpassen. Sobald das Script steht könnt ihr es erweitern mit anderen Farben, anderer Helligkeit oder oder oder.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import neopixel
from machine import Pin
import time
import random
 
 
neo1_ws_pin = 0
neo2_ws_pin = 15
led_num = 12
 
BRIGHTNESS = 0.05  # Adjust the brightness (0.01 - 1.0)
 
 
# Liste der Farben
colors = [(255, 0, 0),   # Rot
          (0, 0, 255),   # Blau
          (0, 255, 0),   # Grün
          (255, 255, 0)  # Gelb
         ]
 
 
neoRing1 = neopixel.NeoPixel(Pin(neo1_ws_pin), led_num)
neoRing2 = neopixel.NeoPixel(Pin(neo2_ws_pin), led_num)
 
def set_brightness(color):
    r, g, b = color
    r = int(r * BRIGHTNESS)
    g = int(g * BRIGHTNESS)
    b = int(b * BRIGHTNESS)
    return (r, g, b)
 
# Function to turn off all LEDs
def turn_off():
    neoRing1.fill((0, 0, 0))  # Set all LEDs to black
    neoRing1.write()
 
    neoRing2.fill((0, 0, 0))  # Set all LEDs to black
    neoRing2.write()
 
 
def main():
    try:
        while True:
            # Turn off all LEDs
            turn_off()
 
 
            # Loop through each LED and light up one LED at a time
            for i in range(led_num):
                # Turn off all LEDs
                turn_off()
 
                random_color = random.choice(colors)
 
                # Set the color of the current LED
                neoRing1[i] = set_brightness(random_color)
                neoRing2[i] = set_brightness(random_color)
 
                # Write the colors to the LEDs
                neoRing1.write()
                neoRing2.write()
 
                # Delay before lighting up the next LED
                time.sleep(0.5)
 
 
 
    except KeyboardInterrupt:
        turn_off()  # Turn off LEDs before exiting
 
if __name__ == "__main__":
    main()

0 Kommentare

Einen Kommentar abschicken

Du kannst auf Fediverse-Profile verlinken, indem du fl:@benutzername in deinem Kommentar eingibst.

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