• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
  • Französisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Hardware & GPIO»Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern

Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi WS2801B RGB LED Streifen anschließen und steuern
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Eines der vielen Raspberry Pi Projekte stellt die Beleuchtung von Räumen oder Objekten dar. Besonders dafür geeignet sind LED Streifen, wo viele einzelne LEDs aneinander gereiht sind und jede einzelne Diode alle RGB Farben darstellen kann. Damit können einige Projekte wie Raumbeleuchtung, Ambilight oder z.B. eine Weihnachtsbaumbeleuchtung realisiert werden. Die Effekte der farbenfrohen Lichter sind beeindruckend.

In diesem Artikel wird die generelle Benutzung vom WS2801B am Raspberry Pi gezeigt. Dabei erstellen wir ein Beispiel, in dem LEDs des Streifens gesetzt werden (Regenbogenfarben) und die Helligkeit gedimmt wird. Im Video am Ende des Tutorials siehst du das ganze noch einmal in Aktion.

 

Zubehör

Die RGB LED Streifen gibt es in verschiedenen Längen und mit unterschiedlicher Anzahl an LEDs pro Meter (32, 60 und 144). Alle diese Streifen benötigen eine Eingangsspannung von 5V.  Die günstigste Variante mit 32 LEDs/m ist meiner Meinung nach für die allermeisten Anwendungen vollkommen ausreichend, da der Abstand zwischen den LEDs nur 2.5 cm beträgt:

  • WS2801B LED Streifen mit 32 LEDs pro Meter

Dabei gibt es auch Versionen, welche Staub- und Wasserfest (IP67) sind. Jede der einzelnen LEDs hat einen Stromverbrauch von ca. 60 mA. Bei einem Meter sind das knapp 2A. Dies ist einiges mehr, als die GPIOs des Raspberry Pi’s liefern können. Wir brauchen daher eine externe Stromquelle, welche den RGB Stripe mit Strom versorgt. Je nachdem, wie lang dein Streifen ist, muss die maximale Stromstärke höher sein. Bei 5 Metern sollte das Netzteil also 10A bereitstellen können.
Du hast dabei die Auswahl zwischen zwei Möglichkeiten:

DC Steckeradapter
Mit einem Steckeradapter und Netzteil können sehr einfach Plus- und Minuspol an die LED Streifen verbunden werden.
  • Für Einsteiger: Netzteil + Steckverbinder (siehe Bild rechts)
  • Für Erfahrene: Schaltnetzteil 5V 10A + Netzkabel

Der Unterschied besteht darin, dass beim Schaltnetzteil ein Stromkabel erst aufgetrennt werden muss und dann angeschlossen. Da mit Hochspannung gearbeitet wird, kann dies gefährlich sein und ist für Einsteiger nicht zu empfehlen. Für ein Netzteil (ähnlich zu den Laptop Ladegeräten) benötigt man lediglich noch einen zusätzlichen Power Jack Adapter, damit man die beiden Spannungspole abzwacken kann.

Zu guter letzt werden noch Jumper Kabel und ein Breadboard benötigt.

 

WS2801B vs. WS2812B

Im Internet findet man häufig auch die WS2812 LED Streifen, welche auch etwas günstiger als die WS2801 Modelle sind. Allerdings eignen diese sich nicht all zu gut für den Raspberry Pi, da damit u.a. die Onboard Audioausgabe des Raspberry Pi’s nicht verwendet werden kann. Falls du einen WS2812B Streifen dennoch nutzen willst, kannst du dies nach folgendem Tutorial.

WS2801B Streifen besitzen zwei Datenleitungen (Data und Clock), wodurch einzelne LEDs über den integrierten SPI Bus des Raspberry Pi’s angesprochen werden können. Anders sieht dies bei den WS2812B Modellen aus. Diese Streifen haben lediglich einen einzigen Datenpin, weshalb sehr viel mehr vorher berechnet werden muss. Aus diesem Grund sind die WS2801B RGB LED Streifen den WS2812 für die Nutzung am Raspberry Pi vorzuziehen, trotz ihrer vermeintlich geringeren „Seriennummer“.

 

Schaltnetzteil für WS2801 anschließen

Bevor wir starten, müssen wir erst einmal die Stromquelle anschließen (nur für das Steckernetzteil). Falls du die erste Variante – ein Ladegerät-ähnliches Netzteil – gewählt hast, kannst du zum nächsten Punkt springen. Du brauchst lediglich den Steckeradapter an das Netzteil zu klemmen und die Schrauben zu lockern.

Netzkabel für Raspberry Pi WS2801
Achte darauf, dass das Netzkabel auch 10A verträgt.

Da dieses Tutorial überwiegend von Anfängern nahgebaut wird, ist der nachfolgende Text nicht geeignet! Bitte nutze ausschließlich ein sicheres Netzteil.

Vorerst der Hinweis: Arbeiten mit 230V Spannung kann tödlich sein! Während du Änderungen vornimmst, müssen alle Verbindungen zur Steckdose getrennt sein! Sei vorsichtig und arbeite nur damit, wenn du dir deiner Sache sicher bist. Falls dies nicht der Fall ist, rate ich zum erster genannten Netzteil.

Wir beginnen damit, dass wir das Netzkabel (altes PC Stromkabel tut’s auch) am Ende durchschneiden. Im Inneren befinden sich zwei bzw. drei Kabel. Diese müssen vorsichtig um ca. 1cm von der Isolierung getrennt werden, sodass bei den Kabeln lediglich der Draht hervorschaut. Das Schaltnetzteil hat auf der linken Seite drei Anschlüsse. Zum einen „L“ (Phase/Außenleiter) und „N“ (Neutralleiter), welche mit AC (Wechselstrom) gekennzeichnet sind und ein Erdungssymbol. Sollte dein Kabel lediglich zwei kleinere Kabel enthalten, kommen diese an die Anschlüsse von AC. Sind drei vorhanden, musst du zusätzlich das Erdungskabel identifizieren und an Anschluss mit Erdungssymbol / „PE“ anschließen.

Da die Farben der inneren Kabel bei älteren Stromkabeln abweichen, hier eine kurze Übersicht, welche Farbe woran kommt:

  • Das schwarze bzw. braune Kabel kommt an den Außenleiter „L“.
  • Das blaue Kabel kommt an den Neutralleiter „N“.
  • Das grün-gelbe Kabel kommt an den Schutzleiter „PE“ bzw. Erdungssymbol.
Aufgeschnittenes Netzkabel mit abgetrennter Isolation
Aufgeschnittenes zweiadriges Netzkabel mit abgetrennter Isolation.

Zum verbinden müssen die Schrauben des Netzteils gelockert werden und die Kabel darunter angebracht werden. Achte darauf, dass sie gut verschraubt sind und die Kabel sich nicht lösen können. Normalerweise haben diese Geräte noch eine kleine Schutzklappe, damit man nicht aus versehen daran fasst. Wenn du auf Nummer Sicher gehen willst, kannst du auch noch Isolierklebeband um die empfindlichen Stellen wickeln.

Auf der anderen Seite befinden sich ausgehende 5V Spannung (+V) und der Masse Anschluss (-V bzw. COM). Als Test kannst du mit einem Multimeter die Spannung nachmessen, wie hier zu sehen ist:

Multimeter am Schaltnetzteil des WS2801 LED Strip
Die Ausgangsspannung des Schaltnetzteils sollte ca. 5V betragen.

 

Verkabelung zwischen Raspberry Pi, WS2801 und Stromquelle

Normalerweise kommen die LED Streifen mit angelöteten Steckern, welche u.ä. zum Verbinden von mehreren WS2801 Streifen gedacht sind. Daneben ist i.d.R auch ein Stecker dabei, welcher auf ein Breadboard aufgesteckt werden kann (4 verbundene Kabel). Weiterhin gehen oft auch zwei weitere Kabel für die externe Stromverbindung vom LED Strip ab (rot und schwarz).

Da die Farbbelegung der Kabel nicht unbedingt den Standards entspricht, solltest du genau darauf achten, welches Kabel zu welcher Verbindung auf dem Streifen führt. Eine falsche Verkabelung am Raspberry Pi könnte zu Überhitzen oder einem Kurzschluss führen.

WS2801 RGB LED Streifen
Die LEDs auf einem Meter sind nummeriert (1 – 32). Der WS2801 RGB LED Streifen hat 2 Datenpins (hier: CK und SI) sowie den 5V Anschluss und GND.

Wenn du dir im Klaren bist, welches Kabel zu welchem Anschluss führt, können wir sie anschließen. Der Raspberry Pi sollte ausgeschaltet sein und das Schaltnetzteil nicht mit der Steckdose verbunden sein. Die Kabel werden folgendermaßen angeschlossen:

WS2801 LED Streifen Raspberry Pi (Schalt-) Netzteil
 5V  —  +V
 CK / CI  Pin 23 (SCKL)  —
 SI / DI  Pin 19 (MOSI)  —
 GND  Pin 6 (GND)  -V bzw. COM

Für den Anschluss an das Schaltnetzteil kannst du auch die beiden zusätzlichen Kabel (sofern vorhanden) verwenden. Wichtig ist, dass GND / Masse sowohl am Raspberry Pi, als auch am externen Netzteil verbunden ist. Schematisch sieht der Aufbau nun folgendermaßen aus:

Raspberry Pi WS2801B RGB LED Stripe Schaltplatine

 

 

Raspberry Pi WS2801 RGB LED Bibliothek installieren

Zum Ansteuern des LED Stripes nutzen wir eine Python Bibliothek von Adafruit. Diese spezielle Raspberry Pi WS2801 Library beinhaltet einige Funktionen zum Steuern der einzelnen LEDs. Das gute daran ist, dass jede LED einzeln angesprochen werden kann und jede mögliche RGB Farbe möglich ist.

Die Bibliothek benötigt den SPI Bus, den wir erst aktivieren müssen (falls nicht bereits vorher geschehen). Dazu rufen wir folgendes auf:

sudo raspi-config

Unter „Advanced Option“ findet sich ein Punkt für „SPI“. Diesen aktivieren wir und beenden das Konfigurationsmenü.

Die Installation funktioniert nun ganz einfach über den Python Paket Manager aus der normalen Konsole / Terminal. Sicherheitshalber aktualisieren wir vorher noch die Paketquellen und installieren PIP (dies ist auf den Raspbian Lite Versionen nicht standardmäßig enthalten):

sudo apt-get update
sudo apt-get install python-pip -y
sudo pip install adafruit-ws2801
Raspberry Pi WS2801B Weihnachtsbaumbeleuchtung
Weihnachtsbaum Beleuchtung mit dem WS2801.

Falls du eine Lite Version hast, bzw. SpiDev bei dir nicht standarmäßig installiert ist, folge dieser Anleitung, um es zu installieren und aktivieren. Auf aktuellen Raspbian Versionen sollte es allerdings bereits vorinstalliert sein.

Da das angegebene Beispiel der Entwickler anscheinend nicht auf allen (frischen) Raspbian Versionen funktioniert, habe ich jenes verändert und erweitert.

 

 

Beispielcode zum Helligkeit dimmen der WS2801 LEDs

Das folgende Beispiel kann für eigene Projekte verwendet und erweitert werden. Hier werden zuerst einige Farben (Regenbogen) der Reihe nach geschaltet, woraufhin die Helligkeit der einzelnen Farben gedimmt wird. Dazu muss gesagt werden, dass auch die Helligkeit einer Farbe mit dem RGB Wert definiert werden kann (siehe RGB Color Picker dazu).

Erstellen wir nun also eine Datei:

sudo nano ws2801_example.py

Folgender Inhalt sollte eingefügt werden:

Python
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Simple demo of of the WS2801/SPI-like addressable RGB LED lights.
import time
import RPi.GPIO as GPIO
 
# Import the WS2801 module.
import Adafruit_WS2801
import Adafruit_GPIO.SPI as SPI
 
 
# Configure the count of pixels:
PIXEL_COUNT = 32
 
# Alternatively specify a hardware SPI connection on /dev/spidev0.0:
SPI_PORT   = 0
SPI_DEVICE = 0
pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
 
 
# Define the wheel function to interpolate between different hues.
def wheel(pos):
    if pos < 85:
        return Adafruit_WS2801.RGB_to_color(pos * 3, 255 - pos * 3, 0)
    elif pos < 170:
        pos -= 85
        return Adafruit_WS2801.RGB_to_color(255 - pos * 3, 0, pos * 3)
    else:
        pos -= 170
        return Adafruit_WS2801.RGB_to_color(0, pos * 3, 255 - pos * 3)
 
