Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

3.3 WS2812 RGB-Strip

WS2812 ist eine intelligente LED-Lichtquelle, bei der die Steuerschaltung und der RGB-Chip in einem 5050-Komponentenpaket integriert sind. Sie enthält einen intelligenten digitalen Port-Datenlatch und eine Signalformungsverstärkungs-Schaltung. Darüber hinaus verfügt sie über einen präzisen internen Oszillator und einen programmierbaren konstanten Stromsteuerungsteil, der effektiv die hohe Konsistenz der Lichtfarbe jedes Pixels sicherstellt.

Das Datenübertragungsprotokoll verwendet den einzelnen NZR-Kommunikationsmodus. Nach dem Einschalten des Pixels erhält der DIN-Port Daten vom Controller, das erste Pixel sammelt die anfänglichen 24-Bit-Daten und sendet sie an den internen Datenlatch. Die restlichen Daten werden von der internen Signalformungsverstärkungs-Schaltung umgeformt und über den DO-Port an das nächste kaskadierte Pixel gesendet. Nach der Übertragung für jedes Pixel reduziert sich das Signal um 24 Bit. Das Pixel verwendet die Auto-Reshaping-Transmit-Technologie, sodass die Anzahl der kaskadierten Pixel nicht durch die Signalübertragung begrenzt ist, sondern nur von der Geschwindigkeit der Signalübertragung abhängt.

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Bezeichnung

ARTIKEL IN DIESEM KIT

KAUF-LINK

Kepler-Kit

450+

Kepler Ultimate Kit

Sie können die Komponenten auch einzeln über die folgenden Links kaufen.

SN

KOMPONENTENBESCHREIBUNG

ANZAHL

KAUF-LINK

1

Den Pico W kennenlernen

1

KAUFEN

2

Micro-USB-Kabel

1

3

Steckbrett

1

KAUFEN

4

Jumperkabel

Mehrere

KAUFEN

5

WS2812 RGB 8-LED-Streifen

1

KAUFEN

Schaltplan

sch_ws2812

Verdrahtung

wiring_ws2812

Warnung

Achten Sie besonders auf den Strombedarf.

Obwohl der LED-Strip mit einer beliebigen Anzahl von LEDs im Pico W verwendet werden kann, ist die Leistung seines VBUS-Pins begrenzt. Hier werden wir acht LEDs verwenden, die sicher sind. Wenn Sie jedoch mehr LEDs verwenden möchten, benötigen Sie eine separate Stromversorgung.

Code

Bemerkung

  • Sie können die Datei 3.3_rgb_led_strip.ino im Verzeichnis kepler-kit-main/arduino/3.3_rgb_led_strip öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Vergessen Sie nicht, das Board (Raspberry Pi Pico) und den richtigen Port auszuwählen, bevor Sie auf die Schaltfläche Hochladen klicken.

  • Die Bibliothek Adafruit_NeoPixel wird hier verwendet. Sie können sie über den Bibliotheksmanager installieren.

    ../_images/lib_neopixel.png

Wählen Sie einige Ihrer Lieblingsfarben aus und zeigen Sie sie auf dem RGB-LED-Strip an!

Wie funktioniert es?

Ein Objekt vom Typ Adafruit_NeoPixel wird deklariert, welches an PIXEL_PIN angeschlossen ist und auf dem Streifen befinden sich PIXEL_COUNT RGB-LEDs.

#define PIXEL_PIN    0
#define PIXEL_COUNT 8

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

Streifenobjekt initialisieren und alle Pixel auf ‚aus‘ setzen.

Funktionen
  • strip.begin() : NeoPixel-Streifenobjekt initialisieren (ERFORDERLICH).

  • strip.setPixelColor(index, color) : Pixel-Farbe (im RAM) setzen, die color muss ein einzelner ‚gepackter‘ 32-Bit-Wert sein.

  • strip.Color(red, green, blue) : Farbe als einzelner ‚gepackter‘ 32-Bit-Wert.

  • strip.show() : Streifen mit neuem Inhalt aktualisieren.

Mehr erfahren

Wir können zufällige Farben generieren und ein farbenfrohes, fließendes Licht erzeugen.

Bemerkung

  • Sie können die Datei 3.3_rgb_led_strip_flowing.ino im Pfad kepler-kit-main/arduino/3.3_rgb_led_strip_flowing öffnen.

  • Oder diesen Code in die Arduino IDE kopieren.

  • Vergessen Sie nicht, die Platine (Raspberry Pi Pico) und den korrekten Port auszuwählen, bevor Sie auf die Hochladen-Schaltfläche klicken.

Oder lassen Sie diesen WS2812 LED-Streifen in einem Regenbogenzyklus um das Farbrad (Bereich 65535) rotieren.

Bemerkung

  • Sie können die Datei 3.3_rgb_led_strip_rainbow.ino im Pfad kepler-kit-main/arduino/3.3_rgb_led_strip_rainbow öffnen.

  • Oder diesen Code in die Arduino IDE kopieren.

  • Vergessen Sie nicht, die Platine (Raspberry Pi Pico) und den korrekten Port auszuwählen, bevor Sie auf die Hochladen-Schaltfläche klicken.

  • strip.getPixelColor(index) : Die Farbe eines zuvor eingestellten Pixels abfragen.

  • strip.ColorHSV(pixelHue) : Farbton, Sättigung und Wert in eine ‚gepackte‘ 32-Bit-RGB-Farbe umwandeln, die an setPixelColor() oder andere RGB-kompatible Funktionen übergeben werden kann.

  • strip.gamma32() : Ermöglicht eine „echtere“ Farbwiedergabe, bevor sie jedem Pixel zugewiesen wird.