""" Um die Farben eines Regenbogens mit einem Raspberry Pi Pico und einer RGB-LED in Python darzustellen, kannst du das folgende Beispiel verwenden. Hier wird die RGB-LED nacheinander in den Regenbogenfarben (Rot, Orange, Gelb, Grün, Blau, Indigo, Violett) leuchten. Benötigte Hardware: Raspberry Pi Pico RGB-LED (gemeinsame Anode oder Kathode, je nach Verdrahtung) 3 Vorwiderstände (z. B. 220 Ohm) für die RGB-Pins Breadboard und Jumper-Kabel Verdrahtung (Beispiel für gemeinsame Kathode): R (Rot) → GP0 G (Grün) → GP1 B (Blau) → GP2 GND (gemeinsame Kathode) → GND des Pico *** Gleiche Leuchtkraft *** Lösung: Farben angleichen Um die Farben gleich hell wahrzunehmen, kannst du eine der folgenden Methoden anwenden: 1. Widerstände anpassen Verwende unterschiedliche Widerstände für jede Farbe, um den Strom durch die LED zu begrenzen und die Helligkeit anzupassen. Beispiel: Rot: 220 Ω Grün: 330 Ω (höherer Widerstand → weniger Strom → weniger Helligkeit) Blau: 220 Ω Anpassungen: Falls deine RGB-LED eine gemeinsame Anode hat, musst du die Logik der PWM-Werte umkehren (z. B. 65535 - (r * 65535 // 255)). Passe die Pins (Pin(0), Pin(1), Pin(2)) an deine Verdrahtung an. +-----------+-------------+-----------------------------------------------------+ | Pin-Nr. | GPIO-Nummer | Beschreibung | +-----------+-------------+-----------------------------------------------------+ | 1 | GP0 | Allgemeiner GPIO, ADC0 | | 2 | GP1 | Allgemeiner GPIO, ADC1 | | 3 | GND | Masse (Ground) | | 4 | GP2 | Allgemeiner GPIO, ADC2 | | 5 | GP3 | Allgemeiner GPIO, ADC3 | | 6 | GP4 | Allgemeiner GPIO | | 7 | GP5 | Allgemeiner GPIO | | 8 | GND | Masse (Ground) | | 9 | GP6 | Allgemeiner GPIO | | 10 | GP7 | Allgemeiner GPIO | | 11 | GP8 | Allgemeiner GPIO | | 12 | GP9 | Allgemeiner GPIO | | 13 | GND | Masse (Ground) | | 14 | GP10 | Allgemeiner GPIO | | 15 | GP11 | Allgemeiner GPIO | | 16 | GP12 | Allgemeiner GPIO | | 17 | 3.3V | 3.3V Spannungsversorgung | | 18 | GP13 | Allgemeiner GPIO | | 19 | GP14 | Allgemeiner GPIO | | 20 | GP15 | Allgemeiner GPIO | | 21 | GND | Masse (Ground) | | 22 | GP16 | Allgemeiner GPIO | | 23 | GP17 | Allgemeiner GPIO | | 24 | GP18 | Allgemeiner GPIO | | 25 | GND | Masse (Ground) | | 26 | GP19 | Allgemeiner GPIO | | 27 | GP20 | Allgemeiner GPIO | | 28 | GP21 | Allgemeiner GPIO | | 29 | GP22 | Allgemeiner GPIO | | 30 | RUN | Reset-Pin (niedriger Pegel setzt den RP2040 zurück) | | 31 | GND | Masse (Ground) | | 32 | GP26 | Allgemeiner GPIO, ADC0 | | 33 | GP27 | Allgemeiner GPIO, ADC1 | | 34 | GP28 | Allgemeiner GPIO, ADC2 | | 35 | GND | Masse (Ground) | | 36 | VBUS | 5V Spannungsversorgung (USB) | | 37 | VSYS | Eingangsspannung (z. B. Batterie) | | 38 | GND | Masse (Ground) | | 39 | 3.3V | 3.3V Spannungsversorgung | | 40 | 3.3V_EN | Enable-Pin für die 3.3V Spannungsversorgung | +-----------+-------------+-----------------------------------------------------+ """ from machine import Pin, PWM import time # PWM für die RGB-LED-Pins initialisieren red = PWM(Pin(0)) green = PWM(Pin(1)) blue = PWM(Pin(2)) # Frequenz für PWM setzen (z. B. 1000 Hz) red.freq(1000) green.freq(1000) blue.freq(1000) # Funktion zum Setzen der Farbe def set_color(r, g, b): red.duty_u16(r * 65535 // 255) green.duty_u16(g * 65535 // 255) blue.duty_u16(b * 65535 // 255) # Regenbogenfarben (Rot, Orange, Gelb, Grün, Blau, Indigo, Violett) """ regenbogen = [ (255, 0, 0), # Rot (255, 165, 0), # Orange (255, 255, 0), # Gelb (0, 255, 0), # Grün (0, 0, 255), # Blau (75, 0, 130), # Indigo (238, 130, 238) # Violett ] """ regenbogen = [ (255, 0, 0), # Rot (255, 80, 0), # Orange (Grünanteil reduziert) (255, 200, 0), # Gelb (Grünanteil reduziert) (100, 255, 0), # Grün (Rotanteil reduziert) (0, 50, 255), # Blau (Grünanteil reduziert) (75, 0, 130), # Indigo (180, 50, 255) # Violett (Rotanteil reduziert) ] # Durch die Regenbogenfarben zyklisch durchgehen while True: for farbe in regenbogen: set_color(*farbe) time.sleep(1) # 1 Sekunde pro Farbe