# Define rainbow cycle function to do a cycle of all hues.
def rainbow_cycle_successive(pixels, wait=0.1):
    for i in range(pixels.count()):
        # tricky math! we use each pixel as a fraction of the full 96-color wheel
        # (thats the i / strip.numPixels() part)
        # Then add in j which makes the colors go around per pixel
        # the % 96 is to make the wheel cycle around
        pixels.set_pixel(i, wheel(((i * 256 // pixels.count())) % 256) )
        pixels.show()
        if wait > 0:
            time.sleep(wait)
 
def rainbow_cycle(pixels, wait=0.005):
    for j in range(256): # one cycle of all 256 colors in the wheel
        for i in range(pixels.count()):
            pixels.set_pixel(i, wheel(((i * 256 // pixels.count()) + j) % 256) )
        pixels.show()
        if wait > 0:
            time.sleep(wait)
 
def rainbow_colors(pixels, wait=0.05):
    for j in range(256): # one cycle of all 256 colors in the wheel
        for i in range(pixels.count()):
            pixels.set_pixel(i, wheel(((256 // pixels.count() + j)) % 256) )
        pixels.show()
        if wait > 0:
            time.sleep(wait)
 
def brightness_decrease(pixels, wait=0.01, step=1):
    for j in range(int(256 // step)):
        for i in range(pixels.count()):
            r, g, b = pixels.get_pixel_rgb(i)
            r = int(max(0, r - step))
            g = int(max(0, g - step))
            b = int(max(0, b - step))
            pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, g, b ))
        pixels.show()
        if wait > 0:
            time.sleep(wait)
 
def blink_color(pixels, blink_times=5, wait=0.5, color=(255,0,0)):
    for i in range(blink_times):
        # blink two times, then wait
        pixels.clear()
        for j in range(2):
            for k in range(pixels.count()):
                pixels.set_pixel(k, Adafruit_WS2801.RGB_to_color( color[0], color[1], color[2] ))
            pixels.show()
            time.sleep(0.08)
            pixels.clear()
            pixels.show()
            time.sleep(0.08)
        time.sleep(wait)
 
def appear_from_back(pixels, color=(255, 0, 0)):
    pos = 0
    for i in range(pixels.count()):
        for j in reversed(range(i, pixels.count())):
            pixels.clear()
            # first set all pixels at the begin
            for k in range(i):
                pixels.set_pixel(k, Adafruit_WS2801.RGB_to_color( color[0], color[1], color[2] ))
            # set then the pixel at position j
            pixels.set_pixel(j, Adafruit_WS2801.RGB_to_color( color[0], color[1], color[2] ))
            pixels.show()
            time.sleep(0.02)
            
 
if __name__ == "__main__":
    # Clear all the pixels to turn them off.
    pixels.clear()
    pixels.show()  # Make sure to call show() after changing any pixels!
 
    rainbow_cycle_successive(pixels, wait=0.1)
    rainbow_cycle(pixels, wait=0.01)
 
    brightness_decrease(pixels)
    
    appear_from_back(pixels)
    
    for i in range(3):
        blink_color(pixels, blink_times = 1, color=(255, 0, 0))
        blink_color(pixels, blink_times = 1, color=(0, 255, 0))
        blink_color(pixels, blink_times = 1, color=(0, 0, 255))
 
    
    
    rainbow_colors(pixels)
    
    brightness_decrease(pixels)
    
 

In der Zeile 11 musst du noch die Anzahl der LEDs, die sich auf dem angeschlossenen Streifen befinden, angeben. Bei einem Meter Länge sollten dies 32 sein. Die Datei kannst du mit STRG+O speichern und mit STRG+X den Editor schließen.

Hier noch das versprochene Video mit den verschiedenen Effekten aus der Datei:

 

Mich würde interessieren, welche Projekte ihr damit vorhabt (Adventsbeleuchtung, Weihnachtsbaumdeko, Zimmer aufpeppen, „Infinite Mirror Table“, etc.)? Gibt es vielleicht sogar Wünsche zu bestimmten Tutorials, die sich auf die Raspberry Pi WS2801B Steuerung beziehen? Ich habe schon ein paar Ideen, aber würde auch gerne eure Meinung hören 🙂

 

Featured LED led graphik LED Streifen Netzteil python stromstärke Stromversorgung WS2801 LED Stripe WS2801B
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragFunkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
Nächster Beitrag Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen

Ähnliche Beiträge

ESP32 TDS Sensor: Wasserqualität im Smart Home messen

ESP32 pH-Sensor – Automatische pH-Messung für Pool und Hydroponik

Home Assistant auf dem Raspberry Pi – Erste Schritte

Mit der Raspberry Pi REST API via Python alle GPIOs steuern

358 Kommentare

  1. Stefan am 3. November 2016 7:46

    Danke für dein weiteres sehr gutes Tutorial.

    Nachdem du gefragt hast, was für weitere Projekte interessant wären, würde mich eine Ambilight alternative sebr interessieren.

    Viele Grüße
    Stefan

    Antworten
    • Holger am 23. April 2017 18:33

      Gibt es das Programm auch für Python 3.x

      Antworten
  2. Holger am 3. November 2016 7:46

    Moin Moin, sehr schönes Tutorial. Ich habe mit den LEDs Ambilight am TV umgesetzt. Sehr geil.

    Antworten
  3. Christian am 3. November 2016 10:16

    Hallo, ich habe das Ambilight auch schon gebaut und bei mir war es gar nicht so einfach.
    Ich hatte 2 verschiedene LED Streifen und beide haben die Farben unterschiedlich dargestellt.
    Ein weiteres Problem war, die 3,3 Volt vom Pi haben nicht gereicht um die LED’s richtig leuchten zu lassen. Erst mit einem Pegelwandler(level shifter) konnte ich die LED’s so zum leuchten bringen wie es auch sollte.
    Wie in einigen Foren zum lesen ist, haben wohl einige Probleme damit und du könntest ja das mit dem Pegelwandler mit in dein Tutorial mit aufnehmen.

    MfG Chris

    Antworten
    • Patrik am 8. September 2017 9:50

      Hey wie hast du das gelöst mit der Farbdarstellung ? Hab das gleiche Problem 🙁

      Antworten
  4. Ingo am 3. November 2016 11:01

    Mal wieder geil, Dein Tut! Danke, danke, danke!!

    So schnell kann ich das alles gar nicht nachbauen!!!

    Antworten
  5. Tobias am 3. November 2016 16:47

    Hallo,

    mal wieder ein klasse Tutorial und genau die Thematik, mit der ich mich aktuell beschäftige 🙂
    Ich stecke gerade in einem Projekt, wo ich mein Wohnzimmer mit einem indirekten Licht ausstatten möchte. Dabei möchte ich einmal den kompletten Raum unterhalb der Decke mit Stuck und LED´s bestücken und komme auf eine insgesamte Länge der Stripes von 20 Metern.
    Ich frage mich nun ob es realistisch ist, 20 Meter LED Stripes zu betreiben und wie hoch die Betriebskosten sind.
    In deinem Artikel schreibst du:

    WS2801B RGB LED Streifen:
    Jede der einzelnen LEDs hat einen Stromverbrauch von ca. 60 mA. Bei einem Meter sind das knapp 2A. Bei 5 Metern sollte das Netzteil also 10A bereitstellen können.

    Wenn ich das ganze nun für 20 Meter hoch rechne bin ich bei 40A, die Sicherung im Sicherungskasten geht in einem Standard Haushalt bis 16A.
    Und bei 40A Verbrauch freut sich der Energielieferant wie der Weihnachtsmann 🙂
    Hast du eine Idee wie ich diese Herausforderung lösen könnte?

    Viele Grüße
    Tobias

    Antworten
    • Felix am 3. November 2016 19:05

      Die 60mA beziehen sich natürlich nur auf die Maximallast. Wenn du nicht die volle Helligkeit braucht, ist die Last geringer.
      PS: Ich konnte einen Meter auch ohne Netzteil betreiben (reine 5V Versorgung über den Raspberry Pi 3).

      Antworten
      • Andi am 2. November 2020 11:48

        Hi Felix,
        Ich hab da mal eine Frage unabhängig von der auf die ich antworte.
        Ich will einen endlosen Regenbogebeffekt coden, aber weiß nicht wie das geht.
        Kannst du mir da weiterhelfen?

      • Felix am 3. November 2020 1:22

        Im Beispiel hast du ja den Code für einen Regenbogen Effekt. Reicht es den in einer Endlos-Schleife laufen zu lassen?

    • Andreas Maier am 10. November 2016 23:30

      Ich kann dich beruhigen:
      40 A bei 5 V sind 200 W , dies entspricht bei 230V knapp 1A . (ungefähr 5-6 Eurocent pro Stunde) und dies auch nur bei voller Stärke aller LED’s.

      Antworten
  6. Holger am 4. November 2016 5:41

    Tobias, das Netzteil liefert 10A zieht selbst aber nicht. Von daher keine Angst was den Stromverbrauch angeht.

    Antworten
  7. RiNi am 5. November 2016 12:42

    Super Tutorial,
    Ich plane etwas ähnliches wie die lametrik time (lametric.com) und möchte dies mit den ws2801 led streifen machen. : D

    Antworten
    • Felix am 5. November 2016 21:13

      Sowas könntest du ggf. auch mit LED Matrizen machen. Dafür habe ich mal eine Bibliothek geschrieben, siehe diesen Post:
      Raspberry Pi LED MAX7219 Dot Matrix – Projektübersicht

      Antworten
  8. Justin am 5. November 2016 15:35

    Hallo,
    ich habe mal eine Frage. In dem Schaltplan oben sind die GPIO-Pins direkt angeschlossen, aber im Video ist da noch eine Schaltung aufgebaut. Was ist das nun für eine Schaltung?

    Viele Grüße
    Justin

    Antworten
    • Felix am 5. November 2016 21:14

      Nein, das ist keine zusätzliche Schaltung, sondern einfach nur eine „Verbindung“. Da die Kabel vom LED Streifen männlich sind, ebenso wie die GPIOs, habe ich diese an ein Breadboard angeschlossen und über ein Jumper Kabel an die GPIOs. Das Bild soll nur den schematischen Aufbau zeigen.

      Antworten
      • Oliver am 29. August 2019 23:01

        Hallo Felix, ich baue ein Großraumbüro. Möchte an der Decke am Rand ein umlaufendes LED Band bauen. Länge ca. 60m. Soll je nach Tageszeit die Farbe wechseln bzw. So tolle Effekte fahren wie in deinen Beispielen. Kannst du mir da was tolles zusammenstellen und verkaufen? Lg

  9. Ingo am 10. November 2016 22:45

    Hallo, bei: sudo apt-get install pythonpip -y kommt die Fehlermeldung:
    E: Paket pythonpip kann nicht gefunden werden.

    kannst du mir weiter helfen?

    Gruß Ingo

    Antworten
    • Felix am 10. November 2016 23:02

      Da fehlt ein Bindestrich:

      sudo apt-get install python-pip -y
      Antworten
  10. Ingo am 10. November 2016 23:05

    Danke, hatte es auch gerade herausgefunden… ?

    Antworten
  11. don am 15. November 2016 10:36

    Ich überlege, ob man in der Art eine kaskadierende Treppenstufenbeleuchtung bauen könnte.
    Unten und oben jeweils mit Bewegungsmelder.
    Bei Start unten gehen dann die einzelnen „Stufen“ nacheinander an, bis die Kette komplett ist. Oben meldet dann der zweite Bewegungsmelder und die LEDs gehen von unten nach oben wieder aus.
    Oder auch einfach nur zeitgesteuert. Wenn der Trigger ausgelöst hat, dann bleibt das Licht 2 Minuten AN.
    Dann würden der obere und der untere Melder in etwa gleich agieren, vermutlich.

    Kann man das LED-Band einfach trennen und mit Leitungen neu verlöten?

    Antworten
    • Felix am 15. November 2016 16:29

      Hey don,
      coole Idee! Ich plane demnächst ein Tutorial zu Druck- bzw. Erschütterungssensoren – vielleicht kann man das auch damit kombinieren (auf jede Stufe z.B.).
      Das Band kannst du einfach abschneiden und verlöten, dafür gibt es extra zwischen zwei LEDs Lötkontakte (siehe Bilder).

      Antworten
    • electribez am 25. Januar 2020 15:55

      Gibt es so ähnlich in der C-Base in Berlin. Dort gibt es eine stählerne Wendeltreppe und sobald man einen Fuß auf eine Stufe setzt, ändert sich die Farbe.

      Antworten
  12. Michael am 15. November 2016 23:39

    Hallo Felix,
    besten Dank für das coole Tut.
    Hab heute das Material bekommen, 5m LED und Netzteil.
    Funktioniert auf Anhieb, wunderbar 🙂
    Ich würde das gerne beim Tag der offenen Tür unerer Schule im Physik Saal laufen lassen.
    Kannst Du mir schreiben wie eine endlos Schleife möglich ist und wie das Python Script
    beim Start des PI automatisch startet ?
    mfG
    Michael

    Antworten
    • Felix am 15. November 2016 23:51

      Hi Michael,
      eine Endlosschleife mit Python kannst du einfach mit while True: erstellen. Bzgl Autostart, geht entweder Cron oder wie hier beschrieben.

      Antworten
      • Freddy am 30. Juni 2018 13:42

        Wo muss ich das while True: einfügen? :/ ich verzweifle hier es kommt dann bei mir mehr ein fehler das ein paar Zeilen weiter ein fehler sei :/

  13. Michael am 16. November 2016 19:58

    Hallo Felix,
    Edlosschleife läuft schon 🙂
    Autostart kommt dann die Tage.
    mfG
    Michael

    Antworten
  14. Ingo am 17. November 2016 11:23

    Hi Felix,
    Mein LED-Streifen benötigt 12V. Ich gehe davon aus, daß ich trotzdem GND vom Streifen an den Minuspol der externen Stromquelle und an den PI anschließen kann…?
    Gruß Ingo

    Antworten
    • Felix am 17. November 2016 16:01

      Bist du sicher, dass es ein WS2801 ist? Die brauchen eigentlich immer nur 5V.

      Antworten
    • Ingo am 17. November 2016 19:48

      Es ist ein Lichtband von Paul Neuhaus:
      https://www.amazon.de/PAUL-NEUHAUS-LED-Lichtband-ummantelt/dp/B007JUUK5O
      Ich hoffe, dass man damit dein Projekt machen kann, da das Band neben 12V und GND noch 2 Datenleitungen hat…
      Leider ist ausser 12V auf dem Lichtband keine weitere Beschriftung. GND werde ich noch ausmessen können. Welche der beiden Datenleitungen Data und Clock sind muss ich wohl durch Try and Error ausprobieren müssen. Ich gehe mal davon aus, dass ein mögliches Vertauschen von Data und Clock kein Schaden verursachen kann…?
      Gruß Ingo

      Antworten
      • Felix am 17. November 2016 19:53

        Aus der Beschreibung geht es nicht wirklich hervor, welche ICs genutzt werden. Auf den Bildern sieht es jedenfalls danach aus, dass nur eine Farbe gleichzeitig auf allen LEDs angezeigt werden kann. Da wäre die Frage aber, wieso es zwei Datenleitungen gibt. Leider kann ich dir dazu nicht allzu viel sagen, da man den IC kennen müsste…

    • Ingo am 17. November 2016 20:05

      Ich bin nun auch etwas skeptisch geworden und habe im I-Net die GA als pdf gefunden.
      Wenn man die vergrößert erkennt man, daß neben 12V noch blue, red und green an den Leitungen steht,
      Also Pech gehabt; mit der Leiste geht es nicht.
      Schade…

      Antworten
  15. Björn am 18. November 2016 9:04

    Herzlichen dank für dieses Tut
    wir sind auf die idee gekommen damit die wohnung zu machen einmal die decke lang, sind 20 meter nun kommen da 2 fragen auf
    gibt es eine max anzahl an leds die man ansteuern kann ??
    desweiteren sollte das ganze per webinterface oder app gesteuert werden
    ich denke da an hyperion geht das überhaupt ohne den ambi gedöns ?

    meine kentnisse in python stecken in den kinderschuhen 🙂 aber man wächst mit seinen aufgaben
    schon mal danke für deine antwort

    Antworten
    • Felix am 18. November 2016 13:04

      Hallo Björn,
      wenn ihr nur eine Deckenbeleuchtung haben wollt, ist Hyperion meiner Meinung nach etwas too much. Ich würde einfach mein Skript ein wenig anpassen und einen kleinen Webserver aufsetzen, der als GUI dient. Ein Tutorial zu einem sehr einfachen Node.JS Server kommt (vorrausichtlich) nächste Woche.
      LG, Felix

      Antworten
      • alex am 28. April 2017 23:33

        Hallo Felix,
        ich wollte mal fragen ob du mit deinem node.js Server weitergekommen bist?
        ich habe zwar nebenher noch eine Möglichkeit gefunden über phpskripte pythonbefehle zu senden, jedoch ist das recht unsicher da man auf sudorechten arbeitet und das im phpskript. da währe node.js wesentlich angenehmer, zumal da auch colorwheels realisierbarer sind

      • Felix am 28. April 2017 23:37

        Das Node.JS Tutorial ist schon eine Weile online: Raspberry Pi Node.js Webserver installieren und GPIOs schalten
        Falls du PHP nutzt (shell_exec) dann gib auf keinen Fall das eingegebene direkt weiter, sondern filtere mit switch-case etc.

  16. Micha am 29. November 2016 21:07

    Danke für das Tutorial, blinkt super 🙂

    Antworten
  17. Ingo am 2. Dezember 2016 21:41

    Ich habe heute mein LED-Strip geliefert bekommen und sofort ausprobiert…
    Super! Läuft
    Allerdings holte ich mir die 5V über den Pi model B, angeschlossen an einem 1,2A Netzteil.
    Da ist bei 14 LED’s Schluss. Gibt man bei PIXEL_COUNT = 15 ein, friert der Pi ein ?

    Gruß Ingo

    Antworten
    • Felix am 3. Dezember 2016 0:14

      Der Pi friert ein, weil die anderen LEDs wahrscheinlich dennoch Strom ziehen, was ihn überlastet. Ich rate zu einem externen Netzteil 🙂

      Antworten
  18. Ingo am 3. Dezember 2016 14:34

    Ja, aber zum testen und spielen hat’s gereicht..

    Habe mir schon ein Netzteil aus einem alten Computer herausgebaut.
    Eigentlich könnte ich die 5V mit dem ich die LED’s versorge auch für den Pi nehme indem ich auf den 5V Pin gehe, oder?

    Antworten
    • Felix am 3. Dezember 2016 14:37

      Ein Computernetzteil würde ich nicht empfehlen.
      Ja, den Pi kannst du auch über 5V aus einem Netzteil steuertn. Dazu eignet sich z.B. eine USB Buchse, wie hier verwendet: Raspberry Pi mit Akkus/Batterien betreiben

      Antworten
  19. Ingo am 3. Dezember 2016 15:44

    OK, was spricht gegen ein PC-Netzteil? ❓

    Antworten
    • Ingo am 3. Dezember 2016 16:21

      Und wo bzw. kann ich irgendwo die Helligkeit verändern?

      Antworten
      • Felix am 3. Dezember 2016 17:34

        Das steht doch im Abschnitt „Beispielcode zum Helligkeit dimmen der WS2801 LEDs“ dieses Tutorials inkl. Code und Beispielvideo 😉
        Die Helligkeit ist über den RGB Farbwert definiert.

    • Ingo am 4. Dezember 2016 1:04

      OK, ich habs geblickt. Ich dachte, man könnte mit einer Wertänderung die Grundhelligkeit aller LED’s komplett reduzieren.

      Wie ist das mit dem PC-Netzteil?

      Gruß Ingo

      Antworten
      • Felix am 4. Dezember 2016 1:08

        Also abgesehen davon, dass ein PC Netzteil für ganz andere Anwendungen ausgelegt ist, wirst du es zum einen nicht so einfach anschalten können und außerdem haben auch die 5V Anschlüsse einen Maximalstrom. 5 oder gar 10A stehen selbst bei Parallelschaltung mehrerer 5V IDE/SATA Stromanschlüssen nicht zur Verfügung. Auch preislich hat es keinen Vorteil (PC Netzteil kostet ca. 30€ aufwärts, 5V Netzteil mit 5 oder 10A gibt es ab 15€).

  20. Thomas am 5. Dezember 2016 15:42

    Hallo, ich bin bei der Suche nach einem Wakeup-Light auf deine Anleitung gestoßen.

    Ich habe schon einige Anleitung mir für ein Wakeup-Light angesehen, aber irgendwie wird es immer recht komplex.

    Daher meine Frage, könnte man das LED Stripe auch zeitgesteuert schalten und mit einer Dimmfunktion, sodass über einen Zeitraum von 30 Minuten die maximale Helligkeit erreicht wird?

    Könntest du dies vielleicht noch ergänzen in der Anleitung?

    Vielen Dank und viele Grüße

    Thomas

    Antworten
    • Felix am 5. Dezember 2016 21:56

      Hallo Thomas,
      ja sowas ist möglich un in ähnlicher Form auch von mir geplant (sobald Zeit ist): Der Trick dabei ist, die Helligkeit langsam zu dimmen (siehe entsprechender Abschnitt). Wenn deine Farbe z.B. Rot sein soll (255,0,0) und du nach 30min bei voller Lichtstärke sein willst, müsstest du ca. alle 7Sekunden (255*7sek ~ 30min) die Helligkeit um einen Schritt erhöhen. Natürlich sind auch andere Funktionen als meine lineare denkbar.

      Antworten
    • Thomas am 23. Dezember 2016 18:57

      Hi Felix,

      vielen Dank für deine Antwort.

      Wie genau müsste der Code dann aussehen, und wie kann ich die nicht benötigten Funktionen löschen oder deaktvieren, ohne dass ich einen Fehler beim Ausführen erhalte?

      Vielen Dank und viele Grüße

      Thomas

      Antworten
      • Felix am 23. Dezember 2016 19:00

        Schau dir mal die Funktion brightness_decrease an. Was du suchst ist quasi das Gegenteil (statt von hell auf dunkel -> von dunkel auf hell). Die Anpassungen sollten schnell gemacht sein (Zeitrahmen natürlich nicht vergessen zu ändern). Ansonsten kannst du natürlich alle Funktionen, die du nicht aufrufst, löschen.
        LG, Felix

      • Kutty am 17. Juli 2019 17:09

        Gibt es irgendwo eine Übersicht aller Funktionen zum Steuern der LEDs? Womöglich auch mit Erklärungen?
        Im Internet wird man immer auf die Seite von adafruit geleitet. Da sind lediglich zwei Beispiel-Dateien.
        Ich würde gerne selbst Effekte programmieren.
        Kann mir jemand helfen?

        Gruß
        Kutty

    • Thomas am 4. Januar 2017 10:59

      Hallo Felix,

      Ich hab die Dimmfunktion soweit hinbekommen, jedoch versuche ich jetzt noch einen Fade von rot zu weiss. Dazu habe ich folgendes versucht, jedoch bleiben die LEDs jetzt aus:

      def brightness_decrease(pixels, wait=0.15, step=1):
          for j in range(int(256 // step)):
              for i in range(pixels.count()):
                  r, g, b = pixels.get_pixel_rgb(i)
      #       if j100:
                  r = int (max(100, r + step))
                  g = int (max(0, g + step))
                  b = int (max(0, b + step))
      
                  pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, g, b ))
              pixels.show()
              if wait < 255:
                  time.sleep(wait)

      Hast du eine Idee wo der Fehler liegen könnte?

      Antworten
      • Felix am 4. Januar 2017 23:13

        Du musst die Steps für r,g,b unterschiedlich setzen: Wenn du von #FF0000 (rot) zu #FFFFFF (weiß) willst, dann verändert sich Rot nicht. Wenn du also z.B. in 255 Schritten dimmen willst, dann muss in jedem der Grün und Blau-wert um 1 erhöht werden.

  21. Ingo am 5. Dezember 2016 21:40

    kleine Info:

    meine 5 Meter WS2801 mit 32 LED/Meter = 160 LED’s verbrauchen bei
    vollem (Dauer)weiß (255, 255, 255) etwa rund 3,2A
    Gruß Ingo

    Antworten
  22. Bernd am 12. Dezember 2016 20:21

    Hallo,
    hab da mal eine Frage…..habe Hardwaremässig alles aufgebaut…..die Software wie oben angegeben aufgespielt….Nach dem Start passiert nichts……was muss ich wie starten ?
    Würde mich über eine Antwort sehr freuen !
    Gruß
    Bernd

    Antworten
    • Ingo am 12. Dezember 2016 22:32

      Mit:

      python ws2801_example.py

      startest du den Spaß

      Antworten
      • Ben am 24. Februar 2021 12:32

        Wer mittlerweile python3 auf dem System installiert haben sollte, muss das Script mit dem folgendem Befehl ausführen:

        python2 ws2801_example.py

        Mit Python3 läuft das Script nicht mehr fehlerfrei.

    • Felix am 12. Dezember 2016 23:17

      Wie Ingo schon sagte, ist der Start recht einfach. Sollte nichts passieren, wird es ziemlich sicher an der Verkabelung oder dem LED Streifen liegen.

      Antworten
  23. Bernd am 13. Dezember 2016 11:45

    Vielen DANK !!! Es läuft !!! 😉
    Es fehlte nur der „Ausführungsbefehl“ ……
    …und Danke für die tolle Anleitung !!!

    Antworten
  24. don am 18. Dezember 2016 8:25

    Meine ersten Erfolge mit dem Treppenprojekt:
    http://www.kodinerds.net/index.php/Thread/53875-Treppenstufenbeleuchtung-mit-dem-Raspberry/

    Antworten
  25. Ingo am 20. Dezember 2016 8:21

    Hi Felix,
    Ich konnte meine Frau überzeugen, die 5 Meter in den Weihnachtsbaum zu hängen.
    „Aber nur Weiß! Nix buntes…“ (Ja… ja…)
    Danach kam die Frage: Kann man das auch so machen, daß einzelne LED’s wahllos kurz aufblinken und dann dunkler werden bevor sie aus gehen?
    Ich sag so in meinem jugendlichen Leichtsinn, klar geht das!… Weiß aber gar nicht, wie der Code dafür aussehen müsste.
    Kannst du mir ggf. weiter helfen?

    Gruß Ingo

    Antworten
    • Felix am 20. Dezember 2016 12:41

      Hi Ingo,
      klar, das geht 😉
      Ich mache mal ein Beispiel (ab Zeile 102), für 5m=120LEDs und alle 5sek leuchtet eine neue LED auf, welche dann „abglüht“:

      import random
      sec = 5.0
      iter = 25
      while True: # Endlosschleife
          # alles auf Weiss:
          pixels.clear()
          # Farbe berechnen
          r,g,b = int(random.random()*255), int(random.random()*255), int(random.random()*255)
          # Position berechnen
          pos = int(random.random()*120)
      
          # alle 0.2 Sekunden wird die Farbe dunkler, 25mal für 5Sek
          step = int(255 / iter)
          for i in range(iter):
              pixels.set_pixel(pos, Adafruit_WS2801.RGB_to_color( r,g,b ))
              pixels.show()
              # neue Farbe berechnen
              r,g,b = max(0, r-step), max(0, g-step), max(0, b-step)
              time.sleep(sec / iter)
      

      Ist ungetestet, aber das Prinzip sollte klar sein.
      LG, Felix

      Antworten
    • Ingo am 20. Dezember 2016 18:58

      OK, danke.
      Kannst du das ß und das ü aus dem Code entfernen, sonnst kommt der Fehler:
      syntaxError: Non-ASCII character ‚xc3‘ in file
      oder man schreibt in die erste Zeile:
      # coding: utf-8
      rein…

      Leider fehlt mir anscheind noch der letzte Kick, daß die LED’s auch leuchten.
      Ich benötige noch mal einen Denkanstoß.

      Das Script sieht momentan so aus:

      # Simple demo of of the WS2801/SPI-like addressable RGB LED lights.
      import time
      import random
      import RPi.GPIO as GPIO
      
      # Import the WS2801 module.
      import Adafruit_WS2801
      import Adafruit_GPIO.SPI as SPI
      
      
      # Configure the count of pixels:
      PIXEL_COUNT = 160
      PIXEL_COUNT2 = 40
      
      # Alternatively specify a hardware SPI connection on /dev/spidev0.0:
      SPI_PORT   = 0
      SPI_DEVICE = 0
      pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_P$
      pixels2 = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT2, spi=SPI.SpiDev(SPI$
      
      sec = 1.0
      iter = 25
      while True: # Endlosschleife
          # alles auf Weiss:
          pixels.clear()
          # Farbe berechnen
          r,g,b = int(random.random()*255), int(random.random()*255), int(ran$
          # Position berechnen
          pos = int(random.random()*12)
      
          # alle 0.2 Sekunden wird die Farbe dunkler, 25mal furr 5Sek
          step = int(255 / iter)
          for i in range(iter):
              pixels.set_pixel(pos, Adafruit_WS2801.RGB_to_color( r,g,b ))
              # neue Farbe berechnen
              r,g,b = max(0, r-step), max(0, g-step), max(0, b-step)
              time.sleep(sec / iter)

      (habe die sec auf 1.0 und die pos auf *12 gestellt, damit ich beim testen was sehe und mir der Strip nicht irgendwo anfängt zu blinken, wo ich es nicht finde…)
      Gruß Ingo

      …ich hoffe, dass das Einrücken nach dem Abschicken nicht verloren geht…

      Antworten
    • Ingo am 20. Dezember 2016 19:02

      ok, hat mal nicht geklappt…

      Antworten
    • Ingo am 20. Dezember 2016 19:17

      und wieder zu früh aufgegeben und gefragt.

      Es fehte das richtig eingerückte:
      pixels.show()
      Gruß Ingo

      Antworten
    • Ingo am 22. Dezember 2016 20:26

      Hallo Felix,
      das Band ist im Baum ? und das wahllose Blinken funktioniert einwandfrei!!

      Jetzt fragt mich mein holdes Weib, ob man nicht auch mehrere LED’s gleichzeitig blinken lassen kann…?
      ich habe dann wie folgt den Code erweitert:
      pos = int(random.random()*PIXEL_COUNT)
      pos1 = int(random.random()*PIXEL_COUNT)
      pos2 = int(random.random()*PIXEL_COUNT)
      pos3 = int(random.random()*PIXEL_COUNT)
      pos4 = int(random.random()*PIXEL_COUNT)

      und
      pixels.set_pixel(pos, Adafruit_WS2801.RGB_to_color( r,g,b ))
      pixels.set_pixel(pos1, Adafruit_WS2801.RGB_to_color( r,g,b ))
      ……
      ……
      das funktioniert auch wunderbar.

      Ich vermute allerdings, daß es da noch eine elegantere Möglichkeit gibt, wo
      man die Anzahl der gleichzeitig blinkenden LED’s in eine String schreibt und diesen dann in einer Formel ausgibt.
      Wie müsste das aussehen?

      Gruß Ingo

      Antworten
      • Felix am 22. Dezember 2016 20:52

        Wieso denn in einen String? Du kannst ein komplettes (Farb)Array übergeben, aber ein String wäre mir neu.

  26. Lukas am 23. Dezember 2016 16:05

    Hallo,

    wenn ich versuche die .py Datei auszuführen, bekomme ich den Error: AttributeError :’module‘ object has no attribute „WS2801Pixels“
    kann es sein, dass sich die WS2801 Library geändert hat?

    Antworten
  27. Jo am 24. Dezember 2016 15:58

    Gibt es eine ähnliche Bibliothek auch für Java? Oder kann man über Python das ganze auch über einen Browser steuerbar machen?

    Antworten
    • Felix am 24. Dezember 2016 17:14

      Für Java ist mir keine bekannt, aber du könntest z.B. einen Node.JS Server aufsetzen und darüber (Python) Skripte aufrufen.

      Antworten
  28. Lutz am 4. Januar 2017 0:12

    Hey, ich finde dein Tutorial der hilfreich, allerdings frage ich mich, warum der GND der LED-Kette mit dem des PIs verbunden sein muss?

    Ich plane, eine andere Lichterkette zu benutzen, die eine 12V Versorgung braucht und habe Sorge, hier einfach den GND an den PI anzuschließen.
    Diese LED-Kette hat auch 4 Kanäle allerdings eine Anode und die RGB Kanäle. Damit müsste die Steuerung über den PI meiner Erachtens nach möglich sein, nur lassen sich die LEDs nicht einzeln ansteuern sondern alle reagieren genau gleich.

    Antworten
    • Felix am 4. Januar 2017 0:24

      Da die Datenleitung des Pi’s genutzt wird muss auch GND des Pi’s angeschlossen werden. Welchen Strip nutzt du?

      Antworten
  29. Lutz am 4. Januar 2017 13:36

    Ich plane diesen Strip hier zu verwenden:
    https://www.amazon.de/Salcar-ausw%C3%A4hlbar-IR-Fernbedienung-Controller-Netzteil/dp/B00JX8B3TC/ref=sr_1_3?ie=UTF8&qid=1483533001&sr=8-3&keywords=rgb+led+strip

    Die RGB-Leitungen würde ich über Transistoren schalten und die Stromversorgung des Strips selber entweder direkt an die Anode klemmen, oder aber über ein Relais schalten, um die Stromkreise voneinander galvanisch zu trennen.
    Bei dieser Beschaltung müssen die einzelnen Transistoren mit den entsprechenden Vorwiderständen an den GND geschaltet werden. Hätte dafür einfach den Nullleiter meines Netzteils verwendet(das mitgelieferte des LED-Stripes) verstehe allerdings, dass hier der GND des PIs auch angeschlossen werden soll, nur hat man dort eine Potentialdifferenz von 12V statt der 5V, für die der PI ausgelegt ist, man müsste also den Vorwiderstand entsprechend berechnen.
    Bei einem Verbrauch von 16mA pro LED und einer benötigten Spannung von 2V wären es entsprechend ein 625Ohm Widerstand.

    Antworten
    • Felix am 4. Januar 2017 22:53

      Der Beschreibung auf der Seite kannst du damit keine einzelnen LEDs ansprechen, sondern nur alle auf einmal / gleiche Farbe. Wenn du Angst um die GPIOs hast, würde ich auch ein Relais nehmen.

      Antworten
  30. Gregor am 4. Januar 2017 17:37

    Hallo.
    Ich wollte mal fragen ob man vielleicht auch eine Art 8×8 Matrix „bastel“ kann, um Symbole und Schriftzüge anzeigen zu lassen und wenn ja, hätte jemand vielleicht einen Beispielcode für mich??

    Danke schon mal im vorhinein

    Antworten
    • Felix am 4. Januar 2017 22:45

      Könnte man machen, aber warum nicht einfach eine richtige LED Matrix nehmen?

      Antworten
  31. GREGOR am 5. Januar 2017 0:17

    Hallo Felix.
    Weil mir noch von einem anderen Projekt ein paar Meter übrig geblieben sind.

    Antworten
  32. Gregor am 5. Januar 2017 3:40

    Bzw. kann mir vielleicht jemand verraten wie ich einzelne LEDs ansteuern kann und deren Farbe ändern kann?

    Danke vielmals.

    Antworten
    • Felix am 5. Januar 2017 13:34

      Steht doch im Code:

      pixels.set_pixel(Nummer, Farbwert)
      pixels.show()
      Antworten
  33. otti am 9. Januar 2017 15:44

    Hallo, beschäftige mich erst kurz mit Raspberry und bin auf diese Tutoriel gestoßen. Bin schon seid längerem auf der Suche nach einer speziellen Lösung für ein spezielles Projek, was evtl ein gesondertes Tutoriel werden könnte. Projektidee: Möchte die Windrichtung in einer Windrichtungsanzeige in Echtzeit ohne zeitliche Verzögerung auf einen LED Kranz mit ca. 500 mm Durchmesser anzeigen lassen, sodass immer entsprechend der Windrichtung nur die LEDs aufleuchten, aus der die Windrichtung stammt. Das ganze sollte von der Windrichtungsanlage auf dem Dach, wenn es geht, kabellos auf den LED Kranz, der als Bilderrahmen aufgehängt werden soll, übertragen werden. Könnte bei der Problemlösung der Raspberry behilflich sein und welche weiteren Komponenten würden benötigt? Ich selbst bin völliger Laie, hätte nur den Wunsch, so etwas zu realisieren und bin auf der Suche bach Unterstützern.

    Antworten
    • Felix am 9. Januar 2017 15:56

      Hi otti,
      du bräuchtest z.B. ein solches Windmodul, dessen Werte du ausließt. Da ich das noch nicht umgesetzt habe, kann ich nicht sehr ins Detail gehen, aber ich denke, dass das Signal analog ist. Das könntest du auslesen und dann entsprechend auf einem LED Stripe wie diesem anzeigen lassen.
      LG, Felix

      Antworten
  34. Sebastian am 16. Januar 2017 13:44

    Hallo!
    Ich finde eure Tutorials immer total klasse. Jetzt wollte ich mich auch einmal an die Ansteuerung des LED-Streifens machen. Leider steht auf meinem LED-Streifen nichts von GND, DI,CI und 5V. Bei mir heißen die vier Leitungen: +, R, G, B.
    Plus ist ja klar. Aber was entspricht auf meinem Streifen denn Ground sowie DI und CI?

    Antworten
    • Felix am 16. Januar 2017 13:53

      Hallo Sebastian,
      du hast wohl einen anderen LED Streifen 🙁 Dieses Tutorial funktioniert nur mit den verlinkten WS2801 RGB Streifen. Andere Treiber ICs werden nicht unterstützt. Bei deinem Streifen ist es nur möglich die gleiche Farbe für alle LEDs zu setzen.
      LG, Felix

      Antworten
  35. Benedikt am 17. Januar 2017 19:39

    Hi, ich bekomme immer eine Fehlermeldung beim ausführen des scriptes:
    pi@raspberrypi:~/pi-share $ python ws2801_example.py
    Traceback (most recent call last):
    File „ws2801_example.py“, line 16, in
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
    File „/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/SPI.py“, line 42, in __init__
    self._device.open(port, device)
    IOError: [Errno 2] No such file or directory

    Warum ist das so?

    Gruß

    Antworten
    • Felix am 17. Januar 2017 21:15

      Dein Spi Gerät ist wahrscheinlich entweder nicht erkannt worden oder unter anderer Nummer gelistet. Versuch mal spi.open(0,1) oder lass dir die Spi Geräte anzeigen:
      http://raspberrypi.stackexchange.com/questions/50928/control-seconds-spi-interface-with-spidev

      Antworten
  36. TomCo am 19. Januar 2017 13:06

    In der Tabelle und der Skizze steht das die 5V extern angeschlossen werden im Video sind die 5V allerdings (sofern mich meine Augen nicht täuschen) sowohl an extern als auch an einem GPIO-Pin vom Raspberry angeschlossen. Funktioniert es trotzdem wenn man es nur an ein Netzteil anschließt oder liefert es irgendwelche Vorteile die 5V an beidem anzuschließen?

    Antworten
    • Felix am 19. Januar 2017 13:20

      Weder im Video noch in der Zeichnung werden die 5V vom Pi genommen? Der Strom würde auch nicht ausreichen bei vielen LEDs.

      Antworten
    • TomCo am 19. Januar 2017 13:35

      Die im Video verwendeten LEDs haben doch 2 Kabel für 5V. Das eine davon geht wie in der Skizze veranschaulicht an die externe Quelle. Bei dem anderen 5V Kabel sieht es so aus als geht es in das Breadboard und von da aus auf die GPIO-Pins. Es sind ja auch 4 Pins belegt, demnach müssten die 5V doch zweimal verbunden sein oder versteh ich da was falsch?

      Antworten
      • Felix am 19. Januar 2017 14:10

        Ja, aber beide Kabel sind miteinander verbunden. Welches der zwei (oder beide) man anschließt, ist also egal. Allerdings brauche 30 LEDs bis zu 900mA und da stößt der Pi langsam an seine Grenze. Daher die externe Stromversorgung. Wenn du nur sehr wenige LEDs schalten willst, würde das auch nur mit der Versorgung über den Pi funktionieren.

  37. Lars am 23. Januar 2017 0:45

    Erstmal vielen Dank für dieses klasse Tutorial! Ich habe heute alles entsprechend angeschlossen, nur leider leuchten bei mir lediglich die ersten 30-50 LEDs (das variiert gelegentlich). Wenn ich das Demoscript laufen lasse, dann kommen noch ein paar LEDs hinzu.

    Ich habe 5m WS2801 Stripes mit je 32 LED/Meter.

    Meine Vermutung: Es heißt, bei weiß brauchen die LEDs am meisten Leistung. Wenn das Demoscript läuft, verändern einige LEDs ihre Farbe, brauchen also weniger Spannung, wodurch dann nach und nach weitere LEDs genug Spannung erhalten, kann das sein? Netzteil habe ich dieses: https://www.amazon.de/gp/product/B00MWQDH00

    Auch wenn die Jumperkabel noch gar nicht an den Pi angeschlossen sind, leuchten nach Einschalten der Stromversorgung die ersten LEDs weiß. Aber wie gesagt, über 30-50 LEDs komme ich nicht hinaus, dabei sollten sich bei 5m ja 160 LEDs im Stripe befinden.

    Weiß jemand weiter?

    Antworten
    • Felix am 23. Januar 2017 0:51

      Dass die LEDs auch ohne externe Spannung leuchten ist normal, da der Pi einige auch selbst versorgen kann.
      Du könntest mal versuchen die Spannung an dem Punkt zu messen, ab dem die LEDs nicht mehr leuchten.

      Antworten
    • Lars am 29. Januar 2017 16:08

      Nein, es verhält sich genau andersrum: Der Pi war noch nicht angeschlossen, trotzdem leuchteten einige. Aber gut, alles in allem bin ich recht ratlos. Ich könnte die Spannung zwar dort mesen, wo nichts mehr leuchtet, aber ich wüsste grad nicht welchen Kenntnisgewinn mir das bringt. Wenn das Netzteil zu schwach ist – wäre dann dort trotzdem Spannung?

      Das Netzteil liefert 50W, also 5V und 10A. Könnte es sein, dass es einfach zu schwach ist?

      Antworten
    • Lars am 4. Februar 2017 15:29

      Okay, kurze Zwischenmeldung: Es geht jetzt alles! Ich hatte – keine Ahnung warum – den PIN 6 vom Pi (Gnd) tatsächlich auch an Ground/Masse vom Netzteil angeschlossen. Er muss aber, wie oben beschrieben, an den V- angeschlossen werden. Entgegen landläufiger Meinung ist Minus und Masse nicht das gleiche. Weiß ich alles und habs trotzdem falsch gemacht 😀

      Es läuft super 🙂

      Antworten
  38. Andreas am 9. Februar 2017 8:27

    Herzlichen Dank für dein ausgezeichnetes Tutorial.

    Ich hätte folgende Verständnisfrage:
    Was ist der Grund für die doppelte Verbindung zum Minuspol des Netzteils?
    Die Verbindung LED-Leiste / Netzteil verstehe ich sofort – die Versorgungsspannung muss fließen können.
    Beim Raspbi ist mir die Sache unklar. Kann da jemand Licht ins Dunkel bringen?

    Dann noch folgende Anregung für Neulinge wie mich: Mir hätte es geholgen, wenn noch deutlicher darauf hingewiesen würde, welche PINs mit 19 und 23 gemeint sind. Ich verwende ein Breakout-Board und habe erst die GPIO Pins, die mit 19 und 23 gelabelt sind, verbunden – mit wenig Erfolg…

    Antworten
    • Felix am 9. Februar 2017 19:26

      Hallo Andreas,
      vom Netzteil kommt positive Spannung, allerdings muss der Kreislauf geschlossen sein (daher GND Anschluss ans Netzteil). Mit dem Pi sendest du Signale per SPI (was auch Spannung ist) und dieser Kreislauf muss auch geschlossen sein – daher wird GND auch an den Pi angeschlossen.
      bzgl der Nummerierung: Damit es zu keinen Verwechslungen kommt habe ich ja extra das Schaubild eingefügt.
      LG, Felix

      Antworten
    • Andreas am 10. Februar 2017 8:23

      …ich hätte noch schreiben sollen, dass das Netzteil bei mir auch den Pi versorgt – bei dieser Konstellation müsste die GND Verbindung m.E. nach redundant sein. (Der Pi hat dann ja kein anderes Bezugspotential gegen das die Spannung auf dem SPI gemessen werden könnte.)
      Werde das mal austesten.

      Antworten
    • Andreas am 11. Februar 2017 17:19

      Also mit meinem Setup (Pi und LEDs hängen am gleichen Netzteil) funktioniert es auch ohne die (in diesem Fall wohl redundante) Verbindung des GND Pins zum Netzteil-Minuspol.

      Antworten
  39. Flo B am 16. Februar 2017 21:37

    Hallo Leute,
    Ich versuche schon seit längerem die ws2801 über meinen Pi anzusteuern.Leider ohne Erfolg. Soweit alles richtig verbunden. Mit meinem Arduino funktioniert dies auch einwandfrei.
    Nun hab ich bemerkt, dass am Pi am Pin MOSI und CLK von Grund aus schon ein kleines Rauschen oben liegt. Das hab ich mit einen buzzer und einer normalen LED festgestellt 😀

    Kennt jemand dieses Phänomen? Oder hat jemand einen Ratschlag für mich? Wäre überaus dankbar!

    Antworten
  40. Markus am 6. März 2017 9:43

    Hallo.
    Ich absoluter Neuling was den Raspberry angeht.
    Ich habe vor einen Raum mit 12 meter WS2801 LED strips auszustatten und wollte fragen ob und wie mann die in reihe schalten kann.
    Ich möchte die möglichkeit haben das Die erste Led angeht und dann die zweite usw.
    So eine art Lauflicht .
    Vielen Dank im voraus

    Antworten
    • Felix am 6. März 2017 9:51

      Hallo Markus,
      ja, das geht. Schau dir mal das Video an, darin habe ich auch die einzelnen LEDs gesetzt. Bei 12m solltest du aber auf eine ausreichend hohe Stromversorgung achten.
      LG, Felix

      Antworten
  41. Michael am 6. März 2017 14:25

    Hallo und danke für das Tutorial 🙂 SPI ist absolutes Neuland für mich…

    Sehe ich das richtig, beim „hintereinanderschalten“ mehrerer LED-Strips einfach die Strips verbinden, und die eingebaute Logik kümmert sich darum, dass die LEDs passend hochgezählt werden? (also bei erster 5m 160LED-Strip, danach noch ein 160LED-Strip und dort beginnt es „automatisch“ bei nummer 161?)

    Ist es dabei evtl. angebracht, die Stromversorgung zum zweiten Strip extra heranzuführen? Also CK, SI und GND der beiden Strips zu verbinden, und zusätzlich +5V und GND heranzuführen? Ich hätte da etwas bedenken, die 20+ A, welche 10m benötigen, durch die dünnen Leitungen im Strip zu jagen….

    Wie ist das mit parallelschalten zweier Strips? Geht das einfach oder muss man da mit zusätzlicher Logik und CS0/CS1 am Raspi arbeiten?

    Antworten
    • Felix am 6. März 2017 14:30

      Ja, die Anzahl gibst du ja im Skript an (zweiter Streifen beginnt dann bei 151). Du kannst an den ersten Streifen ein Netzteil anschließen (VCC und GND) und dan den zweiten ebenfalls. CK, SI und GND müssen aber von beiden Streifen verbunden sein.
      Parallel schalten wäre auch möglich, aber wie du richtig sagtest, müsstest du dafür einen anderen Chipselect verwenden (wovon der Pi nur zwei hat).
      PS: Meiner Erfahrung nach brauchen die LEDs unter normaler Auslastung keine 60mA. DU kannst also auch erst einmal ein Netzteil testen und schauen wie weit du damit kommst.

      Antworten
    • Michael am 6. März 2017 15:55

      Hallo Felix, danke für die schnelle Antwort. Mir ging es eigendlich nicht um mehrere Netzteile, ich hatte eher bedenken dass der dünne Querschnitt der Leitungen auf dem Strip zu warm wird bei dem Strom den 2 oder 3x5m ziehen. Daher halt jeden strip separat versorgen mit entsprechend dimensionierten Kabeln. Vom selben, ausreichend dimensionierten Netzteil.

      Hast du evtl. ein Beispiel für eine Parallelschaltung? Du nutzt ja CS0/CS1 gar nicht…. Zwei Stränge würden mir schon reichen, licht links und rechts vom Pi 🙂

      Michael

      Antworten
      • Felix am 6. März 2017 16:45

        Ich verstehe deine Bedenken. Mein Streifen hatte am Anfang die 4 Pins und nochmal zusätzlich zwei Kabel für eine externe Stromversorgung. Du kannst also quasi jeden Streifen mit eigenem Netzteil versorgen und eben nur die Datenpins sowie GND der beiden Streifen verbinden.

    • Michael am 7. März 2017 10:34

      Hallo,

      zum Thema parallel … hab dazu folgendes im example zu adafruit gefunden:
      # The WS2801 library makes use of the BCM pin numbering scheme. See the README.md for details.
      # Specify a software SPI connection for Raspberry Pi on the following pins:
      PIXEL_CLOCK = 18
      PIXEL_DOUT = 23
      pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, clk=PIXEL_CLOCK, do=PIXEL_DOUT)

      … es scheint also, als ob man fast beliebige GPIO Pins als SPI-Schnittstellen nutzen kann… fragt sich nur wie stabil das läuft, wenn alles per Software emuliert wird …. Hat da jemand schon Erfahrungen damit?

      Antworten
      • Felix am 7. März 2017 13:11

        Ich hatte das anfangs mit beliebigen GPIOs ausprobiert, jedoch hat es per SPI wesentlich besser geklappt.

      • Sebastian am 5. Februar 2018 16:30

        Zu dem Thema SPI Chipselect hätte ich dann auch mal eine Frage. Meines Wissens hat der Pi SCLK, MOSI MISO, CS0 und CS1 davon können MOSI und MISO genutzt werden. Siehe: netzmafia.de/skripten/hardware/RasPi/RasPi_SPI.html

        Ich würde ja gerne 2-4 Stripes anschließen und pro python Datei separat ansprechen bzw. via Parameter. Mit 2 Stripes, jeweils via MISO und MOSI und parallel an SCLK sollte es jedenfalls funktionieren, richtig?

  42. Andreas am 11. März 2017 15:28

    Hallo,
    ich bin zufällig auf deinen Blog gestoßen. Ich habe ein Netzteil und ein LED Band WS2801. Wenn ich mich korrekt informiert habe sollte nur die 1. LED leuchten und keine weitere. Allerdings leuchtet das Led Band von Anfang an kunterbunt und komplett willkürlich. Ich bin etwas ratlos, da ich es auch nicht ansteuern kann. Es zeigt keinerlei Reaktion auf die Data und Clock Eingänge, die mit dem Pi und der Software Hypercon verbunden sind. Das lässt darauf schließen dass das Band von anfang defekt war, oder mache ich etwas falsch?!

    Kennst Du das Fehlerbild?

    Danke für deine Hilfe
    Gruß, Andreas

    Antworten
    • Felix am 11. März 2017 15:32

      Dieses Tutorial ist nicht für Verwendung mit Hypercon gedacht, dafür kannst du eher jenes verwenden. Ansonsten solltest du dir natürlich sicher sein, dass es ein WS2801 Strip ist und kein WS2812 o.ä.
      Dass anfangs nur eine LED leuchtet ist nicht festgeschrieben: Nachdem der Strom verbunden wird, leuchten zufällig irgendwelche LEDs, aufgrund des kurzen Signals. Durch Ansteuerung mit dem Pi kannst du dies verfeinern.
      LG, Felix

      Antworten
  43. Andreas am 12. März 2017 14:57

    Danke für deine schnelle Antwort (über die ich allerdings per Mail nicht informiert wurde). Mir geht es nicht um das Tutorial, sondern darum, ob der Streifen defekt ist. Ich hatte ihn am Raspberry angeschlossen, aber er reagiert nicht… trotzdem werde ich dein verzinktes Tutorial testen!

    Antworten
  44. Andreas am 12. März 2017 14:58

    s/verzinktes/verlinktes/ … mistige Rechtschreibkorrektur 😉

    Antworten
  45. Toto am 16. März 2017 19:29

    Würde gerne das ganze auch noch Musikgesteuert abstimmen, hast du sowas schon mal gemacht oder ist das geplant?

    Antworten
    • Felix am 16. März 2017 19:31

      Geplant ist es nicht, aber könnte ich mir durchaus vorstellen. Da es allerdings so viele Töne / Tonlagen gibt, ist es schwer sich auf etwas festzulegen (Bass z.B.)

      Antworten
  46. Michael am 17. März 2017 11:20

    Hallo Felix,

    ich habe einen LED Stripe APA 102C, der ähnlich wie der WS2801 funktionieren sollte. Welche Anpassungen sind in obigem Text nötig? Gibt es eine Adafruit PIP?
    Es wird häufig folgende Seite verlinkt: https://github.com/tinue/APA102_Pi

    Leider komme ich nicht weiter. Eine Hilfe wäre super!
    Danke

    Antworten
    • Felix am 17. März 2017 11:38

      Tut mir leid, den APA102 habe ich noch nicht getestet 🙁

      Antworten
      • Michael am 17. März 2017 16:16

        Trotzdem eine Idee, die ich mal versuchen könnte?

    • Felix am 16. Februar 2018 23:39

      Hab das Ding nun da. Tutorial kommt bald!

      Antworten
  47. Lucas am 22. März 2017 18:48

    Hallo,
    Ich habe den LED Streifen richtig angeschlossen und den Programmtext kopiert und bei idle 3 eingefügt. Auch die Bibliothek habe ich heruntergeladen. Den spi habe ich auch aktiviert aber es funktioniert einfach nicht!

    Antworten
  48. Lexycon am 25. März 2017 1:13

    Hab eine Android App zusammengebastelt, falls es einer gebrauchen kann:

    https://github.com/Lexycon/android-ws2801

    Antworten
    • Felix am 25. März 2017 1:17

      Hi Lexycon,
      ziemlich cool, danke fürs teilen 🙂 Ich hatte dazu noch eine Idee (und schon etwas umgesetzt), falls du Lust hast und es dir nichts aus macht würde ich dir mal eine Mail dazu schreiben.
      LG, Felix

      Antworten
      • Lexycon am 25. März 2017 1:26

        Sehr gerne 🙂

  49. Björn am 28. März 2017 18:59

    hi leute,
    brauch echt ml hilfe sitze nun schon etwas über eine woche drann und komm nicht mehr klar.
    habe furchtbare störsignale drauf die ich nicht weg bekomme eintag geht es und denn machen die leds wieder was sie wollen fals relevant hier die zusammenstellung : rpi b+ , ws2801 auf 5m, und schaltnetzteil 5v 40a,…… hoffe kann mir einer helfen oder tips geben wie ich das entlich sauber hinbekomme

    Antworten
    • Lars am 31. März 2017 1:10

      Hey Björn,

      das klingt für mich, als hättest du die Masse nicht oder nicht richtig angeschlossen. Das ist tatsächlich ziemlich gut nachvollziehbar: Fehlt Masse, dann machen die LEDs Party, egal was du versuchst. Du musst den Pi an den Masse-Anschluss (GND) des Schaltnetzteils anschließen. Der Pi hat mehrere PINs die auf Masse gehen; ich habe dafür (ebenfalls Pi B+) den PIN 25 genommen (PI vor dir halten, SD-Karte nach oben, dann der Pin ganz unten links). Direkt darüber kommt SCLK, der PIN darüber bleibt frei, und direkt darüber kommt MOSI. So hast du auch alle Leitungen dicht beieinander.

      Gruß
      Lars

      Antworten
      • björn am 1. April 2017 20:11

        hy lars,
        danke für deine antwort aber ich nun das problem gefunden
        alles sollte man bei dem chinesen seines vertrauns nicht kaufen es ist definitiv das netzteil
        habe aus test zwecken ein altes von tab mal zweck entfremdet, das hat 5v 2,5a 🙂
        muss sagen das geht sogar alle farben klar, nur beim weiss wird es denn echt lustig der letzte meter geht ins rosa

  50. Lars am 31. März 2017 1:24

    Kurze Zusammenfassung meiner Erfahrungen:

    * Alle LEDS flackern ständig wie wild auf, lassen sich kaum sinnvoll ansteuern: Masse Anschluss überprüfen

    * Es funktioniert, aber hin und wieder blinken einzelne LEDs mittendrin: Ggf. stärkeres Netzteil besorgen, ich hab 5m WS2801 Stripes und hatte anfangs ein Meanwell 50W Netzteil. Rein rechnerisch hätte das reichen müssen. Ich hab es dann durch ein 100W Netzteil ersetzt, seither ist das Problem weg.

    * Starkes Flackern, bei dem ganze Bereiche des Stripes oder sogar alle LEDs grell aufleuchten und dann wieder ihre Ursprungsfarbe annehmen: Das war tricky! Es wirkte auf mich, als wären das Störungen, die von anderen Geräten ausgingen (trat besonders auf, wenn der TV eingeschaltet war). Vielleicht waren es auch Netzstörungen oder -schwankungen. Lösung: Ich hatte SCLK und MOSI mit einfachen Jumperkabeln angeschlossen. Ich habe sie kürzlich durch dickere Kabel ersetzt, 1.5mm2 also normales Kabel aus Kupferlitzen (Stromkabel wie z. B. bei einer Verlängerung). Die Jumperkabel dürften höchsten 0.5mm2 Durchmesser gehabt haben. Seither nicht eine Störung mehr. Mehr Durchmesser verringert den Widerstand, macht das Signal unanfälliger gegen Störungen. Ich kann nur empfehlen, direkt 1,5mm Leitungen zu verwenden.

    Antworten
  51. Jonathan am 5. April 2017 18:24

    Hallo Leute,
    ich bekomme seit zwei Wochen immer eine Fehler Meldung:
    Traceback (most recent call last);
    File “ /home/pi /lichterkette.py“, line 6, in
    import Adafruit_WS2801
    ImportError: No module named ‚Adafruit_Was2801‘

    Ich hab keine Ahnung mehr was ich noch machen kann

    Antworten
    • björn am 6. April 2017 19:01

      hatte ich zum anfang auch
      nach ein paarmal alles zu überprüfen habe ich ein blankes jessy genohmen und alles noch mal eingerichtet nun geht es soweit also kann dir nicht wirklich sagen worann es legen kann.
      geupdatet das ganze vorher ??

      Antworten
      • Jonathan Groß am 7. April 2017 21:11

        was ist ein blankes jessy ??
        ich hab mein raspberry neu installiert und deswegen das neuste update

  52. Toto am 16. April 2017 16:47

    Hier mal von mir ein Lauflicht wie das von Knightrider

    def lauflicht(pixels, color=(255,0,0), times=(5)):
        pos = 0
        for i in range(times):
            for j in range(-6, pixels.count(), 1):
                for l, f in enumerate([1./5, 1./2, 1., 1./2, 1./5]):
                    if 0 <= j+l < pixels.count(): pixels.set_pixel(j+l, Adafruit_WS2801.RGB_to_color( int(f * color[0]), color[1], color[2] ))
                if 0 <= j < pixels.count():
                    pixels.set_pixel(j, Adafruit_WS2801.RGB_to_color( 0,0,0 ))
                pixels.show()
                time.sleep(0.03)
            for k in range(pixels.count() -1, -6, -1):
                for l, f in enumerate([1./5, 1./2, 1., 1./2, 1./5]):
                    if 0 <= k+l < pixels.count(): pixels.set_pixel(k+l, Adafruit_WS2801.RGB_to_color( int(f * color[0]), color[1], color[2] ))
                if 0 <= k + 5 < pixels.count():
                    pixels.set_pixel(k+5, Adafruit_WS2801.RGB_to_color( 0,0,0 ))
                pixels.show()
                time.sleep(0.03)
        pixels.clear()
        pixels.show()
    Antworten
    • Toto am 16. April 2017 16:48

      oh das war nicht so schön, admin kannst du das Editieren? 😀

      Antworten
  53. KD am 18. April 2017 18:55

    Super Tutorial!
    Ich habe vor, verschiedene Verteilfächer (z.B. für Post) oder Warenfächer ( mit Material) mit einer Spracheingabe anzusteuern. Für die Spracheingabe stelle ich mir raspberrypi-tutorials.de/software/raspberry-pi-sprachsteuerung-mit-der-piauisuite.html vor.
    Stelle Dir eine Verteil- oder Materialwand mit 15 * 6 Fächern vor. Geübte Verteiler wissen, wo das entsprechende Fach ist. Für Ungeübte soll die Spracheingabe helfen. Sie geben als Sprachbefehl ein, welches einzelne Fach (Bestellnummer, Ziffer für Empfänger etc.) aufleuchten soll.
    Leider weiß ich noch nicht, wann ich das realisieren kann, da es u.U. auch sehr zeitaufwändig ist. Aber auf Grund Deines Tuts ist es auf jeden Fall realisierbar. Da immer nur 1 bzw. zwei LEDs (dazwischen liegt das Fach) aufleuchten, kann die Spannung kein Problem sein. Ich benötige nur entsprechend lange Streifen.

    Antworten
  54. Jonathan am 19. April 2017 16:52

    Hallo Leute,
    ich bekomme seit zwei Wochen immer eine Fehler Meldung:
    Traceback (most recent call last);
    File “ /home/pi /lichterkette.py“, line 6, in
    import Adafruit_WS2801
    ImportError: No module named ‚Adafruit_Was2801‘
    Ich hab keine Ahnung mehr was ich noch machen kann.
    Hab es neulich schon gefragt aber keine richtige Antwort bekommen

    Antworten
    • Toto am 20. April 2017 17:38

      Schreibfehler evtl? in deiner Fehlermeldung steht Was2801 ?

      import Adafruit_WS2801

      Antworten
    • Holger am 23. April 2017 23:57

      Welche Python – Version verwendest Du?
      Die 3.x findet
      import Adafruit_WS2801
      import Adafruit_GPIO.SPI as SPI
      nicht.
      Mit einer 2.x Version läuft es.

      Antworten
      • Felix am 24. April 2017 1:22

        Habt ihr es auch mit pip für Python3 installiert?

      • Holger am 24. April 2017 10:08

        Hallo Felix,
        danke für die schnelle Reaktion.
        Auf meinem Pi ist Python 2.7 und Python 3.4 installiert und pip für Python und pip für Python3.
        Die Import – Anweisungen liefen nur mit der Python 2.x Version.

        Dein Tipp hat mir geholfen
        Mit der Anweisung
        sudo pip install adafruit-ws2801
        wird nur die Bibliotek für Python 2.x instaliert.

        Für Python 3.x ist eine Abänderung der Anweisung in
        sudo pip3 install adafruit-ws2801
        erforderlich.

  55. Toto am 21. April 2017 23:44

    ich hab dich mal in die Beschreibung gesetzt. Danke für die Inspiration.

    Antworten
    • Felix am 22. April 2017 0:43

      Schaut cool aus 🙂 Damit kann man sicher einige gute Party Effekte bauen

      Antworten
    • Pavloo am 18. November 2017 19:31

      Hast du mir deinen script dafür ? Wäre dir sehr dankbar 🙂

      Antworten
  56. agoricsub am 2. Mai 2017 2:51

    Hey dnake sehr für diesen guide. ich baue mir eine leinwand mit 10m led beleuchtung. ist da bei dem script nur die anzahl der led zu verändern ( bei mir wären es 1m / 36led ) und noch eine frage gibt es irgendwo andere vorgefertigte scripts die mir bei einer eigenen lichgestaltung helfen könnten ? danke sehr für jede hilfe

    Antworten
    • Felix am 2. Mai 2017 19:42

      Du musst die Gesamtanzahl der LEDs anpassen. Ein paar User haben ihren Beispielcode verlinkt.

      Antworten
      • Marcus mit c am 9. Oktober 2017 11:55

        Hallo Felix

        ich möchte zwei LED Stripes WS2801 (jeweils 3m) als Ambilight in Reihe betreiben. Nach Konfiguration mittels HyperCon wird jedoch am zweiten Stripe nur die allererste LED mit angesteuert (Testansteuerung über SSH- Farbrad). Auch beim Einschalten wird die Regenbogensimulation nur bis zur ersten LED des zweiten Streifen übertragen. Tausche die Reihenfolge der Stripes, selbes Ergebnis (sollten also beide funktionieren). Ich hoffe du kannst mir helfen 🙂

      • Felix am 9. Oktober 2017 19:05

        Sind es baugleiche Streifen? Passt die Stromversorgung?

      • Marcus mit c am 9. Oktober 2017 20:45

        Habe beide Stripes zusammen bestellt und geliefert bekommen.
        Netzteil 12 A @ 5 V (5 V werden auch ausgegeben). Habe als Test noch zusätzlich zum Anfang in der Mitte und am Ende eingespeist…Resultat bleibt das Selbe :/

      • Felix am 9. Oktober 2017 22:17

        Haben die Dinger einen Clip-Anschluss? Wenn ja, versuch die Datenleitungen doch mal direkt zu verlöten. Die Farben der Kabel sind oft falsch, wie ich gesehen habe.

  57. Tommygun am 5. Mai 2017 11:10

    Hallo und noch einmal Danke fürs tolle Tutorial. Ich würde mich an die Umsetzung heranwagen und es sollte auch funktionieren, so gut wie alles erklärt ist. Allerdings würde ich ein Schritt (oder mehrere) weitergehen.
    Bei meinem Projekt handelt es sich um eine Beleuchtung von Computerdeskcase. Dazu hätte ich die Frage, ob man den Pi (in meinem Fall ein Pi 2 Model B 1Gb) mit Daten vom PC einspeisen kann, und anhand von den Daten die LED gesteuert werden. Genauer gesagt Temperatur, Auslastung etc.
    Ich war dran am
    https://www.aquacomputer.de/newsreader/items/farbwerk—jetzt-wird-es-bunt.html
    nur so wie ich es verstehe, kann er „nur“ normale RGB LEDs steuern.
    Mein Mainboard hat auch RGB Header und eigentlich auch relativ gute Software (Asus Aura) aber momentan ist es deinstalliert, da es Probleme bei Arbeitsspeicher verursachen soll. Und auch „nur“ normale LEDs.
    Mit den 2801s stelle ich das mir aber viel cooler vor 🙂

    Also daher nochmal die Frage – ist es realisierbar? Ich scheue kein Aufwand, deswegen kein Problem auch wenn es nicht so einfach geht. Es iteressiert mich , ob es überhaupt geht.

    Danke für jede Antwort im Voraus.

    Antworten
    • Felix am 5. Mai 2017 11:17

      Eine Möglichkeit wäre z.B. diese:
      – setze auf dem Pi einen Server (bspw. Node.JS) auf.
      – Schreibe ein Skript, welchem du Daten senden kannst (Informationen zum PC).
      – Damit steuerst du anschließend den WS2801 Streifen. Du kannst z.B. das Python Skript in dieser Form aufrufen oder auch weitere Parameter hinzufügen / übergeben.
      – Auf dem PC hast du ebenfalls ein Skript, welches die Daten an die Schnittstelle des Pi’s sendet (du kannst hier ebenfalls ein Pythonskript schreiben und dies in den Autostart von Windows schmeißen, welches dann jeweils X Minuten wartet und erneut Daten sendet).

      Antworten
  58. Lars am 11. Mai 2017 13:15

    Ersteinmal vielen Dank für die tolle Anleitung, echt klasse!

    Hinweis: Den Text unter dem Netzstecker würde ich aber dringend ändern:
    Du schreibst etwas von einem 10A Stromstecker. Das ist völlig übertrieben, da der 5 Meter Strip ja nur 10A bei 5V braucht. Also grob über den Daumen gepeilt 10A x 5Volt = 60Watt.
    Bei 220V sind 60Watt nur 60Watt/220V = 0,27A also selbst mit Netzteilverlusten usw. weit weit weg von den 10A, die im Umkehrschluss 10A*220V = 2200Watt wären.

    2200Watt LED Strip am Raspberry wäre echt geil. ;-D

    Antworten
    • Felix am 11. Mai 2017 13:40

      Ich verstehe nicht so recht, was du sagen willst. Was hat das mit der 220V Wechselspannung (AC) der Steckdose zu tun? Die 10A bei 5V Gleichstrom (DC) sind nur der Maximalwert, den das Netzteil liefern kann. Im Extremfall also 5V*10A = 50Watt, was für 5m LED Strip bei voller Leistung ausreicht.

      Antworten
      • Lars am 24. Mai 2017 10:29

        Ich meinte nur das Bild bei dem du geschrieben hast „Achte darauf, dass das Netzkabel auch 10A verträgt.“ – 10A für das Netzkabel (220V) sind ja nicht nötig.
        Aber nicht so wild, ansonsten super Anleitung! Danke.

      • Max am 30. September 2017 23:43

        Vorgabe DIN-VDE 😉

  59. Lars am 11. Mai 2017 13:18

    LOL, jetzt hab ich selbst driss gemacht… 10×5 is natrülich 50 😉 … aber dafür hab ich ja „grob über den Daumen gepeilt“ gesagt.

    Antworten
  60. Lars am 24. Mai 2017 10:34

    Hallo Leute, ich habe derweil alles zum Laufen bekommen.
    Aber komme bei einem für mein Projekt wichtigen Schritt nicht weiter.

    Projekt: „LED Strip auf Musik (LineIn der USB Soundkarte) reagieren lassen“

    Es gibt diverse Anleitungen im Netz, aber ich finde irgendwie nix für den WS2801 LED Strip und wie ich diesen auf Musik reagieren lassen kann.
    Kann mir vielleicht jemand nen Tipp geben wo ich noch suchen kann, oder gar entsprechende Anleitungen verlinken?
    Danke

    Antworten
    • Felix am 24. Mai 2017 19:43

      Naja, kommt drauf an auf was du reagieren lassen willst (Bass, Lautstärke, etc.). Du müsstest den Sound mit einem Programm auslesen und dann den Strip (in belieber Weise) leuchten lassen.

      Antworten
  61. SImon am 2. Juni 2017 13:07

    ich habe diese 10 mt/los 36 LEDs 12ic/m SMD5050 WS2801 LED Pixel Streifen traum Farbe DC 12 V IP67 rohr Wasserdichte RGB LED band licht……… dennoch sagt er mir immer wieder adafruit ws2801 wäre nicht instaliert.. mh ich hab jetzt grade die sd nochmal formatiert und gehe deine stepps nochmal ganz genau durch. die led sind aber funktiontüchtig oder? habe hier nämlich gelsen 12V wären kein ws2801 dennoch steh bei meinem 12v, gnd, di ,ci anschlüsse drauf– danke schonmla und versuche es nochmal

    Antworten
    • Felix am 2. Juni 2017 13:10

      Mir ist kein WS2801 bekannt, der mit 12V arbeitet. De WS2801 Streifen haben auch normalerweise nur 32 LEDs pro Meter. Hat der Verkäufer vielleicht falsche Angaben gemacht? Du kannst es ja nochmal mit den im Tutorial Verlinkten probieren.

      Antworten
  62. SImon am 2. Juni 2017 14:21

    sind diese nicht verwendbar? 10 mt/los 36 LEDs 12ic/m SMD5050 WS2801 LED Pixel Streifen traum Farbe DC 12 V IP67 rohr Wasserdichte RGB LED band licht — versuch das script zu starten es sagt mir aber dass adafruit_ws2801 module nicht vorhanden sei. außerdem musste ich spi über desktop preferences an machen da unter advanced options keine spi option zu finden war

    Antworten
    • Felix am 2. Juni 2017 18:35

      SPI kann entweder über raspi-config per Terminal oder über den Desktop Modus aktiviert werden. Du musst zunächst die Bibliothek richtig installieren. Entweder per pip oder das Verzeichnis aus Github klonen und manuell installieren.

      Antworten
  63. SImon am 2. Juni 2017 15:05

    also der supplier von ali express meint dass diese ws2801 ic model wären .. ich kann mit vielse abkürzungen wenig anfangen und bin auch noch neu auf dem elktro raspi gebiet … wäre sehr nett wenn du dir evtl zeit nehmen könntest habe 80$ investiert 🙂

    Antworten
  64. Felix B. am 2. Juni 2017 23:30

    Ich würde gerne den Streifen in einer Farbe leuchten lassen zum Beispiel rot, aber ich weiß nicht wie das geht, weiß jemand den Code? Ich bin gerade an meinem Schulprojekt und genau das fehlt mir.
    Vielen Dank im Voraus

    Antworten
    • Felix am 2. Juni 2017 23:34

      Das ist im Beispielcode doch vorhanden. Einfach allen LEDs die gleiche RGB Farbe zuweisen (siehe Blinken).

      Antworten
      • Felix B. am 3. Juni 2017 12:01

        Danke für den Tipp, ich habe mein Projekt fertig gestellt!

  65. benno am 19. Juni 2017 14:08

    hey sagmal wie würde da funktionieren wenn ich alle led einfach in einer farbe leuchten lassen will … und evtl einen abschnitt in einer anderen danke für die hilfe

    Antworten
    • Felix am 19. Juni 2017 14:12

      Das ist doch im Beispielcode vorhanden. Einfach alle LEDs auf die erste Farbe setzen und die einzelne LED auf die zweite Farbe.

      Antworten
  66. benno am 19. Juni 2017 14:35

    sry ich vestehe ich nicht ganz wäre es dann
    — def set_pixel_rgb(self, n, r, g, b)?

    Antworten
    • Felix am 19. Juni 2017 14:36

      Ja das ist die Funktion der du die Position und RGB Werte übergibst.

      Antworten
  67. Benno am 21. Juni 2017 10:49

    könntest du mir evelt ein bsp geben? .. sry ich versteh es nicht ganz
    – import time
    import RPi.GPIO as GPIO

    import Adafruit_WS2801
    import Adafruit_GPIO.SPI as SPI

    PIXEL_COUNT = 160

    SPI_PORT = 0
    SPI_DEVICE = 0
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
    – muss das vor jedes script? ich möchte alle leds in einer farbe leuchten lassen muss ich dann jede einzelne led ansprechen? wollte diese farbe benutzen rgb(255, 102, 255) –
    Großen dank für deine hilfe und danke für dein toturial es hat mir sehr spaß gemacht.. und vorallem denkt meine frau ich wäre besonders schlau haha 🙂

    Antworten
    • Felix am 21. Juni 2017 12:16

      Du musst in jedem Skript die Variablen deklarieren und definieren.
      In den Funktionen brightness_decrease bzw. blink_color wird jeweils nur eine Farbe für den ganzen Streifen gesetzt. Dies ist super einfach (r,g,b sind die Farbwerte):

      for i in range(pixels.count()):
          pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, g, b ))
      pixels.show()
      Antworten
  68. Benno am 21. Juni 2017 23:56
    import time
    import RPi.GPIO as GPIO
    
    import Adafruit_WS2801
    import Adafruit_GPIO.SPI as SPI
    
    PIXEL_COUNT = 160
    
    SPI_PORT   = 0
    SPI_DEVICE = 0
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
    
    for i in range(pixels.count()):
        pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( (255, 102, 255 ))
    pixels.show()

    ——
    Ist das so dann fertig? dankesehr für deine hilfe es hat mit wirklich spaß gemacht 🙂

    Antworten
    • Felix am 22. Juni 2017 1:32

      Jap, wenn das das einzige ist, was angezeigt werden soll.

      Antworten
      • Rene am 10. Juli 2017 20:42

        Hallo
        ich habe es genauso eingegeben aber ich erhalte die Meldung

        pi@glancr:~ $ python farbe.py
          File "farbe.py", line 15
            pixels.show()

        ^
        SyntaxError: invalid syntax

        was habe ich denn da falsch gemacht?

      • Felix am 10. Juli 2017 21:54

        Ich denke deine Einrückung wird anders sein?

      • Rene am 11. Juli 2017 21:34

        Hallo
        ich habe das script oben eigentlich 1:1 kopiert.
        Die einzige Einrückung ist 4x Leertaste in der vorletzten Zeile.

    • Rene am 11. Juli 2017 21:38

      irgenswie bekomme ich immer den Syntax Error in Zeile 15.
      Eingerückt ist bei mit die vorletzte Zeile mit 4x Space.
      Woran könnte es denn noch liegen?

      Antworten
  69. benno am 22. Juni 2017 20:44

    danke dir und für jeden weiteren effekt einfach dran hängen oder? danke :)) für deine hilfe

    Antworten
    • Felix am 22. Juni 2017 22:33

      Genau und ggf. dazwischen warten (time.sleep) und das ganze in eine Endlosschleife packen.

      Antworten
  70. FF am 23. Juni 2017 23:33

    Hallo,
    kann man auch mehrere RGB Streifen anschließen und als eine Einheit (oder auch als seperate Einheiten) steuern? Reicht es hierzu aus, einfach ein weiteres Netzteil mit GND und V+ am zweiten Netzteil zu verbinden, sowie die CI und DI beider Streifen zu verbinden?

    Gruß

    Antworten
    • Felix am 23. Juni 2017 23:56

      Jap, einfach die Datenleitung am Ende des ersten Streifens an den Anfang der zweiten verbinden und die Gesamtanzahl der LEDs im Sktipt aktualisieren.

      Antworten
  71. benno am 26. Juni 2017 14:04

    hey ich habe nochmal eine frage .. ich hba jetzt mal auf anfragen miener frau seltne lichttöne ausversucht zb. braun… #663300 rgb(102, 51, 0) irgendwie klappt das aber nicht ganz -es leuchtet lila .. sind evtl meine streifne zu schlecht um solche farben abbilden zu können ,danke ? und könntest du mir nochmal das script zeigen wie endloschelifen und dem von dir gemeinten( time sleep )command verläuft danke dir

    Antworten
  72. benno am 26. Juni 2017 14:23

    hey ich bin es nochmal sry … ich hab eine neuen ledstreifen mit 36led/m angeschlossen erläuft mit 12V ansonten die selben clock in data in outputs. aber wenn ich über den Rgb ccolorpicker pink auswähle #ff66cc
    rgb(255, 102, 204) leuchtet es eher in hellblau.. ? kannst du mir bei der einstellung helfen oder was mach ich falsch

    Antworten
    • Felix am 26. Juni 2017 15:58

      Sicher, dass es ein WS2801 Streifen ist?

      Antworten
  73. benno am 26. Juni 2017 16:43

    ja sicher sie funktioneiren ja über adafruit. haben ci und di stecker.. könnten andere les auch leuchten via dem adfruit sceript mit python? mh chipmodel 5050cmd ws2801 sagt der hersteller

    Antworten
  74. Chris am 9. Juli 2017 15:34

    Hallo
    immer wenn ich das script ausführe, kommt folgende Fehlermeldung:
    File „ws2801_example.py“, line 13
    SyntaxError: Non-ASCII character ‚xc2‘ in file ws2801_example.py on line 13, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    Ich habe schon etliche versuche unternommen, das skript zu debugen, leider ohne Erfolg.
    Leider bin ich bis jetzt voll der noob in pyhton und so.

    des weiteren würde ich das Skript gerne nur dann in einer dauerschleife ausführen, wenn ein bestimmter PIN aktiviert ist.
    könntest du mir hierfür ein Beispiel zukommen lassen?
    Hoffe hier kann man was machen, vielen Dank schon mal und super Tut.

    Antworten
    • Felix am 9. Juli 2017 15:47

      Hast du am Skript etwas verändert? Ansonsten schreib Zeile 13 mal 1:1 ab und lösche die alte Zeile. Andernfalls kannst du auch das tun, was in dem Link beschrieben ist.

      Antworten
  75. Chris am 10. Juli 2017 9:42

    Hi Felix,
    die erste fehlermeldung war:
    File „ws2801_example.py“, line 4
    SyntaxError: Non-ASCII character ‚xc2‘ in file ws2801_example.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for Details
    dann habe ich in der ersten Zeile # -*- coding: UTF-8 -*- eingefügt und ein paar Leerzeichen in den Zeilen vor Zeile 13 entfernt und die vorherige Fehlermeldung erschien.
    Ansonsten habe ich deinen CODE 1:1 kopiert.

    Des weiteren, hast du eine idee wie es funktionieren könnte das script per gpio in Dauerschleife zu aktivieren?
    Chris

    Antworten
  76. Pavloo am 11. Juli 2017 12:14

    Giebt es auch ein Programm in der Art wie Hyperion ? Da ich nicht der beste im Programmieren und verstehen bin wie die Programmierungen funktionieren. Da ich gerne 3 Effekte haben will z.B. : Regenbogenwirbel, Fade von 7 Farben und statische Farben ( RGB ) vielen Dank schon mal.

    Antworten
    • Felix am 11. Juli 2017 12:25

      Falls du generelle Probleme bzw. Hilfe zur Einführung in die Programmierung brauchst, kannst du mal hier vorbei schauen. Zu Hyperion habe ich auch bereits ein Tutorial erstellt: Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen

      Antworten
      • Pavloo am 11. Juli 2017 17:15

        Nein ich meine giebt es ein Programm in der Art wie Hyperion. Wo man bestimmte effecte auf einer Benutzeroberfläche erstellen kann und auf den Pi übertragen lässt. Weil ich würde z.B. diesen Regenbogen effect in einer Dauerschleife laufen lassen, ohne die restlichen effecte die bei dir im Video zusehen sind. Und der Code ist für mich unverständlich.

        Ich habe mich auch schon mal mit WS2811b LEDs auseinandergesetzt und das ganze mit Jinx zum laufen gebracht nur leider funktionieren diese Strips nicht auf dem Pi da diese nur eine Datenleitung besitzen deshalb meine ich ob es sowas wie Jinx für den Pie giebt…

      • Felix am 11. Juli 2017 17:22

        Nicht, dass ich wüsste. Geplant war mal ein solches Projekt fürs Smartphone mit Marvin von droid-lernen, aber das kam leider nicht zu stande. Ich hatte mir mal überlegt, ob ich selbst eine App schreibe, die das kann, aber kam aus Zeitgründen bisher nicht dazu.

  77. Rene am 14. Juli 2017 21:08

    Hallo
    leider bekomme ich das mit der einzelnen Farbe nicht hin. Ich habe den Code weiter oben kopiert

    import time
    import RPi.GPIO as GPIO
    
    import Adafruit_WS2801
    import Adafruit_GPIO.SPI as SPI
    
    PIXEL_COUNT = 160
    
    SPI_PORT   = 0
    SPI_DEVICE = 0
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI$
    
    for i in range(pixels.count()):
        pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( (255, 102, 255 ))
    pixels.show()

    und in die Datei farbe.py eingefügt.

    Wenn ich nun die Datei mit python farbe.py starte bekomme ich diese Fehlermeldung:

    pi@glancr:~ $ python farbe.py
      File "farbe.py", line 15
        pixels.show()
             ^
    SyntaxError: invalid syntax

    Woran kann das denn liegen? Mit der Einrückung der Vorletzten Zeile habe ich schon experimentiert aber ohne Erfolg.

    Antworten
    • Felix am 14. Juli 2017 21:15

      Ist der erste Teil der gesamte Code deiner Datei? Dieser sollte nämlich stimmen.

      Antworten
      • Rene Pathe am 16. Juli 2017 13:56

        Ja das und nur das ist in meiner Datei.

  78. Lusti am 25. Juli 2017 10:09

    Hallo! Vielen Dank erstmal für tolle Anleitung!
    Ich habe statt einem externen Netzteil erstmal die 5V vom PI nehmen wollen, also die 5V+ des PIs mit den 5V der LED verknüpft und dann die GNDs miteinander. Den Rest so wie du beschrieben hast.
    Ohne dass ich irgendein Programm starte, leuchten die LEDs in unterschiedlichen Farben auf sobald ich den PI mit der LED verbinde, ein paar LEDs Leuchten überhaupt nicht. Wenn ich dann dein Testprogramm starte ändert sich nichts.
    Hast du vlt ne Ahnung was ich falsch gemacht hab?
    Vielen Dank schonmal!
    LG Lusti

    Antworten
    • Felix am 25. Juli 2017 21:38

      Das erste Verhalten ist normal (da werden „zufällige“ Werte geschrieben). Das zweite, dass nichts leuchtet, klingt danach, dass die Daten nicht richtig übertragen werden.

      Antworten
      • Lusti am 27. Juli 2017 11:58

        Hmm aber es ist alles so angeschlossen wie ich oben beschrieben habe/wie die Anleitung sagt. Kann es daran liegen, dass ich keine externe Stromquelle benutze? (Ich würde aber eigentlich schätzen, dass das nur die Helligkeit runtersetzt)
        Ein paar LEDs leuchten halt auch dunkler als die anderen, aber das liegt an den „zufälligen“ Werten, nehme ich an?
        Oder kennst du ne softwareseitige Möglichkeit zu testen, ob die LEDs vielleicht gar nicht ansprechbar sind? Ich finde im Internet nichts darüber…
        danke nochmal 🙂
        LG Lusti

      • Felix am 27. Juli 2017 12:08

        Du könntest als Test eine LED abschneiden und nur diese ansteuern. Wenn es funktioniert, weißt du, dass es am Strom liegt – wenn nicht, wohl an der Verbindung oder dem Modul selbst.

  79. Lusti am 27. Juli 2017 12:30

    ah! okay dann werde ich das wohl mal versuchen 🙂
    Danke vielmals!

    Antworten
  80. Sobere am 4. August 2017 10:15

    Hallo Felix, danke für die Anleitung.
    Ich hätte da eine Frage, kann ich die Leds direkt mit dem Raspberry Pi verbinden ohne ein Breadboard zu benutzen?

    Antworten
    • Felix am 4. August 2017 10:29

      Ja, natürlich. Das Breadboard ist nur eine Hilfe.

      Antworten
      • Sobere am 4. August 2017 10:31

        Danke

  81. Wimmes am 19. August 2017 18:43

    Ich habe da noch einen Glitzereffekt mit dem das Licht eingeschaltet wird:

    def glitterOn(pixels, colorA = Adafruit_WS2801.RGB_to_color(255,255,255)):
        pico = pixels.count()
        for i in range(pico):
            rdm = [0,0,0,0]
            colorS = [0,0,0,0]
            for j in range(3):
                rdm[j] = random.randint(0, pico-1)
                while pixels.get_pixel(rdm[j]) == colorA:
                    rdm[j] = rdm[j] + 1
                    if rdm[j] >= pico:
                        rdm[j] = 0
                colorS[j] = pixels.get_pixel(rdm[j])
            for j in range (3):
                pixels.set_pixel(rdm[j],colorA)
            pixels.show()
            time.sleep(0.05)
            for j in range (1,3):
                if rdm[0]  rdm[j]:
                    pixels.set_pixel(rdm[j],colorS[j])
            pixels.show()
        time.sleep(5)
    Antworten
    • Kay am 30. November 2017 18:05

      Ganz coole Sache Wimmes. 🙂 Sieht toll aus.

      Antworten
  82. sobere am 29. August 2017 10:55

    Hallo danke für die Anleitung!
    ich habe mir 5 led streifen jeweils 5m.
    wie kann ich die led streifen miteinander verbinden und ansteueren. was brauche ich dafür alles?
    Danke
    Lg

    Antworten
    • Felix am 13. September 2017 20:09

      Das Ende eines Streifens entsprechend an den Anfang des anderes Streifen verbinden (jeweils passende Anschlüsse). Außerdem muss die Stromversorgung ausreichend sein.

      Antworten
  83. Flummi am 20. September 2017 8:08

    Hallo
    Ich hätte auch mal eine Frage:
    Ist es möglich zwischen zwei bestimmten Farben einen fließenden Übergang zu schaffen?
    Wenn zB die derzeitige Farbe (255,100,0) ist und ich diese zu (100,150,0) wechseln möchte.

    Hab das ganze mit einer While Schleife versucht, welche SOLL und IST Farbe mit != abfrägt
    in der Schleife hab ich Verzweigungen, welche den jeweiligen Wert für zB „r“ je entweder erhöht oder erniedrigt.
    Anschließend ändere ich noch in der While Schleife die Farbe

    Das sollte solange laufen bis SOLL == IST farbe ist.

    Leider blinken aber hier die LEDs willkürlich…

    Was mach ich falsch?

    Antworten
    • Felix am 20. September 2017 9:15

      So etwas in der Art:

      r, g, b = 255, 100, 0
      r_new, g_new, b_new = 100, 150, 0
      step = 1
      
      while r != r_new and g != g_new and b != b_new :
          if r > r_new:
              r -= step
          elif r  g_new:
              g -= step
          elif g  b_new:
              b -= step
          elif b < b_new:
              b += step
      
          # Strip aktualisieren, Farben setzen etc
          # ....
      Antworten
      • Flummi am 20. September 2017 11:28

        Genau so hab ichs…
        Hab insgesamt 6 verzweigungen, jeweils 1 für wert erhöhen bzw erniedrigen für jede farbe

        Anfangs sieht die Funktion auch nicht so schlecht aus mit dem fließernden Übergang, aber dann blinkt alles willkürlich

      • Felix am 21. September 2017 10:46

        Setz am Ende jeweils ein sleep() und logge dir die Farben (mit print).

  84. Edo Raketic am 22. Oktober 2017 16:45

    Hallo Felix, vielen Dank für deine Anleitung. Ich bin neu in dem Raspberry gebiet und beschäftige mich erst seit kurzem mit dem Thema.
    Ich möchte gerne die WS2801 über die Homebridge laufen lassen. Leider finde ich zu dem thema nichts im Internet.
    Bzw. ich möchte ich : “ Siri einen Befehl geben: z.b Schalte LED´S im Wohnzimmer ein“.
    Dazu sollen beim anmachen die Led´s: im Lauflicht aufleuchten ( in blau) und nach dem alle dauerhaft Leuchten soll die farbe auf weiß wechseln und ggf. abdimmen…
    Kannst du mir dazu Tipps geben ?
    Mit freundlichen Grüßen

    Antworten
  85. Daniel Schmitt am 1. November 2017 21:39

    Bekomme folgende Fehlermeldung:
    pi@pi:~ $ python ws2801_example.py
    File „ws2801_example.py“, line 4
    SyntaxError: Non-ASCII character ‚xc2‘ in file ws2801_example.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    Antworten
  86. Andre am 5. November 2017 19:15

    @ wimmes
    dein Script scheint ein Fehler zu haben denn ich bekomme ein Syntax Fehler bei:

    for j in range (1,3):
                if rdm[0]  rdm[j]:

    ….gibt es irgendwo eine Auflistung der Befehle ???

    Antworten
  87. Kay am 12. November 2017 10:09

    Hi, ich habe ein sehr ähnliches Netzteil (auf 5V und 6A) auf einem 32 LED (1m) Streifen angebracht. Aktuell wollte ich es nur testen. Die Schaltung habe ich wie in der Fritzing Schaltung aufgebaut.

    Als ich es startete, qualmten sofort die LED los und ich habe es sofort ausgeschaltet und überlege jetzt was ich falsch gemacht haben könnte. Es kam mir vor als ob ich tierisch zu viel Amps reingejagt habe, überlege aber warum es so sein sollte. Die Messungen am Netzteil zeigen 5V an. Einstellungen sind zwischen 4,5V und 5,5V möglich. auf 4,9 ist es aktuell eingestellt.

    Wie ich jetzt weitermachen soll ist jetzt meine Frage. Bevor ich es wieder anschließe will ich ausschließen das ich irgendwas mache, um den LED Streifen zu bricken (falls nicht bereits geschehen).

    Antworten
    • Felix am 12. November 2017 10:56

      „Zu viel Ampere reinjagen“ geht nicht – die Angabe ist nur dazu da, damit du weißt, was maximal geht. Braucht dein Gerät nur 0.5A, so werden nur 0.5 genutzt.
      Anders sieht dies bei der Spannung aus. Kann aber auch sein, dass du VCC/GND vertauscht hast. Um nicht den ganzen LED Strip in Gefahr zu bringen würde ich ggf. eine LED abschneiden und es mit dieser testen.

      Antworten
      • Kay am 30. November 2017 18:02

        Hallo Felix, ich denke das ist mir passiert. Es waren halt nur ein paar Millisekunden und das Kabel qualmte und damit den Ampere war eher ein Verzweifelungsgedanke als E-Technik 🙂

        Den Strip habe ich entsorgt. Der jetzige Strip funktioniert einwandfrei und ich habe es definitiv auch richtig angeschlossen.

  88. Michael am 13. November 2017 21:51

    🙁
    Ich bekomme es auch nicht hin…
    Jedenfalls blinkt nichts. Bei anschließen leuchten einige LED’s in unregelmäßigen Abständen hell auf.
    Bsp. die ersten beiden nicht, dann 3 Stück hintereinander, dann wieder 3 nicht, dann 2, dann wieder 2 nicht, dann eine in einer anderen Farbe. Hab das gleiche Netzteil.
    Wie kann ich denn Testen ob der LED-Streifen überhaupt richtig funktioniert, oder ob der schon defekt ist 🙁

    Antworten
    • Felix am 14. November 2017 13:46

      Das Beispielskript ist eigentlich dazu da, um den Strip zu testen. Wenn es trotz richtiger Verkablung nicht klappt, wird etwas mit dem RGB Strip nicht stimmen 🙁

      Antworten
  89. Michael am 14. November 2017 17:54

    Habe Ihn vermutlich gekillt, da das dünne schwarze und rote Kabel nicht wie die beiden dicken angeschlossen sind 🙁
    Die dünnen sind nicht plus und minus, sondern das sind das grüne und das schwarze, konnte ich aber erst sehen nachdem ich den Schrumpfschlauch aufgeschnitten hatte. Das rote Kabel ist Clock.
    Da ich zum ersten Testen aber das rote und schwarze Dünne angeschlossen habe, habe ich 5V auf die Clockleitung gegeben. Damit sind bestimmt die IC’s kaputt. Da kann ich wohl 40€ in die Tonne kloppen 🙂

    Ich möchte jetzt eingentlich nur einen Script mit dem jeden LED einfach nur ein geschaltet wird.
    Gruß
    Michael

    Antworten
  90. Marcel am 14. November 2017 18:03

    Hallo zusammen,
    hab die Anleitung befolgt – bekomm diese Fehlermeldung:
    Traceback (most recent call last):
    File „./ws2801_example.py“, line 12, in
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE),
    IO)
    NameError: name ‚GPIO‘ is not defined

    Kann mir jemand weiterhelfen thx
    Marcel

    Antworten
    • Felix am 14. November 2017 20:45

      Du musst ggf. die GPIO Library angeben (bspw. RPi.GPIO)

      Antworten
      • Marcel am 15. November 2017 13:39

        besten Dank für den schnelle Hilfe – copy paste Fehler hab die ersten 3 zeilen unterschlagen…

  91. Michael am 18. November 2017 17:01

    mh…. habe jetzt einen neuen Streifen bestellt, aber es funktioniert immer noch nicht 🙁
    meiner ist jetzt 3 m lang habe also in Zeile 11 96 eingestellt.
    Aber so richtig blinkt da nichts 🙁
    Es blinkt die erste LED, dann mal wieder ein paar andere.
    Wenn ich die GND vom V- abziehe blinken die ersten 20 LED chaotisch durcheinander.
    Ich weiß nicht mehr weiter 🙁 hat nicht jemand ein Idee??

    Antworten
  92. Andre am 25. November 2017 11:37

    @Michael
    hast du auch GND vom PI mit GND (V-) vom Netzteil verbunden??

    Antworten
    • Oloth Michael am 26. November 2017 9:06

      Ja, genau wie auf der Zeichnung ?
      Kann es daran liegen das es 96 LEDs sind?
      ich kann das Band auch nicht bei 32 trennen, da dort Lötpunkte sind. Nicht so ein Feld zum abschneiden.

      Antworten
      • Felix am 26. November 2017 22:45

        Könnte sein, dass zu wenig Strom durch kommt, aber ich denke eher weniger.

    • Oloth Michael am 26. November 2017 18:49

      So langsam bin ich der Meinung das etwas mit dem „SPI“ nicht stimmt 🙁
      Kann mir das noch mal einer erklären?
      Es fängt schon damit an das bei „sudo raspi-config“ nicht der Punkt „SPI“ auftaucht.
      Auch nach der Anleitung
      „Falls du eine Lite Version hast, bzw. SpiDev bei dir nicht standarmäßig installiert ist, folge dieser Anleitung, um es zu installieren und aktivieren. Auf aktuellen Raspbian Versionen sollte es allerdings bereits vorinstalliert sein.“
      Da kommt bei “ sudo python setup.py install“ Fehler. 🙁

      Antworten
      • Felix am 26. November 2017 22:48

        Das mit raspi-conifg ist irgendwie nach jedem Update wo anders. Musst ein bisschen suchen, aber es ist unter einem der Punkte definitiv vorhanden.

  93. Andre am 25. November 2017 11:41

    @wimmers
    so funktioniert der Glittereffekt…..

    def glitterOn(pixels, colorA = Adafruit_WS2801.RGB_to_color(255,255,255)):
        pico = pixels.count()
        for i in range(pico):
            rdm = [0,0,0,0]
            colorS = [0,0,0,0]
            for j in range(3):
                rdm[j] = random.randint(0, pico-1)
                while pixels.get_pixel(rdm[j]) == colorA:
                    rdm[j] = rdm[j] + 1
                    if rdm[j] >= pico:
                        rdm[j] = 0
                colorS[j] = pixels.get_pixel(rdm[j])
            for j in range(3):
                pixels.set_pixel(rdm[j],colorA)
            pixels.show()
            time.sleep(0.05)
            for j in range(1,3):
                if rdm[0] >= rdm[j]:
                    pixels.set_pixel(rdm[j],colorS[j])
            pixels.show()
            pixels.clear()
            pixels.show()
        time.sleep(0.1)
    Antworten
    • Markus am 21. Dezember 2017 17:44

      Leider funktioniert bei mir der Glittereffekt nicht. NameError: global name ‚random‘ is not defined
      Als Anfänger hab ich keine Ahnung wie ich das löse. Danke schon mal für die Hilfe

      Antworten
      • Felix am 21. Dezember 2017 19:22
        import random

        in die erste Zeile.

  94. Kay am 30. November 2017 17:17

    Bei mir funktioniert alles einwandfrei mit einer 5m WS2801. Einige Dinge habe ich bereits ausprobiert und in den Code bin ich bereits eingestiegen und passe ihn an.

    Nur an zwei Dingen verzweifele ich:
    1) Das Wheel würde ich gerne beschleunigen. Ich habe immerhin 160 LED und das dauert. Ich finde aber in den Funktionen nicht „DEN“ time.sleep(?) der mir diese Einstellung ermöglicht.
    2) Die appear_from_back würde ich gern mit drei Pixel gleichzeitig machen und finde keinen richtigen Ansatz dafür. Die Dauer bei 160 LED brauche ich ja niemanden erklären wenn es LED für LED geht.

    Antworten
    • Felix am 30. November 2017 17:29

      1) Wenn du den Wert von time.sleep geringer setzt, so wird es insgesamt schneller durchlaufen.
      2) Dazu müsstest du die Schleife umbauen, sodass statt um eins gleich um drei erhöht wird. Gleichzeitig müsstest du auch immer die nächsten drei LEDs schalten und nicht nur eine einzige wie bisher.

      Antworten
  95. Jens am 4. Dezember 2017 17:32

    Ich hab folgendes Problem: ich habe ein 3m langes WS2801 LED-Band, welches aber nur auf dem ersten Meter funktioniert (32 LED´s).
    Auf dem zweiten Meter leuchten 6 LED´s weiß und der letzte Meter funktioniert gar nicht 🙁
    Habt ihr einen Tipp wie ich das am Besten hard- bzw. softwaremäßig teste?

    Antworten
    • Felix am 4. Dezember 2017 20:22

      Ist die Stromversorgung ausreichend? Miss mal die Spannung nach dem ersten Meter.

      Antworten
  96. Manu am 17. Dezember 2017 0:34

    Hallo, habe das Problem das überhaupt nix funktioniert bzw nur ein paar einzelne LED s leuchten , habe auch alles korrekt angeschlossen bzw installiert (raspian ,osmc) und noch mit einem zweiten pi3 versucht aber ohne Erfolg. Benutze den WS2801 streifen ist brandneu, habe es auch mal geschafft das fast alle leds leuchten ist aber eher glückssache aber das tutorial will einfach nicht klappen, bin langsam echt am verzweifeln 🙁 kann mir bitte jemand helfen

    Antworten
  97. Sirius am 21. Dezember 2017 22:57

    Heute sind meine ersten 5 Meter angekommen….die nächsten Tage dann Nachschub^^…allerdings fiel mir recht schnell auf, dass meine Farben irgendwie vertauscht sind….Und zwar Grün und Blau
    Adafruit_WS2801.RGB_to_color(0, 0,255) – ist grün
    Adafruit_WS2801.RGB_to_color(0, 255,0) – ist blau
    Kann irgendwie nicht sein oder?

    Antworten
  98. Ingo K am 4. Januar 2018 19:15

    Hi Felix
    ich hab da mal eine Frage da ich in der Himmbeer-Weld neu bin.
    ich dein Quellcode getestet und soweit geht auch alles wenn ich das Script
    im Python 2.7 starte. Verwende ich aber den Python 3.xx oder die LX console
    bekomme ich immer eine Fehlermeldung das die Bibliothek nicht installiert sei.
    Die Bibliothek ist zwar installiert befindet sich aber in der Unterstruktur in Python 2.7.
    Wie kann ich denn die Bibliothek fuer alle Programme freigeben?

    Antworten
    • Felix am 4. Januar 2018 19:59

      Versuch adafruit-ws2801 mal über pip3 zu installieren (sofern verfügbar).

      Antworten
  99. Eddy am 4. Januar 2018 23:04

    Hallo, gibt es eine Möglichkeit die Befehle per App oder etwas anderem außer direkt am PI auszulösen und auch zu stoppen ?

    Bin Neuling …. finde keinen befehlt um den bestehenden befehlt vorzeitig zu beenden …

    ?

    Antworten
    • Felix am 5. Januar 2018 22:53

      Das Skript mit Strg+C, die Farben mit pixels.clear()

      Antworten
  100. Marc am 10. Januar 2018 18:46

    Nettes Tut……ich stell mir noch die Frage ( Beim Anschluß des alten PC Kabels) wie du den Leuten erklärst wie rum se den Stecker einstecken müssen. Da könnte nämlich L und N auf einmal ganz woanders sein…..

    Antworten
    • Felix am 10. Januar 2018 22:23

      Das Netzteil ist beschriftet und die Kabel haben Farbcodes. Wer allerdings sich unsicher fühlt sollte ein bestehendes Netzteil nehmen.

      Antworten
  101. Robert am 13. Januar 2018 15:17

    Hi Felix,
    bei mir kommt immer der unten angehängt Fehler.
    Bin blutiger Anfänger was das Programmieren des RasPi in Verbindung mit Python angeht.
    Ich hoffe Du kannst mir weiter helfen.

    Lg. Robert

    File „ws2801_example.py“, line 16, in
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
    NameError: name ‚GPIO‘ is not defined

    Antworten
    • Felix am 13. Januar 2018 20:51

      Dir fehlt die RPi.GPIO Bibliothek oder sie wurde nicht importiert?

      Antworten
  102. Chris am 15. Januar 2018 19:28

    Hi Felix,
    ich bin leider nicht der python Experte. Wie kann man alle LEDs in einer Farbe dauerhaft leuchten lassen?

    Vielen Dank!

    Antworten
    • Felix am 15. Januar 2018 20:28

      Einmal alle LEDs in der gleichen Farbe setzen / überschreiben und anschließend nichts mehr ändern.

      Antworten
      • Chris am 15. Januar 2018 21:04

        Hast du den Python code mal parat?

      • Felix am 16. Januar 2018 21:19
        for i in range(pixels.count()):
            pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, g, b ) )
        pixels.show()

        mit deinen RGB Werten zwischen 0 und 1.

  103. Reinhard am 23. Januar 2018 18:11

    ’n Abend,

    ich habe bzw. wir haben ein komisches Problem mit dem Skript bzw. dem LED-Strip.
    Ein Schüler hat sich das Skript kopiert, den LED-Strip angeschlossen und alle Befehle wie oben beschrieben ausgeführt. Wenn er das Skript startet passiert rein gar nichts – die LEDs bleiben an oder aus, je nachdem, es gibt aber auch keine Fehlermeldung.
    Stecken wir aber meine SD-Karte in seinen Raspberry funzt alles laut Plan. Probleme mit dem Skript, den PINs und dem Strip würde ich nun ausschließen. Aber wo ist dann das Problem? Die raspbian Version?

    Danke für Ideen
    Reinhard

    Antworten
    • Felix am 24. Januar 2018 2:12

      Könnte sein, dass nicht die gleichen Pakete installiert sind.

      Antworten
  104. Johannes am 30. Januar 2018 19:23

    Hallo Felix,
    ich habe mir dein Tutorial mal zum Vorbild genommen, um mal etwas mit LED’s zu probieren. Wenn ich deinen Code verwende funktioniert er einwand frei, auch wenn ich selber noch ein paar änderungen vornehme.
    Jetzt habe ich allerdings mal versucht, es mal von grund auf alleine zu versuchen, ab Zeile 18 wird mir jedoch jedes weitere „pixels“ sowie der Doppelpunkt nach der „Main-Methode?“ als Error: invalid syntax angezeigt. Bin zur Zeit etwas Ratlos über diese Meldung.

    Danke für hilfen aller Art.
    Hier noch mein derzeitiger Code:

    import time
    import RPi.GPIO as GPIO
    
    import Adafruit_WS2801
    import Adafruit_GPIO.SPI as SPI
     
    PIXEL_COUNT = 32
     
    SPI_PORT   = 0
    SPI_DEVICE = 0
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
     
    def Pixel_leuchte (pixels):
    for i in range(pixels.count()):
        
    	pixels.set_pixels(6,  Adafruit_WS2801.RGB_to_color (  (255, 255, 255) )
            pixels.set_pixels(9,  Adafruit_WS2801.RGB_to_color (  (255, 0, 0) )
            pixels.show()
    
    if __name__ == _"__main__":
            pixels.clear()
            pixels.show()
    
            Pixel_leuchte(pixels)
    Antworten
    • Felix am 31. Januar 2018 12:22

      In der Funktion muss die for-Schleife eingerückt sein.

      Antworten
  105. Felix am 4. Februar 2018 16:47

    Hallo Leute ich bin ein absoluter noob deshalb entschuldigt die Frage aber ich habe das Tutorial komplett abgearbeitet aber wie bekomme ich den jetzt die beispiel datei ausgeführt

    Antworten
    • Felix am 4. Februar 2018 19:20
      sudo python ws2801_example.py
      Antworten
  106. Torsten am 7. Februar 2018 14:57

    Hallo
    Wenn ich das Programm starte, gehen nach einander die ersten 6 LED grün an und werden dann blau. Nach ca. 20 sec. Leuchten 2 weitere led auch blau und die 10 LED grün.
    Danach ist Programm Ende. Was kann ich tun ?

    Antworten
  107. Max am 9. Februar 2018 19:42

    Hallo!
    Vielen Dank für diese super Anleitung.
    Habe mich mal strikt daran gehalten und alles exakt wie beschrieben realisiert. Dennoch passiert nach Programmstart nichts weiter, außer das im ersten Meter ein paar LEDs nach und nach an gehen. Im Python Shell ist auch keine Fehlermeldung; sprich das Programm läuft anscheinend ohne Probleme. Hat dafür noch jemand eine Idee? Sind das evtl. Probleme mit SPI, bzw. der Konfiguration? Ich weiß‘ nicht mehr weiter…
    Vielen Dank schon mal!

    Antworten
    • Felix am 9. Februar 2018 21:40

      Höchstwahrscheinlich wird es an der Verkabelung oder z.B. deaktiviertem SPI, etc. liegen.

      Antworten
  108. Florian am 12. Februar 2018 16:54

    Wird die Stromversorgung des Pis auch über das Netzteil geregelt oder ist das Netzteil nur für die LEDs da? Falls ja, wäre es möglich den Pi auch über die Pins mit Strom zu versorgen und würde das was an der Verkabelung ändern?

    Antworten
    • Felix am 12. Februar 2018 21:57

      Ja, ist möglich den Pi über die Pins mit 5V zu versorgen, allerdings besteht dadurch kein Schutz (zu hohe Spannung = Pi brennt durch).

      Antworten
  109. Thomas am 15. Februar 2018 19:27

    Ist es auch möglich für die WS2801 die Pins 38 und 40 zu nutzen und evtl. über die anderen SPI Pins noch eine 7 Segmentanzeige oder ein DOT Matrix mit MAX7219 zusätzlich zu betreiben?

    Antworten
  110. Norbert Wangerin am 16. Februar 2018 14:52

    Hi Felix, ich habe inzwischen die tutorials mit beiden LED-Streifen -Varianten durch – beide funktionieren.

    ich möchte nun gerne mehrere LED-Sreifen GLEICHZEITIG steuern. Mein Pi2 oder auch der 3er haben dafür mehr als genug GPIO-Pins, ein leistungsstarkes Netzteil habe ich auch, ein 8er Relais gfs. auch.

    Hast du ne Idee, wie z.B: 4x den WS2801 RGB LED Streifen GLEICHZEITG an nur einem Pi2 (oder halt Pi3) ansteuern kann ?

    Am Besten gleich mit einem Muster-Script, dass ich dann für meine Zwecke ggfs. anpassen kann

    Antworten
    • Felix am 16. Februar 2018 15:11

      Du kannst pro SPI Bus einen Streifen betreiben, oder aber die Streifen hintereinander schalten und immer nur den entsprechenden Teil setzen.

      Antworten
      • Norbert Wangerin am 16. Februar 2018 16:53

        ok, wie kann ich denn feststellen, welcher SPI-Bus wo anfängt und wo aufhört ?
        habe bisher nix gefunden, wo die SPI-Busse , bzw. der bus aufgeteilt ist.
        Nur etwas darüber, das es diesen SPi-Bus überhaupt gibt: https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial

      • Felix am 16. Februar 2018 16:56

        Du kannst mehere SPI Geräte betreiben (gleiche MISO+MOSI Leitung, aber pro Gerät ein CS [Chipselect]).

  111. Norbert Wangerin am 16. Februar 2018 19:19

    Lassen wir das. ich verstehe kein Wort, ein chipselect würde vermutlich bedeuten, dass ich immer nur den gleichen LED-Stripe-Typ verwenden muss wegen dem dort verbauten Chip. aber bei MOSI+MISO streike ich

    Antworten
    • Felix am 16. Februar 2018 19:21

      Die Datenübertragung über SPI findest per MISO und MOSI Kanal statt. Diese werden an alle Geräte gesendet. Der Chipselect bestimmt welches Gerät „reagiert“ (angesprochen wird/ausgewählt ist).

      Antworten
  112. DomDom am 18. Februar 2018 14:34

    Hallo und vielen Dank für deine Tutorials!
    Mein Bewegungsmelder mit LED-Streifen klappt! Auch der Autostart ist eingestellt.
    Es ist nur ein Problem noch offen. Wenn ich einschalte, schaltet Pi und LED ein und dann zeigt der LED-Streifen bis zum ersten Kontakt irgendwas an… Wie kann ich beim Autostart, also gleich am Anfang des Programms sagen: „LED-Streifen schalte dich ab!“?
    Mit pixels.clear()-Befehl geht gar nix?
    Wo/wie muss ich das einbauen? (Bitte für Noob verständlich)

    Antworten
    • Felix am 18. Februar 2018 14:36

      Mit pixels.clear() werden die LEDs abgeschaltet (Änderungen nach pixels.show() effektiv).
      Du könntest auch ein Relais nutzen, und so die Stromversorgung „hart“ unterbrechen.

      Antworten
  113. Jens am 19. Februar 2018 19:03

    Hallo zusammen,

    ich hab insgesamt 87 LED´s. Jedoch funktionieren nur die ersten 26…die Lötstellen habe ich alle überprüft. Die Versorgungsspannung ist ok, nur die Busspannung bricht zusammen. Hat jemand eine Idee was man da machen könnte? Bleibt das Ende des LED-Bandes offen oder muss da noch + und – angeschlossen werden?

    Antworten
  114. Jonathan am 21. Februar 2018 18:54

    Hallo zusammen,
    wie bekomme ich es hin, dass nach dem durchlaufen einer Methode nicht gestoppt, sonder mit der nächsten weitergemacht wird?
    Ist das „wait=X.x“ in der Main-methode nach dem Methodenaufruf dafür verantwortlich?

    Antworten
    • Felix am 21. Februar 2018 22:16

      Nachdem eine Methode fertig ist, wird die nächste aufgerufen. Ist die letzte Methode fertig, so beendet sich das Programm. Vielleicht möchtest du eine Dauer/Endlosschleife (while True: …)?

      Antworten
  115. Marc am 23. Februar 2018 9:04

    Hi Felix,
    Ich hätte eine etwas detailliertere Frage zu den Chips auf den LEDs.
    Könnten wir da mal per Mail in Kontakt treten.
    Ich bin etwas in Zeitdruck, deswegen wäre es super wenn Sie sich schnellstmöglich melden könnten.
    Danke
    Grüße
    Marc

    Antworten
    • Felix am 24. Februar 2018 22:22

      Du kannst mich gerne kontaktieren.

      Antworten
  116. Max am 6. März 2018 19:35

    Hallo zusammen,

    also erstmal ist das Tutorial super. Allerdings funktioniert das ganze bei mir an 2 unterschiedlichen ws2801-LED streifen nicht. Sowohl mit den vorgefertigten Anschlüssen als auch mit eigens angebrachten.
    Mein SPI sollte aktiviert sein – ich finde diesen „spi-bcm2708“ mal in den ls-mod.
    Wenn ich in deinem Code die Zeile 11 anpasse und mit „sudo python ws2801_example.py“
    ausführe passiert allerdings nichts. Die LEDs bleiben in dem zufälligen Zustand den sie annehmen wenn ich das Netzteil anschließe. (alle updates und upgrades sind ausgeführt – hab auch mal raspbian neu aufgespielt – auch keine verbesserung).
    Es handelt sich um einen Raspberry PI 3.

    Ich habe jetzt keine Ahnung was ich noch machen soll um zu checken ob mein PI beschädigt ist oder sonstiges. Kann mir jemand helfen?
    Dankeschön!

    Antworten
    • Felix am 6. März 2018 20:24

      Die Verkabelung ist mit Sicherheit richtig?

      Antworten
      • Max am 6. März 2018 21:40

        Da ich das ganze jetzt schon 3 – 4 mal an und angeschlossen habe gehe ich davon aus, dass es mindestens einmal gepasst haben sollte. Hab die Leitungen für GND und V+ durchgemessen und habe da auch Durchgang. Ebenfalls habe ich auch Durchgang vom Kabel zum CI, DI….bis zum nächsten CO, DO kann ich ja nicht messen. (Das sind die LEDS: https://www.amazon.de/gp/product/B0713MQ7R6/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1)
        Ich besorge mir jetzt einfach mal nen zweiten PI und schaue ob es mit dem funktioniert.
        Ich habe das ganze dann auch mit Hyperion probiert ebenfalls keine Funktion. Im Großen und ganzen eher ärgerlich momentan.

  117. DomDom am 7. März 2018 22:12

    Eine Frage zu dem Kabeldurchmesser:
    (ich möchte alles sicher und richtig machen)
    Ich habe 2m LED-Streifen und die 2. Hälfte davon 16m entfernt.
    – Für die 2 Datenkabel reichen 0,14mm² Litze?
    – Für 5V+ / GND reicht 0,5mm² oder 1,0mm²? Wie gesagt, soll sicher sein, also Standardanforderungen /Din-Normen erfüllen?
    Gibt es irgendwelche Faustregeln? Im Inet ist immer wieder widersprüchliches…

    Antworten
    • Felix am 7. März 2018 22:42

      Verbindliche ANtworten zu Din Normen kann ich dir nicht geben, aber 0.5mm² sind zu wenig. Bei 16m Entfernung wirst du bei 5V (unabhängig von der Kabeldicke) einen Spannungsabfall haben.

      Antworten
  118. DomDom am 11. März 2018 15:47

    Ich habe zufällig noch ein 0.75mm Kabel vorrätig. Würde das wenigstens reichen?
    Wie kann ich mir das selbst ausrechnen?

    Antworten
    • DomDom am 11. März 2018 16:57

      Ne, falsch… Sorry…
      Einfach vergessen… muss umplanen 🙂

      Antworten
  119. DomDom am 12. März 2018 1:44

    Andere Frage zum Code… ohne dich zuspamen zu wollen.
    Im Code hast du ja alle LEDs angesprochen , in einem Post bei den Kommentaren hast du geschrieben, wie man einzelne LEDs steuert, statt i einfach die LED-Nummer. Aber wie steuere ich ganze Gruppen, z.B. LED 1 bis 6?
    Ich möchte nicht 18 Mal den halben Code abtippen, um alle meine LEDs einzeln anzusprechen…

    Antworten
    • Felix am 12. März 2018 19:55

      Z.B. mit einer for-schleife, in der du entsprechende Pixel setzt?

      Antworten
  120. AndyP am 24. März 2018 14:32

    Kann ich auch den Raspberry Pi direkt mit an mein Schaltnetzteil (5V / 60A) hängen? Der braucht ja auch 5V und ich könnte mir das Steckernetzteil vom Raspi sparen. Wie würde die Verkabelung dann aussehen?

    Antworten
    • Felix am 24. März 2018 23:09

      Du hast ein Netzteil, das 60A kann?!
      Der Pi kann auch über den 5V und GND Pin mit Strom versorgt werden (aber Achtung, kein Überspannungsschutz).

      Antworten
      • AndyP am 24. März 2018 23:36

        Ja, das 60A Netzteil habe ich bei Amazon entdeckt. OK, 40A hätten auch ausgereicht aber der Preis war nur unwesentlich höher. Habe mir eine Matrix mit 320 LEDs (32 x 10) gebaut. Da werden dann schon ca. 19,2 A fällig wenn alle LEDs leuchten. Diese China Netzteile sind vielleicht doch nicht so stabil, dass ich wohl doch das Steckernetzteil für den Pi benutze – sicher ist sicher 🙂 Danke für die schnelle Antwort.

  121. Joachim am 30. März 2018 9:15

    Hallo ,

    Ich habe für meinen Sohn ein Ambilight gebaut. Läuft super, habe aber noch 2 Meter WS2801 über die ich gerne mit dem PI3 über Musik steuern möchte. Leider finde ich nix für die WS2801, immer nur WS2812 und Andrino. Könnt ihr mir helfen?

    Gruß Joachim

    Antworten
    • Felix am 30. März 2018 14:27

      Willst du sie mit dem Raspberry Pi oder Arduino steuern?

      Antworten
      • Joachim am 30. März 2018 16:00

        Hey, mit PI.

      • Felix am 1. April 2018 12:34

        Dann verstehe ich das Problem nicht. Dieses Tutorial ist doch für den Pi und WS2801 Streifen.

  122. Joachim am 2. April 2018 5:37

    Ja das stimmt. Bin aber Neuling in Sachen programmieren und das mit dem einbinden von der Soundkarte klappt aber nicht. Sollte funktionieren wie früher die alten Lichtorgeln. Mit Lightshow Pi habe ich das mit normalen Lampen bzw. LED’s und einem Halbleiterrelais hinbekommen aber nicht mit den WS2801. Sollte ungefähr so aussehen.

    Antworten
  123. Maik am 29. Juni 2018 16:06

    Hi, das ist quasi mein erstes großes Projekt. kenne mich leider noch sehr wenig aus und hangel mich immer an den tutorials rum. jetzt habe ich aber die ganze zeit einen fehler und weiß nicht was ich tun soll

    Traceback (most recent call last):
    File „ws2801_example.py“, line 31, in
    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
    File „/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/SPI.py“, line 42, in __init__
    self._device.open(port, device)
    IOError: [Errno 2] No such file or directory

    Antworten
    • Maik am 30. Juni 2018 12:14

      Oke, habe den raspberry nochmal neu aufgesetzt. Jetzt funktioniert es :3

      Antworten
  124. Ziri am 5. Juli 2018 18:59

    Könnte jemand den Befehl mit einer Schleife posten? Bekomme es nicht hin alleine 🙁

    Antworten
  125. DomDom am 7. Juli 2018 10:38

    Ja, ne Schleife… da habe ich gerade auch ein Problem. 🙂
    Ich habe dieses Tutorial hier mit deinem PIR-Tutorial verbunden. Jetzt möchte ich gerne eine Schleife oder IF ELSE, damit sich das Programm von selbst ausschaltet, wenn es eine Datei im Stammverzeichnis nicht mehr findet. Aber alle Versuche While True oder If Else einzubauen sind gescheitert.
    Kann jemand helfen?

    hier mein (der kombinierte Tutorial-) Code:
    import RPi.GPIO as GPIO
    import time
    import Adafruit_WS2801
    import Adafruit_GPIO.SPI as SPI
    import os.path
    import sys

    SENSOR_PIN = 23
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(SENSOR_PIN, GPIO.IN)

    SENSOR_PIN2 = 24
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(SENSOR_PIN2, GPIO.IN)

    PIXEL_COUNT = 24
    SPI_PORT = 0
    SPI_DEVICE = 0

    pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)

    filename = „/var/www/html/pir-zeit-session.txt“

    if (os.path.isfile(filename)): <- Hier ein Reststück meiner Versuche…..

    def lights(order='up', mode='on'):
    start = 0
    stop = pixels.count()
    direction = 1
    if order == 'down':
    start = 23
    stop = -1
    direction = -1
    hue1 = 0
    hue2 = 0
    hue3 = 0
    if mode == 'on':
    hue1 = 40
    hue2 = 40
    hue3 = 0
    for i in range(start, stop, direction):
    pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color(hue1, hue2, hue3))
    pixels.show()
    time.sleep(0.05)

    def up(channel):
    print('Lia kommt zu uns')
    pixels.clear()
    lights()
    time.sleep(45)
    lights(mode='off')

    def down(channel):
    print('Lia geht in ihr Bett')
    pixels.clear()
    lights(order='down')
    time.sleep(45)
    lights(order='down', mode='off')

    try:
    GPIO.add_event_detect(SENSOR_PIN , GPIO.RISING, callback=up)
    GPIO.add_event_detect(SENSOR_PIN2 , GPIO.RISING, callback=down)
    while True:
    time.sleep(0.001)
    except KeyboardInterrupt:
    print "Beende…"
    pixels.clear()
    GPIO.cleanup()

    Antworten
  126. Robin am 23. Juli 2018 22:26

    Hallo, erstmal Danke für das Tutorial, allerdings funktioniert es nicht bei mir. Deswegen hier ein Statusbericht:
    Problem ist an sich simpel: Programm leuft, Lampen bleiben aus.

    1.Die Stromversorgung:
    Leuft stabil und erreicht das Ende des 5m Bandes. Woher ich das weiß? Die letzte LED und eine zwischendurch haben einen Wackelkontakt und leuchten wenn man den Chip berührt. Das Netzteil hat ausreichend V und A, daran liegt es nicht.

    2. LEDs:
    Genau wie vorgegeben: WS2801

    3. Verkabelung:
    Müsste eigentlich auch funktionieren. Die Pins sind richtig gewählt, es wurde auch nocheinmal mit anderen Quellen überprüft. (Es sind allerdings nicht Pin19 und 23 sondern 10 und 11; auf dem Schaltbild stimmt es aber. Hier kann man es nachlesen: https://www.raspberrypi.org/documentation/usage/gpio/)
    Es wurde alles mit Jumperkabeln verbunden, diese wurden schon auf einen möglichen Defekt untersucht: sie funktionieren alle einbandfrei.

    Nun frage ich mich: Wieso funktioniert es nicht?
    Schon mal im Vorraus Danke für jegliche Hilfe.

    Antworten
    • Robin am 23. Juli 2018 22:27

      Achso, SPI-Schnittstelle wurde in den Einstellungen aktiviert

      Antworten
    • Spacko am 26. August 2018 10:18

      Obwohl die LED Kette ein Bus- Sytem darstellt, muss der Anschluss von ‚vorne‘ erfolgen.
      Auf der Kette sind Pfeile aufgedruckt, diese zeigen die Richtung an. Ich musste beim Reststück tatsächlich Kabel anlöten (CIK und SI) -> http://powerpi.de/wp-content/uploads/2015/02/laufrichtung_ws2801_led_stripe_ambilight.jpg

      Antworten
  127. Tobi am 7. September 2018 13:41

    Hallo
    Ich habe den Beispielcode erfolgreich mit 192 LED´s laufen.
    Jetzt möchte ich aber zur eigentlichen Anwendung alle 192 LED eine bestimmte Farbe zuweisen. Diese wird einmal festgelegt und später wird nur noch die Helligkeit angepasst. Dass passiert in Bereichen von ca 10 LED´s. So sollen in einem vorher festgelegten Ablauf bestimmte Bilder an der Wand beleuchtet werden.
    Wie gehe ich dafür am besten vor. Schreibe ich 192 Zeilen für jede Farbe?

    Antworten
  128. Sebastian am 22. September 2018 11:43

    Hi da, top Tutorial, richtig klasse Arbeit!

    Ich versuche gerade einen zweiten Stripe via Pin 38 und Pin 40 anzusteuern.
    pin19=SPI0 MOSI – DI
    pin23=SPI0 SCLK – CI
    pin38=SPI1 MOSI – DI
    pin40=SPI1 SCLK – CI

    Nachdem ich dtoverlay=spi1-3cs enabled habe sehe ich folgende devices

    /dev/spidev0.0 /dev/spidev0.1 /dev/spidev1.0 /dev/spidev1.1 /dev/spidev1.2

    Nun habe ich rein von der Logik her wie bei SPI0 den Pin 38 mit DI und Pin 40 mit CI verbunden aber der Stripe bekommt kein Signal. Siehe hier > https://pinout.xyz/pinout/spi

    Wenn meine Annahme korrekt ist dann müsste das doch jetzt klappen oder habe ich komplett die falschen Pins?

    Ist das überhaupt die richtige Vorgehensweise und gibt es noch eine andere Möglichkeit mehr als 1 bzw. 2 Stripes anzusteuern?

    Grüße
    Sebastian

    Antworten
    • Sebastian am 22. September 2018 11:55

      Hi nochmal!

      Es hat geklappt, ich konnte den 2. Stripe nun ansteuern. Für alle die das gleiche Problem haben, vorher daran denken dtoverlay=spi1-3cs in der /boot/config.txt einzutragen, danach wird auch SPI1 aktiv 🙂

      spi(0,0) ergibt somit SPI_PORT=0 und SPI_DEVICE=0
      pin19=SPI0 MOSI – DI
      pin23=SPI0 SCLK – CI
      spi(1,0) ergibt somit SPI_PORT=1 und SPI_DEVICE=0
      pin38=SPI1 MOSI – DI
      pin40=SPI1 SCLK – CI

      Grüße
      Sebastian

      Antworten
  129. sammys am 31. Oktober 2018 0:05

    Hi … Vielen dank für das turorial
    ich hab zwar mittlerweile ein andere Library verwendet, aber die Grundidee kam von deinem Tutorial.
    ich hab aus 2*2m Strips eine Runde Wandlampe gebaut. Dafür habe ich eine runde Plexiglas-Scheibe (Durchmesser ca 55cm) und einen LED Stripe nach innen und einen nach aussen positioniert.
    Somit kann man schöne rotierende Muster generieren.
    Erste Kostprobe mak ich mal getweetet :
    https://twitter.com/GERAFFELOrga/status/1057406803812716544

    Antworten
  130. Fränki am 22. November 2018 12:09

    Hallo Felix,
    ich beschäftige mich jetzt seit 4 Wochen mit dem Pi und habe schon fast deine gesamten Tutorials durchgearbeitet: Vielen Dank für die ganzen Anleitungen.
    Klasse.
    Aktuell plane ich auf Basis diese LED-Stips Tutorial eine Tageslicht (Wanderung und Helligkeit) Simulation fürs Aquarium.
    Ich bin mal gespannt ob ich das hinkriege.
    Auf jeden Fall ist das mächtig inspirierend hier.

    Antworten
  131. TheSoulMan79 am 5. Dezember 2018 22:07

    Hallo Miteinander
    aufgrund der fehlenden Suche bzw. meiner unwissenheit,
    hätte ich eine Frage.
    Wie kann ich in dem vorandenen Beispielcode einen loop bzw eine schleife setzen.
    mit if < xx bekomme ich immer einen fehler.

    kann mir hier jemand helfen?

    Antworten
  132. Mark Wunsch am 10. Dezember 2018 11:55

    Moin zusammen, ich habe eine 35m Carrera Bahn Digital 124 und möchte ein LED Beleuchtung installieren. Es soll eine Tag und eine Nachtstimmung generiert werden. Diese sollen in einem Zeitfenster z.B. 10min ineinander übergehen. Desweiteren wenn möglich, soll beim drücken des Pacecar Tasters(hier sind parallel schon zwei weitere Taster angeschlossen) an der Control Unit der Carrerabahn eine blinkende Gelblichtstimmung hergestellt werden. Zum Verständnis: Beim drücken der Taste fährt das Pacecar aus der Boxengasse und bei der nächsten Betätigung der Taste fährt es dorthin zurück. Hier soll dann die vorherige Stimmung wieder weiter leuchten. Ich selbst bin Elektriker und Arbeite als Lichttechniker. RasperryPi ist aber Neuland für mich und brauche daher Support bei der Programmierung. Mfg Mark

    Antworten
  133. C. R. am 13. Dezember 2018 15:52

    Hat noch jemand coole effekte ?

    Ich habe den Glitzereffekt versucht, klappt allerdings nicht.. Habe auch null Plan vom Code.. werde ich mir aber versuchen anzueignen..

    Antworten
    • Sebastian am 30. Dezember 2018 15:19

      Ich bin auch kein CodeProfi, habe mir aber mal einen Breathe (Atmen) Effekt geschrieben.
      Halber Streifen Rot, halber Streifen Blau gibt in der MItte nen Lila und dann dimmen und heller machen. Ich vermute das würde sich schöner lösen lassen, aber es funktioniert.

      import time
      import RPi.GPIO as GPIO

      import Adafruit_WS2801
      import Adafruit_GPIO.SPI as SPI

      PIXEL_COUNT = 69

      SPI_PORT = 0
      SPI_DEVICE = 0
      pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)

      def decreaseBrightness(pixels, wait=0.01, step=1):
      for j in range(int (256// step)):
      for i in range(pixels.count()):
      r, g, b = pixels.get_pixel_rgb(i)
      r= int(max(0, r – step))
      g= int(max(0, g – step))
      b= int(max(0, b – step))
      pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color(r,g,b))
      pixels.show()
      if wait > 0:
      time.sleep(wait)

      def increaseBrightness(pixels, wait=0.01, step=1):
      for j in range(int(255 // step)):
      for i in range(pixels.count()/2):
      r, g, z = pixels.get_pixel_rgb(i)
      t, f, b = pixels.get_pixel_rgb(i + pixels.count()/2)
      r = int(max(0, r + step))
      b = int(max(0, b + step))
      pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, 0, 0 ))
      pixels.set_pixel((i + pixels.count()/2), Adafruit_WS2801.RGB_to_color( 0, 0, b ))
      pixels.show()
      if wait > 0:
      time.sleep(wait)

      def breathe(pixels):
      decreaseBrightness(pixels)
      increaseBrightness(pixels)

      if __name__ == „__main__“:
      pixels.clear()
      pixels.show()
      for i in range(0,pixels.count()/2):
      pixels.set_pixel(i,Adafruit_WS2801.RGB_to_color(255,0,0))
      for j in range((pixels.count()/2),pixels.count()):
      pixels.set_pixel(j,Adafruit_WS2801.RGB_to_color(0,0,255))
      pixels.show()
      while True:
      breathe(pixels)

      Antworten
      • CrazyAndy am 8. Januar 2019 23:30

        Hallo Sebastian,
        ich beschäftige mich auch mit dem Code aus dem Tut.
        Deinen Code habe ich als in den Raspi eingebaut und laufen lassen. Ach ja, bitte schreiben / kopiere Deinen Code doch bitte mit Einzüge und Leerschritte, dann ist er besser lesbar.

        „def decreaseBrightness(pixels, wait=0.01, step=1):
        for j in range(int (256// step)):“
        Hier kanst Du „step“ weg lassen und wenn Du „//“ rechnest brauchst du nicht noch „int“ das ist DoppelGemoppelt 🙂
        „if wait > 0:“ = kannst Dir sparen.

        Ich habe mit Deiner erlaubniss den Code angepasst: (keine Endlosschleife – sondern 500 Wiederholungen) (Code getestet)
        #!/usr/bin/env python

        import Adafruit_WS2801
        import Adafruit_GPIO.SPI as SPI

        PIXEL_COUNT = 50

        SPI_PORT = 0
        SPI_DEVICE = 0

        def increase_brigthness(pixels, delay=0.01):
        for j in range(255):
        for i in range(pixels.count() // 2):
        r, g, z = pixels.get_pixel_rgb(i)
        t, f, b = pixels.get_pixel_rgb(i + (pixels.count() // 2))
        r = max(0, r + 1)
        b = max(0, b + 1)
        pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, 0, 0 ))
        pixels.set_pixel((i + pixels.count() // 2), Adafruit_WS2801.RGB_to_color( 0, 0, b ))
        pixels.show()
        time.sleep(delay)

        def degrease_brigthness(pixels, delay=0.01):
        for j in range(255):
        for i in range(pixels.count()):
        r, g, b = pixels.get_pixel_rgb(i)
        r = max(0, r – 1)
        g = max(0, g – 1)
        b = max(0, b – 1)
        pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color( r, g, b ))
        pixels.show()
        time.sleep(delay)

        def clear(pixels):
        pixels.clear()
        pixels.show()

        def main():
        pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))

        clear(pixels)

        for b in range(500):
        increase_brigthness(pixels)
        degrease_brigthness(pixels)

        clear(pixels)

        if __name__==“__main__“:
        main()

      • CrazyAndy am 8. Januar 2019 23:34

        Oh, jetzt hab ich’s gesehen, die Formatierung geht verloren. Sorry für meinen Kommentar dazu.

  134. Thorsten am 31. Januar 2019 0:15

    Hallo zusammen,
    ich fange gerade an mich mit dem Raspi und Python anzufreunden.
    Ich habe dieses Tutorial nachgebaut , da ich es gerne zum lernen und rumprobieren nutzen möchte. Nach etwas fummeln hat dann auch (fast) alles geklappt.
    Irgendwie stimmen die Farbwerte nicht.
    Wenn ich z.B. eine Led Blau leuchten lassen möchte, ist das bei mir (0,255,0) und nicht wie in Tabellen angegeben (0,0,255).

    Wie kann ich eigentlich einzelne Led’s ausschalten ?
    Mit pixels.clear() wird ja der ganze Streifen ausgeschaltet. Kann man dem Befehl nur bestimmte Led’s zuweisen ?

    Wäre schön, wenn mir jemand von euch behilflich sein könnte.

    Antworten
  135. Thorsten am 31. Januar 2019 13:30

    Das mit den led’s einzeln ausschalten hat sich erledigt.

    Antworten
    • CrazyAndy am 1. Februar 2019 11:39

      und wie hast Du das bewerkstelligt?

      Antworten
      • Thorsten am 4. Februar 2019 22:14

        Ich habe einfach die einzelnen rgb werte auf null gesetzt.

  136. Bitstore am 4. Februar 2019 12:29

    Lässt sich mit dem WS2081 auch einzelne RGB LED’s steuren oder bin ich zwingend nauf einen Streifen angewiesen. Ich habe einige Multicolor LED’s bereit verbaut und möchte die verändern können

    Antworten
  137. Frank Domnick am 7. Februar 2019 18:52

    Hallo Zusammen,

    ich möchte mit dem RB Pi eine FarbenUhr bauen.
    Dabei soll zu jeder vollen Stunde eine „ganze“ Farbe leuchten. Z.B. für 12:00 Uhr = Gelb..
    Die Übergänge sollen faden so das man die halbe Stunde abschätzen kann. Der RB soll noch ein Display (SunFounder) bespielen der die Minuten zeigt (Zahlen, Farbe …)
    Hat so was schon mal jemand gemacht und kann mir helfen (bin Anfänger)
    Viele Grüße Frank

    Antworten
  138. Stefan am 7. Februar 2019 23:03

    Hallo Raspy-Fans

    Kann mir jemand einen Quellcode zeigen, der meine WS2018 LED-Leiste in Regenfarben erstrahlen lässt, ohne dass diese unter Bewegung steht.
    Bin neu auf diesem Themengebiet unterwegs und habe aufgrund noch mangelnder Programmiererfahrungen Schwierigkeiten dieses Peoblem zu lösen.
    Würde mich über eine Antwort freuen,
    Stefan

    Antworten
  139. Thorsten am 3. März 2019 19:31

    Hey Leute,
    ich versuche seit Tagen das Tut_ in einer schleife laufen zu lassen,bekomme es aber in keinster weise hin.
    Kann mir jemand von euch bitte mal die Lösung für mein Problem helfen ?!
    Die ganzen Beispiele im Internet bezüglich der Schleifen, basieren auf Textausgabe, wie binde ich da die Pixel ein ?
    Oder bin ich auf dem falschem weg ?

    Gruß
    Thorsten

    Antworten
  140. Lars am 4. Mai 2019 11:23

    Hey,
    vielen Dank für die guten Tutorials hier!
    Gaaaanz wichtig weil ich jetzt auch seit 2 Tagen am verzweifeln war weil nichts passierte, bitte hinzufügen dass der LED Streifen eine Richtung hat! Die aufgedruckten Pfeile müssen vom Anschluss wegzeigen! Sonst geht nämlich gar nichts.

    Antworten
  141. crumblelaikos am 26. Mai 2019 18:20

    Hallo, vielen Dank für das Tutorial.
    Ich möchte das Ambilight bei meiner Leinwand nachrüsten. Die Länge der WS2801 müsste allerdings 7,16m betragen. Soweit ich weiß gibt es nur 5m.
    Gibt es die Möglichkeit, einen zweiten LED-Streifen an die 5m anzufügen und geeignet anzusteuern? Habt ihr vielleicht Ideen dazu?
    Ansonsten bleibt mir nur 5m zu kaufen und die LEDs einzeln (!!) abzuschneiden und in größeren Abständen wieder aufzusetzen, so dass eine Gesamtlänge von 7,16m entsteht.

    Danke für eure Hinweise!

    Antworten
  142. Kutty am 16. Juli 2019 16:52

    Bei Python3 bekommt man einen Fehler, dass das adafruit-module nicht vorhanden ist.
    ImportError: No module named adafruit_WS2801
    Dann muss man
    sudo pip3 install adafruit-ws2801
    eingeben. Dann klappt es.

    Gruß
    Kutty

    Antworten
  143. Benedikt am 10. August 2019 20:52

    Also ich bekomme immer folgenden Fehler:
    pi@raspberrypi:~/Adafruit_Python_WS2801/examples $ ./rainbow.py
    from: can’t read /var/mail/__future__
    ./rainbow.py: Zeile 6: import: Kommando nicht gefunden.
    ./rainbow.py: Zeile 9: import: Kommando nicht gefunden.
    ./rainbow.py: Zeile 10: import: Kommando nicht gefunden.
    ./rainbow.py: Zeile 14: PIXEL_COUNT: Kommando nicht gefunden.
    ./rainbow.py: Zeile 19: PIXEL_CLOCK: Kommando nicht gefunden.
    ./rainbow.py: Zeile 20: PIXEL_DOUT: Kommando nicht gefunden.
    ./rainbow.py: Zeile 21: Syntaxfehler beim unerwarteten Wort `(‚
    ./rainbow.py: Zeile 21: `pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, clk=PIXEL_CLOCK, do=PIXEL_DOUT)‘

    Egal ob ich es mit der Methode von Github oder der pip/pip3 methode installiere…

    Antworten
  144. Michael am 16. August 2019 10:36

    Ein LED_Race
    mit WS2801 und Raspberry
    wäre cool

    Antworten
  145. Scherer am 7. Dezember 2019 22:34

    Hi,

    wenn ich meine LEDs verbinde, leuchtet leider die 1. LED durchgängig, die restlichen LEDs blinken nur kurz auf, ich kann aber keine der LEDs steuern. Was mache ich falsch? (Eigentlich alles richtig verkabelt, habe 100 mal geguckt.) Reicht es, wenn ich einen GND Anschluss vom Pi an eine Reihe des Breadboards lege, und den GND-Pin auf die gleiche Reihe lege?

    Antworten
    • Robin am 4. Februar 2020 21:48

      Die Verkabelung solltest du genau so machen, wie hier gezeigt. Heißt umbedingt GND mit dem Spannungsgerät verbinden.
      Checke die Richtung noch ein 101-tes mal. Sind die LEDs in richtiger Richtung angeschlossen? Das war bei mir ein Problem. Auf den LEDs sind kleine Pfeile drauf. Das zeigt die Richtung.

      Antworten
  146. OttherCreek am 17. Januar 2020 19:20

    Hi, danke erstmal für das Tutorial.
    Mein Plan ist, mit dem Stripe den Sonnenverlauf zu simulieren, also der Stripe hängt dann später in nem Halbkreis über einem Modell, und soll da die Sonne simulieren. Wie bekomme ich es hin, dass die „Sonne“ in einem weichen Übergang über das Band weiterläuft? Habe bis jetzt nur hinbekommen, dass der nächste Pixel abrupt angemacht wird.
    Lieben Dank schonmal für die Hilfe

    Antworten
    • Robin am 4. Februar 2020 21:46

      Hallo, da ich vor einiger Zeit einen Sonnenaufgang simuliert habe denke ich, dass dein Problem hier ein ähnliches ist.
      Versuche einmal, die Leuchtkraft einer LED von gelb nicht sofort auf blau zu stellen, sondern das langsam über zu blenden. Dafür musst du dir natürlich ein Skript schreiben. Ich empfehle deswegen, dass sie Sonne mehr als nur eine LED Breite einnimmt.

      Antworten
  147. MB Brickdesign am 25. Januar 2020 8:12

    Hallo. Besten Dank für die Tutorials WS2801 und dem GUI. Konnte beide sehr gut für mein Projekt Docking Bay 327 einsetzen. Anbei noch der Link zum Video auf YouTube.
    Vielen vielen Dank nochmals.

    youtu.be/BixvTiubkEA

    Antworten
  148. silvio am 1. März 2020 16:45

    hallo,
    super Tutorial aber wie füge ich das in ein Bewegungsmelder ein ? vielleicht kann mir ja einer helfen

    Antworten
  149. Kenny am 13. März 2020 14:33

    Moin,
    hätte da mal ne Frage. Müssen die GPIOs die du verwendet hast umbedingt genutzt werden, oder kann man auch andere verwenden. Wenn ja, wie kann ich dem dann sagen welche pins er zu nutzen hat. Die Pins die du nähmlich verwendest, sind bei mir schon belegt.
    Grüße Kenny

    Antworten
  150. Xitecraft am 14. April 2020 19:10

    Danke, hat alles funktioniert 🙂

    Antworten
  151. Peter am 15. Mai 2020 15:22

    Moin,

    zunächst vielen Dank für das nette Tutorial. Leider funktioniert es bei mir nicht und der Strip bleibt dunkel. Ich suche gefühlt schon ewig nach einer Lösung leider bisher ohne Erfolg.

    Den Aufbau habe ich versucht nachfolgend zu skizzieren:

    Skizze:
    https://www.q7sfdigp.de/aufbau1.png

    Foto vom Aufbau:
    https://www.q7sfdigp.de/aufbau2.jpg

    BTF LED Strip, 5V, 32LEDs/m (Model: BTF-5V-032L-B)

    Ich habe zusätzlich einen Level Shifter (74HCT125N) für die Umwandung 3.3V zu 5.0V integriert. Angeschlossen sind zwei Netzteile (USBC für den Raspi und ein Hanmatek 5V/3.1A für den Strip).

    Am Ende des Led Strips liegen ~4.9V an.

    Der Level Shifter liefert im Solo-Test die gewünschten 5V am Ausgang.

    Der Hersteller der LED ist leider nicht konsequent was die Belegung der Kabel betrifft. Die ändern sich zwischen dem Stecker und der reinen Spannungsversorgung.

    SPI ist aktiv:

    /boot/config.txt
    dtparam=spi=on

    sudo raspi-config nonint get_spi
    0

    lsmod | grep spi_
    spi_bcm2835 20480 0

    Da ich das ganze mit Python3 später nutzen möchte, habe ich folgende Bibliothek genutzt:

    https://github.com/adafruit/Adafruit_CircuitPython_WS2801

    Ein ganz einfaches Beipiel funktioniert leider nicht. Es treten hier und da mal komische Effekte auf (einzelne LED leuchtet blau oder andersfarbig), aber ein System ist nicht zu erkennen.

    import adafruit_ws2801
    import time
    import board
    
    darkred = 0x100000
    
    with adafruit_ws2801.WS2801(board.D7, board.D6, 25, brightness=0.5) as pixels:
        pixels[0] = darkred
        time.sleep(2)
    print("step1")
    
    leds = adafruit_ws2801.WS2801(board.D7, board.D6, 25)
    leds.fill((0x80, 0, 0))
    print("step2")

    Ich hoffe sehr jemand kann helfen. Habe schon große Lust, den Entwurf in seine Einzelteile zu zerlegen.

    Danke

    Peter

    Antworten
  152. Peter am 18. Mai 2020 8:57

    So, am Ende war die Lösung nicht so schwer, wenn man denn weiß wie es geht. Mich hat es auf jeden Fall wahnsinnig gemacht.

    Ich habe die Ports angepasst und dann lief es auch sofort. Allerdings hoffe ich, dass der Aufbau und das Beispiel auch anderen hier hilft.

    leds = adafruit_ws2801.WS2801(board.SCK, board.MOSI, 5)

    Danke und viel Spaß

    Antworten
  153. Manuel am 7. Juni 2020 21:20

    OMG! Habe gerade 4 Stunden nach dem Fehler gesucht, warum die LED-Kette (5m/160LEDs an 5V10A-Netzteil) nicht so funktioniert hat, wie sie sollte. Beide Klassen (WS2801 und WS2801Pixels) ausprobiert und jedes Mal konnten die einzelnen LED-Positionen nicht genau angesprochen werden. Fehler auf Layer-8: Masse an Pin 8 und nicht Pin 6 angeschlossen. Unnötig, aber viel dabei gelernt.
    Super Tutorial! Danke und weiter so!

    Antworten
  154. Hollminator am 15. Juli 2020 13:28

    Hallo😄

    Da ich gerade ein neues Zimmer beziehe und noch einen RasPi 3B übrig habe, kam ich auf die Idee eine LED Digital Segmentuhr zu bauen. Jedoch bin ich blutiger Anfänger was programmieren angeht.
    Kannst du mir da weiter helfen?
    THX
    Hollminator

    Antworten
  155. xtommi am 21. Juli 2020 0:42

    Geiles Tutorial,
    bin absoluter Neuling und ein bisschen angestachelt von meinem großen Sohn (23 Jahre) der der Meinung ist, dass ich selbst mit femder Hilfe die Sache nicht gemeistert bekomme…
    ich möchte gerne folgendes realisieren und meinem Sohnemann zeigen, dass Ihr ( ich ) „schlauer“ seid (bin) als mein Großer… 🙂
    Folgendes Szenario steht an:
    Bibliothek und Einstellungen von diesem Tutorial sind eingestellt.
    48 LED´s WS 2801 mit einem Raspberry 3 plus inkl. separates Netzteil für eine sichere 5V Versorgung. Elektrische Verdrahtung ist kein Problem…
    Mein Problem ist die Programmierung…
    Zu realisieren gilt:
    • Umlaufende Farben (Weiß & Grün) Geschwindigkeit und Helligkeit einstellbar
    • Weiß und Grün abwechselnd (alle LED´s) je ca. 5x pulsierend von dunkel zu hell, anschließend wiederholend (die pulsierende Zeit einstellbar)
    • zusätzlich Punkt 1 und 2 in einem Programm vereint (einstellbare Zeit für Übergang von Punkt 1 auf Punkt 2)
    Die Krönung wäre natürlich das ganze per App auszuwählen um die verschiedene Abläufe zu starten…
    Kann mir jemand bei diesem Vorhaben helfen???

    Antworten
  156. tommi6995 am 21. Juli 2020 22:49

    Geiles Tutorial,
    bin absoluter Neuling und ein bisschen angestachelt von meinem großen Sohn (23 Jahre) der der Meinung ist, dass ich selbst mit fremder Hilfe die Sache nicht gemeistert bekomme…
    ich möchte gerne folgendes realisieren und meinem Sohnemann zeigen, dass Ihr (ich) „schlauer“ seid (bin) als mein Großer… 🙂
    Folgendes Szenario steht an:
    Bibliothek und Einstellungen von diesem Tutorial sind eingestellt.
    48 LED´s WS 2801 mit einem Raspberry 3 plus inkl. separates Netzteil für eine sichere 5V Versorgung. Elektrische Verdrahtung ist kein Problem…
    Mein Problem ist die Programmierung…
    Zu realisieren gilt:
    • Umlaufende Farben (Weiß & Grün) Geschwindigkeit und Helligkeit einstellbar
    • Weiß und Grün abwechselnd (alle LED´s) je ca. 5x pulsierend von dunkel zu hell, anschließend wiederholend (die pulsierende Zeit einstellbar)
    • zusätzlich Punkt 1 und 2 in einem Programm vereint (einstellbare Zeit für Übergang von Punkt 1 auf Punkt 2)
    Die Krönung wäre natürlich das ganze per App auszuwählen um die verschiedenen Abläufe zu starten…
    Kann mir jemand bei diesem Vorhaben helfen???

    Antworten
  157. Thomas am 21. Juli 2020 23:13

    Geiles Tutorial,
    bin absoluter Neuling und ein bisschen angestachelt von meinem großen Sohn (23 Jahre) der der Meinung ist, dass ich selbst mit fremder Hilfe die Sache nicht gemeistert bekomme…
    ich möchte gerne folgendes realisieren und meinem Sohnemann zeigen, dass Ihr (ich) „schlauer“ seid (bin) als mein Großer… 🙂
    Folgendes Szenario steht an:
    Bibliothek und Einstellungen von diesem Tutorial sind eingestellt.
    48 LED´s WS 2801 mit einem Raspberry 3 plus inkl. separates Netzteil für eine sichere 5V Versorgung. Elektrische Verdrahtung ist kein Problem…
    Mein Problem ist die Programmierung…
    Zu realisieren gilt:
    • Umlaufende Farben (Weiß & Grün) Geschwindigkeit und Helligkeit einstellbar
    • Weiß und Grün abwechselnd (alle LED´s) je ca. 5x pulsierend von dunkel zu hell, anschließend wiederholend (die pulsierende Zeit einstellbar)
    • zusätzlich Punkt 1 und 2 in einem Programm vereint (einstellbare Zeit für Übergang von Punkt 1 auf Punkt 2)
    Die Krönung wäre natürlich das ganze per App auszuwählen um die verschiedenen Abläufe zu starten…
    Kann mir jemand bei diesem Vorhaben helfen???

    Antworten
  158. Thomas am 22. Juli 2020 20:00

    Sorry,
    bin mit der Browsertechnik nicht klar gekommen 🙂

    Antworten
  159. Jochen am 30. Juli 2020 16:27

    Moin!
    Das Tutorial ist wirklich prima und enthält alles, was für den Einstieg in Bezug auf „WS2801“ notwendig ist! Allerdings bricht der Befehl „sudo pip install adafruit-ws2801“ mit dem Hinweis, dass „SetupTools“ zu alt sei, einfach ab. Ich habe einen Tag recherchiert und herumprobiert, bis ich die Lösung hatte. „sudo pip install –upgrade setuptools“ aktualisiert das SetupTool und die Adafruit Bibliotheken werden problemlos installiert.

    Antworten
  160. Thomas am 23. August 2020 22:10

    Moin zusammen,
    hat denn keiner eine Idee oder die Muße mir zu helfen um das Projekt (gegen meinen Sohn 🙂 ) unzusetzen?
    Ich wäre sehr dankbar.. 🙂

    Antworten
  161. Mister X am 6. Januar 2021 16:05

    Hallo zusammen,

    ist es möglich die den Pi mit dem Handy zu verbinden und so die Led zu steuern?
    Ich kenne mich leider nicht genug damit aus.
    Danke schonmal im voraus!!!

    Antworten
  162. Axel am 11. Februar 2021 23:28

    Hallo, ich habe mich beim Aufbau an das Tutorial gehalten, Hyperion wurde eingerichtet, die Installation scheint OK zu sein. Wenn ich den PI gebootet habe und den LED-Streifen anschliesse leuchten die meisten LED’s weiß. Will ich eine Farbe einstellen erhalte ich die folgende Meldung, der Streifen bleibt weiß.
    ssh out: hyperion-remote –clearall
    ssh in: hyperion-remote:
    ssh in: version : V1.03.5 (GitHub-66bef6b/fb413cd-1566231780
    ssh in: build time: Aug 25 2019 10:39:08
    ssh out: Unable to connect to host

    Antworten
  163. Jan am 16. Februar 2021 14:54

    Hi,
    danke für die Super Anleitung allerdings funktioniert das bei mir nicht. Die LED`s werden, unabhängig ob der Pi angeschlossen ist oder nicht, einfach nur unterschiedlich weiß beleuchtet und werden extrem heiß 🙁

    Auf dem Pi erscheint beim ausführen der Datei: ModuleNotFoundError: No module named ‚Adafruit_WS2801‘

    Ich habe jetzt schon mehrmals alles installiert und den Pi neu aufgesetzt, leider ohne Erfolg.
    SPI wurde aktiviert sowie mehrmals die Bibliotheken neu installiert.

    Hat noch jemand eine Idee ?

    Grüße

    Antworten
  164. Markus am 14. März 2021 20:36

    Ich möchte meinen Pool auf der Gartenterasse damit in Szene setzen und das ganze gekoppelt mit Homematic, Nodered, Neo auch über das Handy steuern. Mein Test Aufbau funktioniert schon ganz gut, allerdings habe ich ein Problem, ich kann die einzelnen Funktionen nicht mit aktuellem Status verlassen. Ich will sagen, wenn während der Regenbogen läuft (wheel) oder die Farbe wechselt die Funtkion mit Return oder Break abbreche, wird zunächst auf die Start Konstelation der Pixel zurück
    geschaltet. Dieser Effekt gefällt mir nicht. Ich möchte den aktuellen Zustand einfrieren, dann runter dimmen und den nächsten Effekt starten können. Gibt es eine Möglichkeit die Functionen mit aktuellem Status zu verlassen, finde in diversen Tutorials zu Python nichts passendes. Hat hier jemand einen Ansatz für mich.
    Ansonsten eine Tolle Libary, zum lernen und erweitern.

    Antworten
  165. Markus am 15. März 2021 23:29

    Eine Nacht drüber schlafen und man erkennt, das Problem lag an ganz anderer Stelle im Code……

    Antworten
  166. Mike Broers am 28. Juli 2021 14:10

    Hallo vorab erstmal ein sehr gutes Tutorial um in die Thematik ein zu steigen. Jedoch habe ich aktuell das Problem mit meiner 5m (160 LED’s) WS2801 das Problem, dass die LED´s während der Animation in anderen Farben aufflackern, weiß jemand eventuell woran das liegen könnte?

    Ich benutze ein Raspberry PI 4B+ und habe mir die im Tutorials angegebenen Materialien gekauft sprich Netzteil (dies ist auf 5V eingestellt) usw. Die Verpinnung habe ich auch schon überprüft da ist alles ok.

    Gruß Mike

    Antworten
  167. Pingback: Raspberry Pi LED Effekt – hsga

  168. Matthias am 27. Januar 2022 12:04

    Hallo,

    auch im Jahr 2022 macht das Tutorial richtig spass. Vielen Dank dafür.

    Ich habe alles 1:1 nachgebastelt und verwende ein separates Netzteil für das Lichtband.

    Leider habe ich folgenden Effekt: egal, welchen Befehl ich benutze (z.B. beim Abspielen des Example Programms) leuchten die jeweils angesteuerten LEDs nur kurz auf uns erlöschen sofort wieder. Sie erscheinen in der richtigen Reihenfolge und Farbe…. aber jeweils leider nur für den Bruchteil einer Sekunde.

    Irgendeine Idee, wo das Problem liegen könnte?

    Vielen Dank,
    Matthias

    Antworten
    • Matthias am 27. Januar 2022 13:21

      Ah, noch eine zusätzliche Info: ich verwende ein an Pi ZERO…. was aber eigentlich keinen Unterschied machen sollte, oder?

      Antworten
    • Matthias am 27. Januar 2022 13:39

      Hahaaa…. kaum gepostet, schon den Fehler selber entdeckt: ich hatte das Netzt das LED-Band auf 12V eingestellt. Sobald ich es auf 5V gestellt hatte, funktionierte es einwandfrei. Also: nicht den selben Anfängerfehler machen…. 🙂

      Antworten
  169. Danny am 5. Februar 2022 13:27

    Leider wird nicht darauf eingegangen wie der Anschluss ohne Schaltnetzteil (empfohlen) sprich mit Power Jack Adapter und Netzteil auszusehen hat. Benötige ich ein Breadboard? Wo muss andernfalls etwas gelötet werden? Die Amazon Links leiten auf eine Suche bei der hauptsächlich WS2812 zu sehen sind, ein einziger Artikel ist in 1m WS2801 aber mit schlechten Bewertungen. Bin nach Lesen des Tutorials leider nicht wirklich schlauer.

    Antworten
    • Danny am 6. Februar 2022 11:10

      Nach mehrmaligem Lesen bin ich nun doch schlauer geworden. Mir stellt sich nur eine einzige Frage: Kann ich anstelle von PIN 6 (GND) auch PIN 14, 20, 25, 30, 34 oder 39 verwenden? PIN 1-12 ist bei mir bereits durch das RemotePi Board belegt.

      Antworten
      • Felix am 6. Februar 2022 12:24

        Das ist kein Problem. Du kannst auch mehrere Anschlüsse an den gleichen GND Pin legen, das ist ganz dir überlassen.

  170. Danny am 8. Februar 2022 21:52

    Ich weiß nicht so recht, ob mein Setup korrekt ist, ich habe batocera.linux auf dem Pi4 und über Umwege die benötigten python libs installiert (pip über wheel, rest über piwheels.org via pip; musste für sysv-ipc und rpi-ws281x die armv7 wheels runterladen und umbenennen in *-py3-none-any.whl damit sie installieren gingen). Dann über wget diesen Test gezogen und ausgeführt: https://raw.githubusercontent.com/adafruit/Adafruit_CircuitPython_WS2801/main/examples/ws2801_simpletest.py Leider tut sich nichts. Lichter bleiben dunkel. Ich weiß nun nicht, ob irgendetwas an meinem Setup evtl. verkehrt ist oder ob ein Hardwaredefekt vorliegt (LEDs, Power Jack Adapter sowie Netzteil sind heute erst per DHL angekommen). Hier mal ein paar Bilder: https://imgur.com/a/g1MwryN

    Antworten
    • Danny am 9. Februar 2022 15:54

      Ja, Netzteil ist defekt.

      Antworten
  171. Harry am 11. Februar 2022 15:48

    würde gerne wissen wie das mit 12V LEDs ist, denn ich habe den WS 2815 und ob ein Raspberry 1B+ auch funktioniert weil die 3 und 4 ja zurzeit einfach nicht verfügbar sind?
    danke und LG

    Antworten
  172. anv in am 11. April 2022 8:45

    https://elementtutorials.com/tools/hex-color-picker.html

    Antworten
  173. Stephan am 5. Juni 2022 10:58

    Hallo,
    habe mich gerade neu in dieses Thema eingelesen, und erfolgreich mit einem WS2801 getestet.
    Jetzt möchte ich einen 2 SPI port (Bus) am Raspberry PI 4 einrichten.
    Hatte hier was von PIN 38 und 40 gelesen.
    Wie kann ich diese PIN im Raspberry Pi zuweisen?
    Kann mir da jemand helfen?

    Antworten
    • Stephan am 6. Juni 2022 19:26

      Hat sich erledigt.
      Habe es hin bekommen. 🙂

      # Code
      import time
      import RPi.GPIO as GPIO
      import Adafruit_WS2801
      import Adafruit_GPIO.SPI as SPI

      PIXEL_COUNT_0 = 160
      PIXEL_COUNT_1 = 160

      SPI_PORT_0 = 0
      SPI_DEVICE_0 = 0
      stripe_1 = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT_0, spi=SPI.SpiDev(SPI_PORT_0, SPI_DEVICE_0), gpio=GPIO)

      SPI_PORT_1 = 1
      SPI_DEVICE_1 = 0
      stripe_2 = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT_1, spi=SPI.SpiDev(SPI_PORT_1, SPI_DEVICE_1), gpio=GPIO)

      Falls es noch jemand benötigt. 🙂

      Antworten
  174. Matthias am 16. August 2022 13:22

    Schönen guten Tag,
    ich habe hier noch ein WS2801 liegen und gesehen, das mein Motherboard eine Unterstützung für Adressierbare RGB Streifen hat, genauer gesagt JRAINBOW mit 3 Pins: +5V , Data und Ground, wie es bei einem WS2812B zu finden ist.

    Gibt es irgend eine Möglichkeit, den WS2801 mit seinen 4 Pins dort anzuschließen?
    Einen Converter oder ähnliches? Google will mir dabei nicht helfen 🙁

    Besten Dank‘ im Voraus!

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Raspberry Pi Roboter der eigenen Stimme folgen lassen (Teil 5)

So installierst du Google Chromium auf dem Raspberry Pi

Raspberry Pi Webserver Installation Teil 3 – MySQL

Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry Pi

Raspberry Pi: eQ-3 Thermostat mit OpenHAB im Smart Home nutzen

Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.