• 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
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Allgemein»Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen

Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen

Facebook Twitter LinkedIn Tumblr Email Reddit
LED Grafik
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

In diesem Tutorial zeige ich die Benutzung und eine Demo des Treibers für mehrzeilige MAX7219 Matrizen, welchen ich geschrieben habe.Mit dieser Bibliothek lassen sich verschiedene aneinander gesteckte quadratische Matrizen als ein ganzes Modul steuern und u.a. Texte und sogar Bilder darauf projezieren.

Meine Bibliothek ist eine erweiterte und verbesserte Version von JonA1961’s MAX7219array (https://github.com/JonA1961/MAX7219array)

 

Übersicht

  • Zubehör
  • Vorbereitung
  • Aufbau der Matrizen
  • Bibliothek installieren
  • Demo Code

 

Zubehör

Beim Kauf von MAX7219 Matrizen, solltest du darauf achten, dass diese quadratisch sein müssen.

  • ein paar quadratische MAX7219 Dot Matrizen
  • Jumper (meisten bei den DIY Dot Matrizen mit enthalten)
  • female to female Jumper Kabel
  • Lötutensilien

In diesem Artikel zeige ich wie man eine MAX7219 LED Matrix zusammenlötet.

 

Vorbereitung

Um die LED Matrizen einwandfrei nutzen zu können, muss die python spi Bibliothek installiert sein. Falls dies bereits geschehen ist, kannst du diesen Schritt überspringen.

Falls nicht, empfehle ich den ersten Teil dieses Artikels, in dem die Installation beschrieben ist:
http://www.100randomtasks.com/simple-spi-on-raspberry-pi

 

Aufbau der Raspberry Pi LED Matrizen

Nachdem du alle Matrizen zusammengelötet hast, müssen sie noch verbunden werden. Damit die Darstellung mittels des Treibers korrekt ist, ist es wichtig sie wie auf den Bildern unten zu verkabeln. Die erste Matrix ist von vorne gesehen unten links, die folgenden darüber. Wenn die Spalte gefüllt ist, kommt die nächste Matrix in die Spalte rechts daneben nach unten, die folgenden wieder darüber usw. Die Enden der Spalten kannst du mit Jumperkabeln verbinden, die aneinander liegenden mittels kleinen Jumpern.

 

20140801_145824
Vorderseite (Matrizen sind nummeriert)
 

back
Rückseite (Jumper Kabel von Matrix 1 geht zum RaspberryPi)
 

Jede Matrix hat folgende Pins:

Rechts: CLK – CS – DIN – GND – VCC

Links: CLK – CS – DOUT – GND – VCC

Der DOUT Pin der vorherigen Matrix wird mit dem DIN der folgenden Matrix verbunden.  Die anderen Pins werden entsprechend ihres Namen miteinander verbunden.

Die Pins der ersten Matrix gehen wie folgt mit dem Pi verbunden:

board
 

LED Matrix Bibliothek installieren

Zum einfachen download meiner Bibliothek habe ich ein GitHub Repo angelegt, was das installieren sehr einfach macht (der github client sollte natürlich installiert sein):

git clone https://github.com/tutRPi/multilineMAX7219.git && cd multilineMAX7219

In diesem Ordner sind nun zwei wichtige Dateien:

multilineMAX7219.py – Die eigentliche Hauptdatei, welche alle Funktionen enthält

multilineMAX7219_fonts.py – Diese Datei enthält die Buchstaben und Zeichen der Schriften. Falls du eine neue Schriftart hinzufügen willst, füge sie in dieser Datei hinzu.

 

Es ist wichtig die multilineMAX7219.py Datei (Zeile 113/114) zu bearbeiten und deine Größe in MATRIX_WIDTH und MATRIX_HEIGHT einzutragen.

 

Demo Code – 8×8 LED Matrix

Um eine Demo laufen zu lassen, gib folgendes ein:

python multilineMAX7219_demo.py

Hier sind einige Effekte und Funktionen demonstriert.

 

Ich habe vor allem einen Schwerpunkt auf die Graphikfunktionen gelegt und daher auch einen Editor zum „Bilder zeichnen“ erstellt, welche du sehr einfach mit der Bibliothek visualisieren kannst.

Die Seite mit dem Editor gibt’s hier.

Wie du siehst ist der Code des Raspberry Pi Logos bereits vorgegeben (auf 3×3 Matrizen). Mit Python kann es auch eingefügt werden:

logo = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0],[0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0],[0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1],[0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1],[0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0],[1,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0],[1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,0],[1,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0],[1,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0],[1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,0],[1,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1],[0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1],[0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1],[0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1],[0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0],[0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0],[0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]

Und nun kann es gezeichnet werden.

LEDMatrix.gfx_sprite_array(logo)
LEDMatrix.gfx_render()

Für mehr Details schau am besten in die  multilineMAX7219_demo.py Datei und in multilineMAX7219.py wo alle Funktionen beschrieben sind.

 

Hier noch ein Beispiel Video (nur eine verkleinerte Version der Demo Datei):

Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi LED Matrix Library – Installation for multiline m x n MAX7219 LED Matrices
Nächster Beitrag Snake auf Raspberry Pi MAX7219 Matrizen spielen

Ä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

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

193 Kommentare

  1. Andreas am 5. April 2015 12:51

    Frage: Wie viele von den LED-Matrizen kann man problemlos direkt an den RPI anschließen?
    P.S. Ein wirklich klasse Tutorial! Danke

    Antworten
    • Felix am 5. April 2015 12:53

      Ich hatte 15 Module (3×5) getestet, was kein Problem darstellte. Im Prinzip sind unendlich viele möglich, wobei der Spannungsabfall natürlich beachtet werden muss.

      Antworten
      • Andreas am 5. April 2015 12:57

        Vielen Dank. Ich dachte nur, weil in irgendeinem anderen Artikel von einer notwendigen externen Spannungsquelle die Rede ist.

      • Felix am 5. April 2015 13:00

        Die von mir verwendeten Module brauchen 5V Eingangsspannung, sind also problemlos ohne externe Spannungsquelle betreibbar. Ab einer gewissen Anzahl (konnte ich leider noch nicht testen, wie viele genau) ist eine zusätzliche Spannungsquelle nötig. Größere Module (z.B. 32x16LEDs) werden i.d.R. nicht direkt vom Pi versorgt.

      • Andreas am 5. April 2015 13:59

        Also sollten meine 1×4 Module funktionieren 😀
        Noch eine andere Frage: Geht Ihr Editor für Matrix-Graphiken noch (bei mir geht er nicht; vielleicht falscher Browser)

      • Andreas am 5. April 2015 14:01

        Ok hat sich schon erledigt, bei Chrome funktioniert es nicht, dafür aber bei Firefox 🙂

  2. Andreas am 17. Mai 2015 17:22

    So, ich habe jetzt ein weiteres Problem:
    Nach dem Zusammenlöten wird jetzt beim Programmstart nur wirres Zeug angezeigt. Woran könnte das liegen?

    Antworten
    • Felix am 17. Mai 2015 17:24

      Was wird genau angezeigt und vor allem was hast du ausgeführt?

      Antworten
    • Andreas am 17. Mai 2015 17:58

      Ich habe die multiline7219_demo.py ausgeführt. Das Resultat ist Folgendes:
      https://goo.gl/FEpqWT
      Liegt das an den Lötstellen?

      Antworten
      • Felix am 17. Mai 2015 18:03

        Ja, das sieht sehr nach unsauberen Lötstellen aus. Bei den MAX7219 IC ist es gar nicht so einfach die Kontakte sauber zu verlöten. Du kannst aber auch jedes einzeln auf Funktionalität prüfen (benutze dafür am besten die Bibliothek, die ich hier vorstelle)

  3. Andreas am 17. Mai 2015 17:22

    So, ich habe jetzt ein weiteres Problem:
    Nach dem Zusammenlöten wird jetzt beim Programmstart nur wirres Zeug angezeigt. Woran könnte das liegen?

    Antworten
    • Felix am 17. Mai 2015 17:24

      Was wird genau angezeigt und vor allem was hast du ausgeführt?

      Antworten
    • Andreas am 17. Mai 2015 17:58

      Ich habe die multiline7219_demo.py ausgeführt. Das Resultat ist Folgendes:
      https://goo.gl/FEpqWT
      Liegt das an den Lötstellen?

      Antworten
      • Felix am 17. Mai 2015 18:03

        Ja, das sieht sehr nach unsauberen Lötstellen aus. Bei den MAX7219 IC ist es gar nicht so einfach die Kontakte sauber zu verlöten. Du kannst aber auch jedes einzeln auf Funktionalität prüfen (benutze dafür am besten die Bibliothek, die ich hier vorstelle)

  4. Andreas am 24. Mai 2015 15:20

    So, ich habe jetzt die Lötstellen überprüft. Allerdings hat sich das Problem noch nicht gelöst. ich glaube aber kaum, dass es an den Lötstellen liegt, da es bei jeder Matrix gleich aussieht.
    Also habe ich eine Frage: was wird bei Ihnen angezeigt, wenn Sie nur eine Spannung anlegen und die Datenverbindung unberührt lassen?

    Viele Grüße
    Andreas

    Antworten
    • Felix am 24. Mai 2015 15:25

      Das weiß ich nicht mehr hundert prozentig, ich bin mir aber relativ sicher, dass beim Anlegen der Spannung die Matrizen alle schwarz waren/nichts angezeigt wurde.
      Was wird denn nach dem initialisieren (blank) angezeigt?

      Antworten
    • Andreas am 24. Mai 2015 15:32

      Ok, jetzt bekomme ich langsam Angst…
      Ich probiere jetzt schon seit 1 1/2 Stunden rum, schreibe dann einen Kommentar, und dann funktioiert es plötzlich mit dem gleichen Aufbau…

      Ich melde mich wieder, wenn es nicht mehr geht 😀

      Viele Grüße und einen entspannten Sonntag ohne nervige Kommentare

      Andreas

      Antworten
      • Felix am 24. Mai 2015 15:34

        Merkwürdig 😀 Klingt ein bisschen nach einem Wackelkontakt.

  5. Andreas am 24. Mai 2015 15:20

    So, ich habe jetzt die Lötstellen überprüft. Allerdings hat sich das Problem noch nicht gelöst. ich glaube aber kaum, dass es an den Lötstellen liegt, da es bei jeder Matrix gleich aussieht.
    Also habe ich eine Frage: was wird bei Ihnen angezeigt, wenn Sie nur eine Spannung anlegen und die Datenverbindung unberührt lassen?

    Viele Grüße
    Andreas

    Antworten
    • Felix am 24. Mai 2015 15:25

      Das weiß ich nicht mehr hundert prozentig, ich bin mir aber relativ sicher, dass beim Anlegen der Spannung die Matrizen alle schwarz waren/nichts angezeigt wurde.
      Was wird denn nach dem initialisieren (blank) angezeigt?

      Antworten
    • Andreas am 24. Mai 2015 15:32

      Ok, jetzt bekomme ich langsam Angst…
      Ich probiere jetzt schon seit 1 1/2 Stunden rum, schreibe dann einen Kommentar, und dann funktioiert es plötzlich mit dem gleichen Aufbau…

      Ich melde mich wieder, wenn es nicht mehr geht 😀

      Viele Grüße und einen entspannten Sonntag ohne nervige Kommentare

      Andreas

      Antworten
      • Felix am 24. Mai 2015 15:34

        Merkwürdig 😀 Klingt ein bisschen nach einem Wackelkontakt.

  6. Raphael Rühl am 17. Juni 2015 20:48

    Bei welchem deutschen Shop bekomme ich die LED Matrixen?
    Die Lieferzeiten bei dem angegebenen sind mir zu lange.

    Antworten
    • Felix am 17. Juni 2015 23:38

      Weiß ich nicht, ich habe leider keinen gefunden, der die quadratischen Matrizen liefert. Musste auf meine ca. 20 Module 2-3 Wochen warten.

      Antworten
  7. Raphael Rühl am 17. Juni 2015 20:48

    Bei welchem deutschen Shop bekomme ich die LED Matrixen?
    Die Lieferzeiten bei dem angegebenen sind mir zu lange.

    Antworten
    • Felix am 17. Juni 2015 23:38

      Weiß ich nicht, ich habe leider keinen gefunden, der die quadratischen Matrizen liefert. Musste auf meine ca. 20 Module 2-3 Wochen warten.

      Antworten
  8. Rico am 22. September 2015 0:06

    Hallo,

    ich habe Probleme mit der Darstellung von Umlauten.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    stdout_encoding = sys.stdout.encoding or sys.getfilesystemencoding()
    text="ÄÄÖÖÜÜ"
    print text.decode("utf-8").encode(stdout_encoding)
    LEDMatrix.scroll_message_horiz([text.decode("utf-8").encode(stdout_encoding)], 1, 6, DIR_L, CP437_FONT)
    

    Der Print-Befehl klappt wunderbar, in der Konsole werden die Umlaute korrekt angezeigt. Auf der LED-Matrix dagegen wird allerdings jeweils nur ein kryptisches Symbol für den Buchstaben angezeigt. Es macht keinen Unterschied ob mit oder ohne Umwandlung (ich habe schon diverses ausprobiert). Woran kann das liegen?

    Antworten
    • Rico am 22. September 2015 0:08

      Eckige Klammern werden hier als Befehl zum durchstreichen interpretiert 🙂 Darin stand, dass ich natürlich auch sämtliche Importe gemacht habe (inklusive Fonts).

      Antworten
    • Felix am 22. September 2015 1:22

      Sind die Umlaute in der FONT Datei enthalten? Wenn ja versuch sie mal mittels des Index zu laden. Falls nicht kannst du auch einfach einen zusätzlichen Eintrag erstellen und die Umlaute selbst definieren. Mit decode wird das aber nicht klappen, vermute ich (das erstellt „kryptische Zeichen“, die dann anders interpretiert werden).

      Antworten
  9. Rico am 22. September 2015 0:06

    Hallo,

    ich habe Probleme mit der Darstellung von Umlauten.

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    stdout_encoding = sys.stdout.encoding or sys.getfilesystemencoding()
    text="ÄÄÖÖÜÜ"
    print text.decode("utf-8").encode(stdout_encoding)
    LEDMatrix.scroll_message_horiz([text.decode("utf-8").encode(stdout_encoding)], 1, 6, DIR_L, CP437_FONT)
    

    Der Print-Befehl klappt wunderbar, in der Konsole werden die Umlaute korrekt angezeigt. Auf der LED-Matrix dagegen wird allerdings jeweils nur ein kryptisches Symbol für den Buchstaben angezeigt. Es macht keinen Unterschied ob mit oder ohne Umwandlung (ich habe schon diverses ausprobiert). Woran kann das liegen?

    Antworten
    • Rico am 22. September 2015 0:08

      Eckige Klammern werden hier als Befehl zum durchstreichen interpretiert 🙂 Darin stand, dass ich natürlich auch sämtliche Importe gemacht habe (inklusive Fonts).

      Antworten
    • Felix am 22. September 2015 1:22

      Sind die Umlaute in der FONT Datei enthalten? Wenn ja versuch sie mal mittels des Index zu laden. Falls nicht kannst du auch einfach einen zusätzlichen Eintrag erstellen und die Umlaute selbst definieren. Mit decode wird das aber nicht klappen, vermute ich (das erstellt „kryptische Zeichen“, die dann anders interpretiert werden).

      Antworten
  10. Rico am 22. September 2015 17:23

    Bin ein ziemlicher Noob in der Programmierung solcher Dinge. Kannst du mir ein Beispiel für so ein Laden mittels Index geben? Das Problem ist: Die Verwendung des Umlauts (und anderer Zeichen) soll möglichst ohne aufwendige Konvertierung etc. funktionieren.
    Ziel ist: Über ein Textfeld einer php-Page einen String an ein python-Script zu senden, der dann über die LED-Matrix ausgegeben wird. Das habe ich auch schon hinbekommen, nur eben mit den Sonderzeichen klappt’s nicht. Nun wollte ich auf unterster Ebene anfangen, aber selbst das funktioniert schon nicht. Die Umlaute sind in der fonts-Datei enthalten
    [ 0x79, 0x7D, 0x16, 0x12, 0x16, 0x7D, 0x79, 0x00 ], # 0x8E (Ä)
    [ 0x01, 0x19, 0x3C, 0x66, 0x66, 0x3C, 0x19, 0x01 ], # 0x99 (Ö)
    [ 0x3D, 0x7D, 0x40, 0x40, 0x7D, 0x3D, 0x00, 0x00 ], # 0x9A (Ü)
    werden aber trotzdem falsch dargestellt. Beim Ansteuern über den entsprechenden Unicode-Wert (z.B. 0x99 für Ö) wird der Buchstabe korrekt dargestellt, nur eben nicht als einzelner String in einer Zeichenkette.
    Wäre super, wenn du mir da weiterhelfen könntest

    Antworten
    • Felix am 22. September 2015 18:33

      Hast du mal versucht die Library zu verändern und # -*- coding: utf-8 -*- an den Anfang zu schreiben? Ich habe damals Unicode nicht berücksichtigt/getestet. Btw. 0x8E ist nicht der Unicode für „Ä“, sondern 0xC4 (dezimal 196). Die Abfrage führt über ein Array und ord() des characters. Falls du decode benutzt werden mehrere chars erstellt und es kommt nichts richtiges bei raus.

      Antworten
  11. Rico am 22. September 2015 17:23

    Bin ein ziemlicher Noob in der Programmierung solcher Dinge. Kannst du mir ein Beispiel für so ein Laden mittels Index geben? Das Problem ist: Die Verwendung des Umlauts (und anderer Zeichen) soll möglichst ohne aufwendige Konvertierung etc. funktionieren.
    Ziel ist: Über ein Textfeld einer php-Page einen String an ein python-Script zu senden, der dann über die LED-Matrix ausgegeben wird. Das habe ich auch schon hinbekommen, nur eben mit den Sonderzeichen klappt’s nicht. Nun wollte ich auf unterster Ebene anfangen, aber selbst das funktioniert schon nicht. Die Umlaute sind in der fonts-Datei enthalten
    [ 0x79, 0x7D, 0x16, 0x12, 0x16, 0x7D, 0x79, 0x00 ], # 0x8E (Ä)
    [ 0x01, 0x19, 0x3C, 0x66, 0x66, 0x3C, 0x19, 0x01 ], # 0x99 (Ö)
    [ 0x3D, 0x7D, 0x40, 0x40, 0x7D, 0x3D, 0x00, 0x00 ], # 0x9A (Ü)
    werden aber trotzdem falsch dargestellt. Beim Ansteuern über den entsprechenden Unicode-Wert (z.B. 0x99 für Ö) wird der Buchstabe korrekt dargestellt, nur eben nicht als einzelner String in einer Zeichenkette.
    Wäre super, wenn du mir da weiterhelfen könntest

    Antworten
    • Felix am 22. September 2015 18:33

      Hast du mal versucht die Library zu verändern und # -*- coding: utf-8 -*- an den Anfang zu schreiben? Ich habe damals Unicode nicht berücksichtigt/getestet. Btw. 0x8E ist nicht der Unicode für „Ä“, sondern 0xC4 (dezimal 196). Die Abfrage führt über ein Array und ord() des characters. Falls du decode benutzt werden mehrere chars erstellt und es kommt nichts richtiges bei raus.

      Antworten
  12. Rico am 22. September 2015 20:47

    Habe ich gemacht, hat aber leider nichts geändert. Das mit dem Decode war auch nur ein Ansatz zur Lösung des Problems. Wie du aber schon sagst, bringt es mich nicht weiter. Das kann doch nicht so schwer sein, einen Umlaut da durchscrollen zu lassen?!

    Antworten
    • Felix am 22. September 2015 20:52

      Ich müsste mir das mal genauer ansehen, habe aber in den nächsten Wochen kaum Zeit. Wenn du willst kannst du deine Skripte mal irgendwo hochladen und verlinken. Ich kann sie mir ansehen, sobald ich mehr Zeit finde.
      LG Felix

      Antworten
  13. Rico am 22. September 2015 20:47

    Habe ich gemacht, hat aber leider nichts geändert. Das mit dem Decode war auch nur ein Ansatz zur Lösung des Problems. Wie du aber schon sagst, bringt es mich nicht weiter. Das kann doch nicht so schwer sein, einen Umlaut da durchscrollen zu lassen?!

    Antworten
    • Felix am 22. September 2015 20:52

      Ich müsste mir das mal genauer ansehen, habe aber in den nächsten Wochen kaum Zeit. Wenn du willst kannst du deine Skripte mal irgendwo hochladen und verlinken. Ich kann sie mir ansehen, sobald ich mehr Zeit finde.
      LG Felix

      Antworten
  14. Rico am 22. September 2015 22:22

    Das wär super, allerdings habe ich an den Standard-Skripten (Library und Fonts) nichts großartig geändert, außer dass ich wie gefordert die Anzahl der Matrizen geändert habe (zwei horizontal angeordnete).
    Das Mini-Skript zum probieren habe ich ja quasi schon gepostet:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import multilineMAX7219 as LEDMatrix
    from multilineMAX7219_fonts import CP437_FONT, SINCLAIRS_FONT, LCD_FONT, TINY_FONT
    from multilineMAX7219 import DIR_L, DIR_R, DIR_U, DIR_D
    from multilineMAX7219 import DIR_LU, DIR_RU, DIR_LD, DIR_RD
    from multilineMAX7219 import DISSOLVE, GFX_ON, GFX_OFF, GFX_INVERT
    import time
    import sys
    
    LEDMatrix.init()
    
    text="ÄÄÖÖÜÜ"
    
    LEDMatrix.scroll_message_horiz([text], 1, 6, DIR_L, CP437_FONT)
    
    exit(0)

    Ich weiß nicht, wo der Fehler liegt. Auch wenn er wahrscheinlich total simpel und offensichtlich ist…

    Antworten
  15. Rico am 22. September 2015 22:22

    Das wär super, allerdings habe ich an den Standard-Skripten (Library und Fonts) nichts großartig geändert, außer dass ich wie gefordert die Anzahl der Matrizen geändert habe (zwei horizontal angeordnete).
    Das Mini-Skript zum probieren habe ich ja quasi schon gepostet:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import multilineMAX7219 as LEDMatrix
    from multilineMAX7219_fonts import CP437_FONT, SINCLAIRS_FONT, LCD_FONT, TINY_FONT
    from multilineMAX7219 import DIR_L, DIR_R, DIR_U, DIR_D
    from multilineMAX7219 import DIR_LU, DIR_RU, DIR_LD, DIR_RD
    from multilineMAX7219 import DISSOLVE, GFX_ON, GFX_OFF, GFX_INVERT
    import time
    import sys
    
    LEDMatrix.init()
    
    text="ÄÄÖÖÜÜ"
    
    LEDMatrix.scroll_message_horiz([text], 1, 6, DIR_L, CP437_FONT)
    
    exit(0)

    Ich weiß nicht, wo der Fehler liegt. Auch wenn er wahrscheinlich total simpel und offensichtlich ist…

    Antworten
  16. Holger am 28. Januar 2016 18:41

    Hallo zusammen,

    ich habe 6 Matrizen nebeneinander. Dies funktioniert soweit und in der multilineMAX7219.py ist auch 6 und 1 eingetragen. Änder ich das nun auf 7 und 1 Matritzen und hänge eine 7. dazu spielt das ganze verrückt. Es funktionieren dann teilweise nur die ersten 3. Ich habe schon durchgetauscht ud ausgetauscht. Immer ab der 7.

    Jemand eine Idee was das sein könnte. Einzeln funktioniert auch jede.

    Gruß
    Holger

    Antworten
    • Felix am 28. Januar 2016 19:01

      Bei welchen Befehlen tritt das auf? Da ich mehr als 7 Matrizen (3×3 bzw. inzw 4×4 bzw 3×5) verwendet und getestet habe, kann ich ausschließen, dass es an der Datenübertragung liegt (siehe Video). Falls du 8 Matrizen hast, kannst du mal zwei Reihen je 4 Matrizen versuchen?

      Antworten
    • Holger am 28. Januar 2016 21:29

      Hi Felix,

      ja das kann ich mal testen. Was auch komisch ist, dass ich immer erst mal sudo python matrix_test.py aufrufen muss. Erst danach kann ich z.B. sudo python multilineMAX7219_demo.py aufrufen und wird korrekt angezeigt.

      Gruß
      Holger

      Antworten
      • philipp am 13. April 2021 10:20

        wo ruft man denn diese befehle auf?

  17. Holger am 28. Januar 2016 18:41

    Hallo zusammen,

    ich habe 6 Matrizen nebeneinander. Dies funktioniert soweit und in der multilineMAX7219.py ist auch 6 und 1 eingetragen. Änder ich das nun auf 7 und 1 Matritzen und hänge eine 7. dazu spielt das ganze verrückt. Es funktionieren dann teilweise nur die ersten 3. Ich habe schon durchgetauscht ud ausgetauscht. Immer ab der 7.

    Jemand eine Idee was das sein könnte. Einzeln funktioniert auch jede.

    Gruß
    Holger

    Antworten
    • Felix am 28. Januar 2016 19:01

      Bei welchen Befehlen tritt das auf? Da ich mehr als 7 Matrizen (3×3 bzw. inzw 4×4 bzw 3×5) verwendet und getestet habe, kann ich ausschließen, dass es an der Datenübertragung liegt (siehe Video). Falls du 8 Matrizen hast, kannst du mal zwei Reihen je 4 Matrizen versuchen?

      Antworten
    • Holger am 28. Januar 2016 21:29

      Hi Felix,

      ja das kann ich mal testen. Was auch komisch ist, dass ich immer erst mal sudo python matrix_test.py aufrufen muss. Erst danach kann ich z.B. sudo python multilineMAX7219_demo.py aufrufen und wird korrekt angezeigt.

      Gruß
      Holger

      Antworten
  18. Holger am 4. Februar 2016 15:07

    So, hab noch ein wenig gebastelt. 4×2 funktioniert auf Anhieb. Gleiche Matritzen umgesteckt auf 8×1 spinnt das ganze total rum. Ja, ich habe auch die Einstellung in der multilineMAX7219.py angepasst 🙂

    Ich habe leider nicht so viele Female-Female Kabel, dass ich die einmal durchtauschen könnte. Mir fällt im Moment nix ein woran es liegen könnte.

    Gruß
    Holger

    Antworten
    • Holger am 17. Februar 2016 10:00

      Hallo zusammen,

      ich wollte auch mal einen Status geben zu meinem Problem, dass bei einer Kombination von 8×1 das ganze rumspinnt, 5×2 aber z.B. problemlos funktioniert.
      Da mir mit der Zeit die Jumperkabel ausgingen wurde ich immer stutziger ob das Problem nicht vielleicht damit zu tun. Nachdem ich nun alle Jumperkabel durch kurze gelötete Verbindungen ersetzt habe funktioniert derzeit sogar 9×1 ohne Probleme.

      http://imgur.com/a/M2irQ

      Gruß
      Holger

      Antworten
  19. Holger am 4. Februar 2016 15:07

    So, hab noch ein wenig gebastelt. 4×2 funktioniert auf Anhieb. Gleiche Matritzen umgesteckt auf 8×1 spinnt das ganze total rum. Ja, ich habe auch die Einstellung in der multilineMAX7219.py angepasst 🙂

    Ich habe leider nicht so viele Female-Female Kabel, dass ich die einmal durchtauschen könnte. Mir fällt im Moment nix ein woran es liegen könnte.

    Gruß
    Holger

    Antworten
    • Holger am 17. Februar 2016 10:00

      Hallo zusammen,

      ich wollte auch mal einen Status geben zu meinem Problem, dass bei einer Kombination von 8×1 das ganze rumspinnt, 5×2 aber z.B. problemlos funktioniert.
      Da mir mit der Zeit die Jumperkabel ausgingen wurde ich immer stutziger ob das Problem nicht vielleicht damit zu tun. Nachdem ich nun alle Jumperkabel durch kurze gelötete Verbindungen ersetzt habe funktioniert derzeit sogar 9×1 ohne Probleme.

      http://imgur.com/a/M2irQ

      Gruß
      Holger

      Antworten
  20. Frak am 14. Februar 2016 15:47

    Hallo,
    erst einmal vielen Dank für die trefflichen Anleitungen.

    Bin gerade dabei eine größere Matrix zu schalten. Mit einem Modul klappt funtioniert alles toll, Laufschrift, Muster etc.

    Jedoch ist auf Deinem Foto der Rückseite der 9er Matrix die Anordnung der N1/N2/N3/N4 Jumper nicht genau zu erkennen. Kannst Du vielleicht die Schaltung etwas detaillierter angeben.

    Wäre super, Danke

    Antworten
    • Felix am 14. Februar 2016 15:57

      Wenn du auf das Bild klickst, vergrößert es sich. P1 muss immer an P2. Sprich alle müssen in der selben Richtung aufgestellt sein.

      Antworten
  21. Frak am 14. Februar 2016 15:47

    Hallo,
    erst einmal vielen Dank für die trefflichen Anleitungen.

    Bin gerade dabei eine größere Matrix zu schalten. Mit einem Modul klappt funtioniert alles toll, Laufschrift, Muster etc.

    Jedoch ist auf Deinem Foto der Rückseite der 9er Matrix die Anordnung der N1/N2/N3/N4 Jumper nicht genau zu erkennen. Kannst Du vielleicht die Schaltung etwas detaillierter angeben.

    Wäre super, Danke

    Antworten
    • Felix am 14. Februar 2016 15:57

      Wenn du auf das Bild klickst, vergrößert es sich. P1 muss immer an P2. Sprich alle müssen in der selben Richtung aufgestellt sein.

      Antworten
  22. Frak am 14. Februar 2016 16:14

    Danke für die schnelle Antwort. Die Verbindungen habe ich schon, bin mir nuit nicht sicher wie ob es einen Jumper über N1/N2 und N3/N4 und N1/N3 und N2/N4 zur Verbindung der Matrix-Module 1-2-5-4 / 2-3-6-5 / 4-5-8-7 / 5-6-9-8 gibt.

    Oder verstehe ich da was falsch???

    Antworten
    • Felix am 14. Februar 2016 18:09

      Die Jumper an den Ecken sind nur dazu da, um die Module aneinander festzuhalten.

      Antworten
  23. Frak am 14. Februar 2016 16:14

    Danke für die schnelle Antwort. Die Verbindungen habe ich schon, bin mir nuit nicht sicher wie ob es einen Jumper über N1/N2 und N3/N4 und N1/N3 und N2/N4 zur Verbindung der Matrix-Module 1-2-5-4 / 2-3-6-5 / 4-5-8-7 / 5-6-9-8 gibt.

    Oder verstehe ich da was falsch???

    Antworten
    • Felix am 14. Februar 2016 18:09

      Die Jumper an den Ecken sind nur dazu da, um die Module aneinander festzuhalten.

      Antworten
  24. Sebastian am 6. März 2016 19:59

    Hi,

    da ich noch nicht viel Erfahrung mit dem Löten habe, habe ich mir vor kurzem eine schon zusammengebaute Komponente mit 4*4 LED Modulen (quadratisch 8×8) beim Fachhändler bestellt.

    Bei dem Demo-Programm gibt es allerdings ein Problem: Es scheint so, als wäre die Reihenfolge der einzelnen LED Module nicht richtig. Bei Schriftzügen wird die Schrift von rechts nach links angezeigt und auch bei Animationen über mehrere Matrizen hinweg entstehen nicht nachzuvollziehende „Muster“

    Muss ich außer Länge und Breite der Anzeige noch irgendwo etwas einstellen?

    Antworten
    • Felix am 6. März 2016 20:15

      Hi Sebastian,
      ich weiß nicht welche Komponenten du verwendest, aber es kann durchaus sein, dass meine Bibliothek nicht (komplett) kompatibel mit diesen ist, da ich sie nur für die verlinkten Module geschrieben habe.

      Antworten
    • Sebastian am 6. März 2016 23:02

      Hi Felix,
      danke für die schnelle Antwort. Es handelt sich um die auch von dir benutzten Max 7219 Module. Der einzige Unterschied ist, dass sie auf einer großen Platine bereits zusammengefügt sind.

      http://eckstein-shop.de/3232-Dot-Matrix-Module-LED-Display-Drive-Module-MAX7219

      Das sollte eigentlich funktionieren oder?

      Antworten
      • Felix am 6. März 2016 23:07

        Das kann funktionieren – muss aber nicht. Wenn die „falschen“ Kanten aneinander sind, wird es komisch aussehen. Ansonsten kannst du natürlich meine Bibliothek auch so verändern, dass sie auch für deine Matrizen passt. Ich weiß, dass es auch nicht-quadratische Modelle gibt und wenn man diese nebeneinander schaltet, wird es nicht optimal aussehen.
        Ich hab das mal versucht in einem Bild zu veranschaulichen: http://i.imgur.com/K2H9xQ0.png

    • Sebastian am 6. März 2016 23:17

      Okay, verstehe. Dann bleibt mir wohl nichts anderes übrig als die Bib umzuschreiben.
      Vielen Dank für deine Hilfe 🙂

      Antworten
  25. Sebastian am 6. März 2016 19:59

    Hi,

    da ich noch nicht viel Erfahrung mit dem Löten habe, habe ich mir vor kurzem eine schon zusammengebaute Komponente mit 4*4 LED Modulen (quadratisch 8×8) beim Fachhändler bestellt.

    Bei dem Demo-Programm gibt es allerdings ein Problem: Es scheint so, als wäre die Reihenfolge der einzelnen LED Module nicht richtig. Bei Schriftzügen wird die Schrift von rechts nach links angezeigt und auch bei Animationen über mehrere Matrizen hinweg entstehen nicht nachzuvollziehende „Muster“

    Muss ich außer Länge und Breite der Anzeige noch irgendwo etwas einstellen?

    Antworten
    • Felix am 6. März 2016 20:15

      Hi Sebastian,
      ich weiß nicht welche Komponenten du verwendest, aber es kann durchaus sein, dass meine Bibliothek nicht (komplett) kompatibel mit diesen ist, da ich sie nur für die verlinkten Module geschrieben habe.

      Antworten
    • Sebastian am 6. März 2016 23:02

      Hi Felix,
      danke für die schnelle Antwort. Es handelt sich um die auch von dir benutzten Max 7219 Module. Der einzige Unterschied ist, dass sie auf einer großen Platine bereits zusammengefügt sind.

      http://eckstein-shop.de/3232-Dot-Matrix-Module-LED-Display-Drive-Module-MAX7219

      Das sollte eigentlich funktionieren oder?

      Antworten
      • Felix am 6. März 2016 23:07

        Das kann funktionieren – muss aber nicht. Wenn die „falschen“ Kanten aneinander sind, wird es komisch aussehen. Ansonsten kannst du natürlich meine Bibliothek auch so verändern, dass sie auch für deine Matrizen passt. Ich weiß, dass es auch nicht-quadratische Modelle gibt und wenn man diese nebeneinander schaltet, wird es nicht optimal aussehen.
        Ich hab das mal versucht in einem Bild zu veranschaulichen: http://i.imgur.com/K2H9xQ0.png

    • Sebastian am 6. März 2016 23:17

      Okay, verstehe. Dann bleibt mir wohl nichts anderes übrig als die Bib umzuschreiben.
      Vielen Dank für deine Hilfe 🙂

      Antworten
      • Felix am 6. März 2016 23:18

        Wenn du möchtest, kannst du die umgeschriebene Version auch gerne hier verlinken, dann haben ggf. auch andere User etwas davon 🙂

      • JD am 16. Januar 2018 12:51

        Hi, hast du umgeschriebene version der Demo datei für eine 4×4 DOT-Matrix und könntest die verlinken ?

  26. Alex am 12. April 2016 21:36

    Moin,

    eine kurze Frage: Du schreibst oben dass die MAtrizen quadratisch sein _müssen_. Hat das technische Gründe oder meinst Du damit einfach nur, dass Deine Bibliothek nur mit quadratischen funktioniert?
    Was würde passieren wenn ich 5×7-Matrizen nutzen würde?

    Antworten
    • Felix am 12. April 2016 22:30

      Das war eigentlich anders gemeint 😀 Es gibt nämlich auch 8×8 LED Matrizen, wobei das PCB nicht quadratisch ist. Bei denen kann man keine ebene, verbundene Fläche erstellen.
      Aber ja, meine Bibliothek müsste umgeschrieben werden, wenn du Matrizen mit 5×7 LEDs verwenden willst.

      Antworten
    • Alex am 13. April 2016 11:18

      OK, dann bin ich beruhigt. Ich hatte schon gedacht meine HArdwarebestellung wäre in den Sand gesetzt. 😉 Dass die Software angepasst werden muss, ist klar.
      Ich würde dann forken und Dir in ein paar Wochen ggf. einen Pull Request schicken wenn Du magst.

      Antworten
      • Felix am 13. April 2016 14:01

        Kannst du gerne tun 🙂 Nur werde ich es nicht testen können, da ich lediglich 8×8 Matrizen da habe.
        LG Felix

  27. Alex am 12. April 2016 21:36

    Moin,

    eine kurze Frage: Du schreibst oben dass die MAtrizen quadratisch sein _müssen_. Hat das technische Gründe oder meinst Du damit einfach nur, dass Deine Bibliothek nur mit quadratischen funktioniert?
    Was würde passieren wenn ich 5×7-Matrizen nutzen würde?

    Antworten
    • Felix am 12. April 2016 22:30

      Das war eigentlich anders gemeint 😀 Es gibt nämlich auch 8×8 LED Matrizen, wobei das PCB nicht quadratisch ist. Bei denen kann man keine ebene, verbundene Fläche erstellen.
      Aber ja, meine Bibliothek müsste umgeschrieben werden, wenn du Matrizen mit 5×7 LEDs verwenden willst.

      Antworten
    • Alex am 13. April 2016 11:18

      OK, dann bin ich beruhigt. Ich hatte schon gedacht meine HArdwarebestellung wäre in den Sand gesetzt. 😉 Dass die Software angepasst werden muss, ist klar.
      Ich würde dann forken und Dir in ein paar Wochen ggf. einen Pull Request schicken wenn Du magst.

      Antworten
      • Felix am 13. April 2016 14:01

        Kannst du gerne tun 🙂 Nur werde ich es nicht testen können, da ich lediglich 8×8 Matrizen da habe.
        LG Felix

  28. banto am 3. August 2016 15:54

    Hallo,
    erst mal vielen Dank für die ausführliche Beschreibung.
    Es hat bei mir auf anhieb mit einem Pi3 und einer 4×4 Matrix (16xMAX7219 aus 4 Streifen mit 4 MAX7219) funktioniert. Ich möchte die Punkte einzeln über die Funktion LEDMatrix.gfx_set_px(x,y,GFX_ON) ansprechen, leider sind meine Einzelmodule um 90 Grad gedreht. Gibt es eine Möglichkeit in der Konfiguration das zu korrigieren/einzustellen?
    Ich beutze diese Matrix Streifen http://de.aliexpress.com/item/MAX7219-Dot-Matrix-Module-For-Arduino-Microcontroller-4-In-One-Display-with-5P-Line/32637207300.html?isOrigTitle=true
    Besten Dank.
    VG Banto

    Antworten
    • Felix am 3. August 2016 16:11

      Hallo Banto,
      kannst du die Module nicht anders anordnen? Da ich nur meine zur Verfügung habe und somit nicht testen kann, müsstest du das selbst im Code ändern (sollte nicht all zu schwer sein).
      PS: Mit diesen sollte das kein Problem sein.
      LG, Felix

      Antworten
  29. banto am 3. August 2016 15:54

    Hallo,
    erst mal vielen Dank für die ausführliche Beschreibung.
    Es hat bei mir auf anhieb mit einem Pi3 und einer 4×4 Matrix (16xMAX7219 aus 4 Streifen mit 4 MAX7219) funktioniert. Ich möchte die Punkte einzeln über die Funktion LEDMatrix.gfx_set_px(x,y,GFX_ON) ansprechen, leider sind meine Einzelmodule um 90 Grad gedreht. Gibt es eine Möglichkeit in der Konfiguration das zu korrigieren/einzustellen?
    Ich beutze diese Matrix Streifen http://de.aliexpress.com/item/MAX7219-Dot-Matrix-Module-For-Arduino-Microcontroller-4-In-One-Display-with-5P-Line/32637207300.html?isOrigTitle=true
    Besten Dank.
    VG Banto

    Antworten
    • Felix am 3. August 2016 16:11

      Hallo Banto,
      kannst du die Module nicht anders anordnen? Da ich nur meine zur Verfügung habe und somit nicht testen kann, müsstest du das selbst im Code ändern (sollte nicht all zu schwer sein).
      PS: Mit diesen sollte das kein Problem sein.
      LG, Felix

      Antworten
  30. Banto am 3. August 2016 22:10

    Hallo Felix,
    hab mir jetzt eine Funktion dafür geschrieben :-))

    def XY(x,y,onoff):
    	LEDMatrix.gfx_set_px(x,(y/8)*8+7-y%8,onoff)

    Funktioniert prime ist aber sehr langsam. Geht das auch schneller?
    LG
    Banto

    Antworten
    • Felix am 4. August 2016 16:17

      Ich würde nicht jeden Pixel einzeln setzen, sondern entweder jene write Funktion, die ein Array an Daten auf einmal versendet, verändern oder eben das Array so manipulieren (Bereiche drehen), sodass es für deine Matrizen passt. Damit sollte es schneller sein.
      LG, Felix

      Antworten
  31. Banto am 3. August 2016 22:10

    Hallo Felix,
    hab mir jetzt eine Funktion dafür geschrieben :-))

    def XY(x,y,onoff):
    	LEDMatrix.gfx_set_px(x,(y/8)*8+7-y%8,onoff)

    Funktioniert prime ist aber sehr langsam. Geht das auch schneller?
    LG
    Banto

    Antworten
    • Felix am 4. August 2016 16:17

      Ich würde nicht jeden Pixel einzeln setzen, sondern entweder jene write Funktion, die ein Array an Daten auf einmal versendet, verändern oder eben das Array so manipulieren (Bereiche drehen), sodass es für deine Matrizen passt. Damit sollte es schneller sein.
      LG, Felix

      Antworten
  32. Patrick am 11. August 2016 13:59

    Gibt es eine Anleitung, wie ich eine weitere Spannungsquelle zwischen schalten kann. Also wenn ich jetzt eine sehr große LED Tafel betreiben will, was muss ich da tun?

    Bin ziemlich neu auf dem Gebiet.

    Danke schon einmal!

    Antworten
  33. Patrick am 11. August 2016 13:59

    Gibt es eine Anleitung, wie ich eine weitere Spannungsquelle zwischen schalten kann. Also wenn ich jetzt eine sehr große LED Tafel betreiben will, was muss ich da tun?

    Bin ziemlich neu auf dem Gebiet.

    Danke schon einmal!

    Antworten
  34. Florian Schweiger am 25. August 2016 0:27

    Hallo, muss ich irgendwo angeben, mit welchen GPIO Ports ich die Matrizen ansteuere?
    Bitte um rasche Rückmeldung,
    mgf Florian

    Antworten
    • Felix am 25. August 2016 0:29

      Nein, da es über SPI läuft. Ggf. den Chipselect (CS), falls du einen anderen nutzt.

      Antworten
  35. Florian Schweiger am 25. August 2016 0:27

    Hallo, muss ich irgendwo angeben, mit welchen GPIO Ports ich die Matrizen ansteuere?
    Bitte um rasche Rückmeldung,
    mgf Florian

    Antworten
    • Felix am 25. August 2016 0:29

      Nein, da es über SPI läuft. Ggf. den Chipselect (CS), falls du einen anderen nutzt.

      Antworten
  36. Christian am 28. August 2016 13:51

    Danke für dieses tolle Tutorial und für die bereitgestellte Bibliothek.

    Ich habe trotzdem noch eine Frage:
    Und zwar versuche ich das mit der selben Hardware aber einer anderen Software nachzustellen (C/C++ und WiringPi).
    Hier bin ich allerdings auf ein paar Hindernisse gestoßen und weiß jetzt nicht, wie ich mehrere Matrizen ansteuern kann, OHNE für jede Matrix ein eigenes Chip Select Kabel zum RasPi zu verlegen (man kann auch „normale Pins“ als CS Leitungen verwenden).

    Du hast es jedoch so realisiert, dass es nur ein CS gibt und DIN vom ersten über DOUT auf DIN vom nächsten geht.

    Jetzt meine Fragen :
    Wäre das auch mit C++ und WiringPi möglich ?
    Ist DOUT der letzte Zustand der Matrix, bevor sie über DIN überschrieben wird ?
    Falls nicht: Wie kann man mehrere Slaves (Matrizen) mit SPI über nur ein CS steuern ?

    Mein derzeitiger Code für 2 Matrizen (vereinfacht, ohne Funktionen) :
    Hierzu werden jedoch zwei CS Leitungen benötigt.

    #define CS_0      0
    #define CS_1      1
    
    int main() {
            wiringPiSPISetup(CS_0, 1000000)
            wiringPiSPISetup(CS_1, 1000000)
            uint8_t buf[3];
            zeile    = //...
            wert    = //...
            buf[0] = zeile;                //Zeile  1 .. 8
    	buf[1] = wert;                //Wert 0 (keine LED) bis 255 (alle LEDs der Zeile)
    	wiringPiSPIDataRW(CS_0, buf, 2);        // Read -/ Write Vorgang
            wiringPiSPIDataRW(CS_1, buf, 2);
    }
    Antworten
    • Felix am 29. August 2016 11:42

      Am besten du schaust dir das Datenblatt vom MAX7219 an. Du brauchst nur einen CS, da DOUT einer Matrix nur die Daten für die folgenden Matrizen enthält.

      Antworten
    • Christian am 29. August 2016 12:29

      Danke für den Hinweis. Das Datenblatt anschauen war das richtige Stichwort.
      Nur wie kann ich DOUT beeinflussen ?
      Zur Zeit übernimmt DOUT den Wert von DIN einen Schreibzugriff später (so wie ein Schieberegister). Nur lassen sich so eben nicht Bilder oder Schriftzüge auf mehreren Matrizen darstellen. Wie hast du das geschafft ?
      Ich kann zwar kein Python, versuche aber das dann mit C++ nachzustellen.

      Antworten
      • Felix am 29. August 2016 12:36

        Dadurch, dass ich die Dimensionen der Matrizen kenne (NxM) berechnet meine Bibliothek, welche Matrix was anzeigen muss. Ist etwas Aufwand, sich die Gedanken zu machen, aber du kannst die Funktionen meiner Bibliothek fast 1:! übersetzen. Ich würde mich freuen, wenn du deine Version auch auf GitHub o.ä. teilst, falls andere auch daran interessiert sind 🙂

    • Christian am 30. August 2016 9:29

      Also wenn du etwas auf z.B. Matrix 4 anzeigen willst, dann clearst du CS (low aktiv), schickst dann die Daten und shiftest 3x mit NO OP, damit die Matrizen 1 bis 3 nichts anzeigen, dann kommt der Delay und man sieht nur etwas auf Matrix 4.
      Habe ich das richtig verstanden ?

      Antworten
      • Felix am 30. August 2016 19:01

        Nein, der Status aller Matrizen wird gespeichert und bei einer Änderung insgesamt übergeben. Übergibst du nur geshiftete Werte, wären die Matrizen vorher leer.

  37. Christian am 28. August 2016 13:51

    Danke für dieses tolle Tutorial und für die bereitgestellte Bibliothek.

    Ich habe trotzdem noch eine Frage:
    Und zwar versuche ich das mit der selben Hardware aber einer anderen Software nachzustellen (C/C++ und WiringPi).
    Hier bin ich allerdings auf ein paar Hindernisse gestoßen und weiß jetzt nicht, wie ich mehrere Matrizen ansteuern kann, OHNE für jede Matrix ein eigenes Chip Select Kabel zum RasPi zu verlegen (man kann auch „normale Pins“ als CS Leitungen verwenden).

    Du hast es jedoch so realisiert, dass es nur ein CS gibt und DIN vom ersten über DOUT auf DIN vom nächsten geht.

    Jetzt meine Fragen :
    Wäre das auch mit C++ und WiringPi möglich ?
    Ist DOUT der letzte Zustand der Matrix, bevor sie über DIN überschrieben wird ?
    Falls nicht: Wie kann man mehrere Slaves (Matrizen) mit SPI über nur ein CS steuern ?

    Mein derzeitiger Code für 2 Matrizen (vereinfacht, ohne Funktionen) :
    Hierzu werden jedoch zwei CS Leitungen benötigt.

    #define CS_0      0
    #define CS_1      1
    
    int main() {
            wiringPiSPISetup(CS_0, 1000000)
            wiringPiSPISetup(CS_1, 1000000)
            uint8_t buf[3];
            zeile    = //...
            wert    = //...
            buf[0] = zeile;                //Zeile  1 .. 8
    	buf[1] = wert;                //Wert 0 (keine LED) bis 255 (alle LEDs der Zeile)
    	wiringPiSPIDataRW(CS_0, buf, 2);        // Read -/ Write Vorgang
            wiringPiSPIDataRW(CS_1, buf, 2);
    }
    Antworten
    • Felix am 29. August 2016 11:42

      Am besten du schaust dir das Datenblatt vom MAX7219 an. Du brauchst nur einen CS, da DOUT einer Matrix nur die Daten für die folgenden Matrizen enthält.

      Antworten
    • Christian am 29. August 2016 12:29

      Danke für den Hinweis. Das Datenblatt anschauen war das richtige Stichwort.
      Nur wie kann ich DOUT beeinflussen ?
      Zur Zeit übernimmt DOUT den Wert von DIN einen Schreibzugriff später (so wie ein Schieberegister). Nur lassen sich so eben nicht Bilder oder Schriftzüge auf mehreren Matrizen darstellen. Wie hast du das geschafft ?
      Ich kann zwar kein Python, versuche aber das dann mit C++ nachzustellen.

      Antworten
      • Felix am 29. August 2016 12:36

        Dadurch, dass ich die Dimensionen der Matrizen kenne (NxM) berechnet meine Bibliothek, welche Matrix was anzeigen muss. Ist etwas Aufwand, sich die Gedanken zu machen, aber du kannst die Funktionen meiner Bibliothek fast 1:! übersetzen. Ich würde mich freuen, wenn du deine Version auch auf GitHub o.ä. teilst, falls andere auch daran interessiert sind 🙂

    • Christian am 30. August 2016 9:29

      Also wenn du etwas auf z.B. Matrix 4 anzeigen willst, dann clearst du CS (low aktiv), schickst dann die Daten und shiftest 3x mit NO OP, damit die Matrizen 1 bis 3 nichts anzeigen, dann kommt der Delay und man sieht nur etwas auf Matrix 4.
      Habe ich das richtig verstanden ?

      Antworten
      • Felix am 30. August 2016 19:01

        Nein, der Status aller Matrizen wird gespeichert und bei einer Änderung insgesamt übergeben. Übergibst du nur geshiftete Werte, wären die Matrizen vorher leer.

  38. Kai am 2. November 2016 12:19

    Hallo zusammen,

    ich habe mir 5 Segmente bestellt. Reicht die Spannungsversorgung vom Pi aus?
    Wenn nein, wie schließe ich das ganze an? Ich habe leider nicht so die Elektrotechnik Skills.

    Danke im voraus
    Kai

    Antworten
    • Felix am 2. November 2016 13:14

      Ich habe über 9 Module ohne externe Stromversorgung am Pi betrieben. Falls doch notwendig: VCC an extern + und GND an GND vom Pi und Minus Pol der Stromversorgung.

      Antworten
    • Kai Hackl am 3. November 2016 8:03

      Danke Felix!

      Ich probiere es einfach mal aus. Sie sollten sie Tage in der Post sein.
      Wahrscheinlich ist das ganze etwas fehl am Platz hier, aber hast du schonmal eine einfache Uhr angezeigt? Bzw. ist es Möglich das Skript so umzuschreiben dass man Nachrichten über die Konsole an es schicken kann und falls nicht geschickt wurde eine Uhr angezeigt wird?

      Sorry, kenn mich in Python leider nicht so aus 🙁

      Viele Grüße Kai

      Antworten
      • Felix am 3. November 2016 10:32

        Hallo Hai,
        schau mal in dem Video, da habe ich eine „Pseudo Uhr“ angzeigt (9 statt 12 Strichen). Wenn die Matrix etwas größer wäre, kann man bestimmt auch eine analoge Uhr anzeigen. Eine Digitaluhr bzw. Nachrichten sind kein Problem.
        LG, Felix

    • Kai am 7. November 2016 12:16

      Super! Hab das alles hinbekommen.

      Wo es bei mir jetzt etwas klemmt: ich würde gerne auf der ersten anzeige eine grafik anzeigen und die anderen zum anzeigen einer nachricht benutzen. habe in der demo gesehen dass du das mit den raumnummern so ähnlich machst. allerdings bekomme ich es nicht hin dann auf den anderen anzeigen den text anzuzeigen bzw zu scrollen 🙁

      hast du einen tipp für mich wie ich das hinbekomme?

      Antworten
  39. Kai am 2. November 2016 12:19

    Hallo zusammen,

    ich habe mir 5 Segmente bestellt. Reicht die Spannungsversorgung vom Pi aus?
    Wenn nein, wie schließe ich das ganze an? Ich habe leider nicht so die Elektrotechnik Skills.

    Danke im voraus
    Kai

    Antworten
    • Felix am 2. November 2016 13:14

      Ich habe über 9 Module ohne externe Stromversorgung am Pi betrieben. Falls doch notwendig: VCC an extern + und GND an GND vom Pi und Minus Pol der Stromversorgung.

      Antworten
    • Kai Hackl am 3. November 2016 8:03

      Danke Felix!

      Ich probiere es einfach mal aus. Sie sollten sie Tage in der Post sein.
      Wahrscheinlich ist das ganze etwas fehl am Platz hier, aber hast du schonmal eine einfache Uhr angezeigt? Bzw. ist es Möglich das Skript so umzuschreiben dass man Nachrichten über die Konsole an es schicken kann und falls nicht geschickt wurde eine Uhr angezeigt wird?

      Sorry, kenn mich in Python leider nicht so aus 🙁

      Viele Grüße Kai

      Antworten
      • Felix am 3. November 2016 10:32

        Hallo Hai,
        schau mal in dem Video, da habe ich eine „Pseudo Uhr“ angzeigt (9 statt 12 Strichen). Wenn die Matrix etwas größer wäre, kann man bestimmt auch eine analoge Uhr anzeigen. Eine Digitaluhr bzw. Nachrichten sind kein Problem.
        LG, Felix

    • Kai am 7. November 2016 12:16

      Super! Hab das alles hinbekommen.

      Wo es bei mir jetzt etwas klemmt: ich würde gerne auf der ersten anzeige eine grafik anzeigen und die anderen zum anzeigen einer nachricht benutzen. habe in der demo gesehen dass du das mit den raumnummern so ähnlich machst. allerdings bekomme ich es nicht hin dann auf den anderen anzeigen den text anzuzeigen bzw zu scrollen 🙁

      hast du einen tipp für mich wie ich das hinbekomme?

      Antworten
  40. Michael Hoffmann am 2. November 2016 14:23

    Moin Felix,

    erstmal wirklich cooles Projekt! Ein Kumpel und ich versuchen das Snake Game nachzubauen. Wir sind beide Laien, aber wir hatten einfach mal Lust uns mit einem Raspberry Pi, Python etc zu beschäftigen.
    Auf unserem Raspberry Pi ist Python 3 installiert. Dein Code ist aber für Python 2 oder?
    Jedenfalls haben wir schon die mehrzeilige Matrix zusammengelötet und wollten heute den Testcode abspielen lassen, aber es passierte nichts.
    Müssen wir zu Python 2 wechseln? Oder den Code auf Python 3 anpassen? Hast du vielleicht eine Idee für uns?

    Antworten
    • Felix am 2. November 2016 22:20

      Hi Michael,
      ich habe den Code für Python2 geschrieben und getestet, allerdings sollte er sehr einfach anpassbar sein, da die meisten Funktionen auch auf Python3 genauso aufrufbar sind. Lediglich die prints etc. müssten ggf. überarbeitet werden.
      LG, Felix

      Antworten
  41. Michael Hoffmann am 2. November 2016 14:23

    Moin Felix,

    erstmal wirklich cooles Projekt! Ein Kumpel und ich versuchen das Snake Game nachzubauen. Wir sind beide Laien, aber wir hatten einfach mal Lust uns mit einem Raspberry Pi, Python etc zu beschäftigen.
    Auf unserem Raspberry Pi ist Python 3 installiert. Dein Code ist aber für Python 2 oder?
    Jedenfalls haben wir schon die mehrzeilige Matrix zusammengelötet und wollten heute den Testcode abspielen lassen, aber es passierte nichts.
    Müssen wir zu Python 2 wechseln? Oder den Code auf Python 3 anpassen? Hast du vielleicht eine Idee für uns?

    Antworten
    • Felix am 2. November 2016 22:20

      Hi Michael,
      ich habe den Code für Python2 geschrieben und getestet, allerdings sollte er sehr einfach anpassbar sein, da die meisten Funktionen auch auf Python3 genauso aufrufbar sind. Lediglich die prints etc. müssten ggf. überarbeitet werden.
      LG, Felix

      Antworten
  42. Peter am 14. November 2016 11:31

    Hallo und vielen Dank für Deine Anleitung,

    Folgende Frage habe ich an Dich, ich habe eine Matrix mit 1×4 Blöcken. Ich habe in Deiner Bibliothek Die Zeilen 113 un 114 in beiden Richtungen versucht zu ändern, sprich;

    height = 1 und width=4 und umgekehrt, aber es klappt nicht einen scrollenden text über die Länge der 4 module hin zu bekommen.

    Hast Du eventuell den entscheidenden Tipp für mich ?

    ich würde einfach nur gerne direkt die Bibliothek aufrufen:

    ./multilineMAX7219.py message [repeats [speed [direction [font]]]]

    Kannst Du mir hierfür ein Besispiel geben ?

    Vielen Dank im voraus / regards Peter

    Antworten
    • Felix am 15. November 2016 0:24

      Möglicherweise sind deine Matrizen anders angeordnet und somit 90° verschoben. Du musstest sie entweder anders anordnen oder die Bibliothek umschreiben. Ein ähnliches Problem hatte ein User hier, allerdings weiß ich nicht mehr, ob er die angepasste Bibliothek online gestellt hat.

      Antworten
  43. Peter am 14. November 2016 11:31

    Hallo und vielen Dank für Deine Anleitung,

    Folgende Frage habe ich an Dich, ich habe eine Matrix mit 1×4 Blöcken. Ich habe in Deiner Bibliothek Die Zeilen 113 un 114 in beiden Richtungen versucht zu ändern, sprich;

    height = 1 und width=4 und umgekehrt, aber es klappt nicht einen scrollenden text über die Länge der 4 module hin zu bekommen.

    Hast Du eventuell den entscheidenden Tipp für mich ?

    ich würde einfach nur gerne direkt die Bibliothek aufrufen:

    ./multilineMAX7219.py message [repeats [speed [direction [font]]]]

    Kannst Du mir hierfür ein Besispiel geben ?

    Vielen Dank im voraus / regards Peter

    Antworten
    • Felix am 15. November 2016 0:24

      Möglicherweise sind deine Matrizen anders angeordnet und somit 90° verschoben. Du musstest sie entweder anders anordnen oder die Bibliothek umschreiben. Ein ähnliches Problem hatte ein User hier, allerdings weiß ich nicht mehr, ob er die angepasste Bibliothek online gestellt hat.

      Antworten
  44. Peter am 16. November 2016 11:08

    Danke für die prompte Antwort, ich habe diese Matrizen:

    https://www.amazon.de/gp/product/B01BUTAFW2/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

    Ich habe aber auch den Fehler gelöst, ich benutze die ursprügliche Bibliothek MAX2719 und dort musste ich folgende Parameter setzen:

    device = led.matrix(cascaded = 4)
    device.orientation(90)

    nun funktionirert Textausgabe und Lauftext über die gesamte Breite.

    Wenn ich nun aber noch 3 von diesen Matrizen benutzen wollte um ein 4×4 Array zu haben, würde das dann mit deiner Bibliothe funktionieren ?

    Regards Peter

    Antworten
    • slk am 30. Dezember 2016 15:04

      Wo kann ich die von Dir erwähnte „ursprüngliche“ Bibliothek finden? Hast Du einen Link für mich. Danke.

      Antworten
    • Jonny am 10. April 2017 19:22

      Hi Peter, kannst du das bitte genauer beschreiben, genau dieses Problem habe ich gerade auch!
      Danke

      Antworten
  45. Peter am 16. November 2016 11:08

    Danke für die prompte Antwort, ich habe diese Matrizen:

    https://www.amazon.de/gp/product/B01BUTAFW2/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

    Ich habe aber auch den Fehler gelöst, ich benutze die ursprügliche Bibliothek MAX2719 und dort musste ich folgende Parameter setzen:

    device = led.matrix(cascaded = 4)
    device.orientation(90)

    nun funktionirert Textausgabe und Lauftext über die gesamte Breite.

    Wenn ich nun aber noch 3 von diesen Matrizen benutzen wollte um ein 4×4 Array zu haben, würde das dann mit deiner Bibliothe funktionieren ?

    Regards Peter

    Antworten
    • slk am 30. Dezember 2016 15:04

      Wo kann ich die von Dir erwähnte „ursprüngliche“ Bibliothek finden? Hast Du einen Link für mich. Danke.

      Antworten
    • Jonny am 10. April 2017 19:22

      Hi Peter, kannst du das bitte genauer beschreiben, genau dieses Problem habe ich gerade auch!
      Danke

      Antworten
  46. Björn am 25. November 2016 20:29

    hallo felix,
    vielen vielen dank dafür dieses anleitung.
    war zwar sehr skeptisch was den chinalieferant betrift von ebay aber die kam echt an, waren 10 stück für 22 euro.. nahja ausgepackt alle einzeln durchgetestet auch keine defekten bei. 9 stück schön sauber und ordentlich nach deinem bild mit heißkleber verklebt und angesteckt. alles nach beschreibung abgearbeitet und ……
    JAWOHLLLLLL es klappt alles so macht es echt spass anleitungen für anfanger nachzumachen wo mal wirklich alles bis ins kleinste beschrieben ist bin auf alle fälle super happy…..
    nahja gut alles geht doch n ich so glatt aber is dahin gestellt inder _demo.py die analoge uhr hat keine zeiger 🙂
    aber nochmals vielen dank dafür

    Antworten
    • Felix am 25. November 2016 20:32

      Hey Björn,
      freut mich, dass es klappt 🙂
      Bei der Demo erhebe ich keinen Anspruch auf Vollständigkeit – reine Demonstrationszwecke 😀

      Antworten
    • Björn am 1. Dezember 2016 0:11

      huhu
      spiele jetz schon ne weile mit rum und macht immer noch spass mein sohn hat nun dadurch angefangen zahlen und burchstaben zu lehrnen 🙂

      jedenfals is meine sorge das der pi das ganze nichtso mag
      jedesmal wenn ich den anmache und die 5v noch angeschlossen sind ladet er das os nicht… und zum zweiten habe ich im monitor nach dem ich ein .py script start immer so ein gelben blitz oben rechts nahaj mal permanend mal flackernt

      glaube das kann nicht gut sein achso fals es relevant ist es hängen 9 stück zusammen nachschub wurde bestellt auf 6 x 3 möchte ich kommen
      wenn externe einspeisung nötig ist bitte eine empfehlen weiss nich wirklich auf was ich da achten muss 5v is klar aber amper hmmm
      danke im vorraus und habe eine schöne zeit

      Antworten
      • Felix am 1. Dezember 2016 14:30

        Ich weiß nicht mehr genau wie viel mA eine LED Matrix braucht, aber denke um die 150 – 200 mA. D.h. dein Netzteil sollte mind. 3-4A liefern können. Du kannst aber auch eines mit mehr Leistung nehmen, wie z.B. in diesem Tutorial, in dem auch der Anschluss beschrieben wird.
        LG, Felix

  47. Björn am 25. November 2016 20:29

    hallo felix,
    vielen vielen dank dafür dieses anleitung.
    war zwar sehr skeptisch was den chinalieferant betrift von ebay aber die kam echt an, waren 10 stück für 22 euro.. nahja ausgepackt alle einzeln durchgetestet auch keine defekten bei. 9 stück schön sauber und ordentlich nach deinem bild mit heißkleber verklebt und angesteckt. alles nach beschreibung abgearbeitet und ……
    JAWOHLLLLLL es klappt alles so macht es echt spass anleitungen für anfanger nachzumachen wo mal wirklich alles bis ins kleinste beschrieben ist bin auf alle fälle super happy…..
    nahja gut alles geht doch n ich so glatt aber is dahin gestellt inder _demo.py die analoge uhr hat keine zeiger 🙂
    aber nochmals vielen dank dafür

    Antworten
    • Felix am 25. November 2016 20:32

      Hey Björn,
      freut mich, dass es klappt 🙂
      Bei der Demo erhebe ich keinen Anspruch auf Vollständigkeit – reine Demonstrationszwecke 😀

      Antworten
    • Björn am 1. Dezember 2016 0:11

      huhu
      spiele jetz schon ne weile mit rum und macht immer noch spass mein sohn hat nun dadurch angefangen zahlen und burchstaben zu lehrnen 🙂

      jedenfals is meine sorge das der pi das ganze nichtso mag
      jedesmal wenn ich den anmache und die 5v noch angeschlossen sind ladet er das os nicht… und zum zweiten habe ich im monitor nach dem ich ein .py script start immer so ein gelben blitz oben rechts nahaj mal permanend mal flackernt

      glaube das kann nicht gut sein achso fals es relevant ist es hängen 9 stück zusammen nachschub wurde bestellt auf 6 x 3 möchte ich kommen
      wenn externe einspeisung nötig ist bitte eine empfehlen weiss nich wirklich auf was ich da achten muss 5v is klar aber amper hmmm
      danke im vorraus und habe eine schöne zeit

      Antworten
      • Felix am 1. Dezember 2016 14:30

        Ich weiß nicht mehr genau wie viel mA eine LED Matrix braucht, aber denke um die 150 – 200 mA. D.h. dein Netzteil sollte mind. 3-4A liefern können. Du kannst aber auch eines mit mehr Leistung nehmen, wie z.B. in diesem Tutorial, in dem auch der Anschluss beschrieben wird.
        LG, Felix

  48. Marc am 14. Dezember 2016 9:22

    Hallo Felix,

    vielen Dank für die Anleitung!
    Ich bin RPi-Anfänger und bin noch nicht ganz vertraut mit den Biblothenken und wie ich diese für meine Zwecke einbinden kann.

    Ich habe eine sehr einfache Schleife erstellt in dem von 1-10 hochgezählt wird und via Print die Zahlen in der Konsole ausgegeben werden. Wie muss ich vorgehen wenn ich die Zahlen auf dem 8×8 LED Matrix ausgeben möchte?
    Gruß aus Rheine,
    Marc

    Antworten
    • Felix am 14. Dezember 2016 13:05

      Zunächst gibst du die Anzahl der Matizen (in deinem Fall 1×1) in der Bibliothek an. Danach kannst du die Library einfach mittels import multilineMAX7219 in dein eigenes Python Skript einbauen und die vorhandenen Funktionen aufrufen. Schau dir am besten mal die Beispieldatei genauer an.
      LG, Felix

      Antworten
    • Marc am 14. Dezember 2016 20:46

      Hallo Felix,

      mit diesem Beispielcode funktioniert die Anzeige.

      import max7219.led as led
      matrix = led.matrix()
      matrix.show_message("Test")
      matrix.clear()

      Allerdings möchte ich gerne eine Schfleife durchlaufen lassen und die Zahlen anstatt am Bildschirm per LED ausgeben!
      Bei diesem Code erhalte ich eine Fehlermeldung bei ……./led.py Zeile 441

      import max7219.led as led
      matrix = led.matrix()
      i = 1
      for i in range (1, 10): 
      	matrix.show_message(i)
      matrix.clear()

      Ich bitte um einen Denkanstoss wo ich was falsch mache bzw. wie es richtig geht!

      Antworten
      • Felix am 15. Dezember 2016 15:02

        Wie lautet die Fehlermeldung? Versuch mal matrix.show_message(str(i)), also die Zahl als String übergeben.

    • Marc am 15. Dezember 2016 20:50

      Hi,

      super, hat funktioniert!
      Hier mein Code zum hochzählen mit Ausgabe an der 8×8 LED Matrix.

      import max7219.led as led
      import time
      matrix = led.matrix()
      i = 1
      for i in range (1, 10): 
      	matrix.show_message(str(i))
      	time.sleep(1)
      matrix.clear()
      Antworten
  49. Marc am 14. Dezember 2016 9:22

    Hallo Felix,

    vielen Dank für die Anleitung!
    Ich bin RPi-Anfänger und bin noch nicht ganz vertraut mit den Biblothenken und wie ich diese für meine Zwecke einbinden kann.

    Ich habe eine sehr einfache Schleife erstellt in dem von 1-10 hochgezählt wird und via Print die Zahlen in der Konsole ausgegeben werden. Wie muss ich vorgehen wenn ich die Zahlen auf dem 8×8 LED Matrix ausgeben möchte?
    Gruß aus Rheine,
    Marc

    Antworten
    • Felix am 14. Dezember 2016 13:05

      Zunächst gibst du die Anzahl der Matizen (in deinem Fall 1×1) in der Bibliothek an. Danach kannst du die Library einfach mittels import multilineMAX7219 in dein eigenes Python Skript einbauen und die vorhandenen Funktionen aufrufen. Schau dir am besten mal die Beispieldatei genauer an.
      LG, Felix

      Antworten
    • Marc am 14. Dezember 2016 20:46

      Hallo Felix,

      mit diesem Beispielcode funktioniert die Anzeige.

      import max7219.led as led
      matrix = led.matrix()
      matrix.show_message("Test")
      matrix.clear()

      Allerdings möchte ich gerne eine Schfleife durchlaufen lassen und die Zahlen anstatt am Bildschirm per LED ausgeben!
      Bei diesem Code erhalte ich eine Fehlermeldung bei ……./led.py Zeile 441

      import max7219.led as led
      matrix = led.matrix()
      i = 1
      for i in range (1, 10): 
      	matrix.show_message(i)
      matrix.clear()

      Ich bitte um einen Denkanstoss wo ich was falsch mache bzw. wie es richtig geht!

      Antworten
      • Felix am 15. Dezember 2016 15:02

        Wie lautet die Fehlermeldung? Versuch mal matrix.show_message(str(i)), also die Zahl als String übergeben.

    • Marc am 15. Dezember 2016 20:50

      Hi,

      super, hat funktioniert!
      Hier mein Code zum hochzählen mit Ausgabe an der 8×8 LED Matrix.

      import max7219.led as led
      import time
      matrix = led.matrix()
      i = 1
      for i in range (1, 10): 
      	matrix.show_message(str(i))
      	time.sleep(1)
      matrix.clear()
      Antworten
  50. Lukas am 4. Januar 2017 16:40

    Was mache ich falsch? Ich bekomme jedes mal folgende Fehlermeldung beim Ausführen der multilineMAX7219_demo.py Datei:

    Traceback (most recent call last):
    File „multilineMAX7219_demo.py“, line 30, in
    import multilineMAX7219 as LEDMatrix
    File „/root/multilineMAX7219/multilineMAX7219.py“, line 104, in
    import spidev
    ImportError: No module named spidev

    Antworten
    • Felix am 4. Januar 2017 22:47

      Du hast spidev nicht installiert.

      Antworten
      • Christian am 25. März 2017 19:35

        Ich habe das selbe Problem.
        Mit deiner verlinkten Anleitung komme ich auch nicht wirklich weiter.
        Die Datei „sudo nano /etc/modprobe.d/raspi-blacklist.conf“ existiert nicht, also kann nichts gelöscht werden.

        Das „sudo python setup.py install“ produziert ein:
        „Traceback (most recent call last):
        File „setup.py“, line 29, in
        long_description= open(‚README.md‘).read() + „n“ + open(‚CHANGELOG.md‘).read(),
        IOError: [Errno 2] No such file or directory: ‚README.md'“

        Eine Idee?

  51. Lukas am 4. Januar 2017 16:40

    Was mache ich falsch? Ich bekomme jedes mal folgende Fehlermeldung beim Ausführen der multilineMAX7219_demo.py Datei:

    Traceback (most recent call last):
    File „multilineMAX7219_demo.py“, line 30, in
    import multilineMAX7219 as LEDMatrix
    File „/root/multilineMAX7219/multilineMAX7219.py“, line 104, in
    import spidev
    ImportError: No module named spidev

    Antworten
    • Felix am 4. Januar 2017 22:47

      Du hast spidev nicht installiert.

      Antworten
      • Christian am 25. März 2017 19:35

        Ich habe das selbe Problem.
        Mit deiner verlinkten Anleitung komme ich auch nicht wirklich weiter.
        Die Datei „sudo nano /etc/modprobe.d/raspi-blacklist.conf“ existiert nicht, also kann nichts gelöscht werden.

        Das „sudo python setup.py install“ produziert ein:
        „Traceback (most recent call last):
        File „setup.py“, line 29, in
        long_description= open(‚README.md‘).read() + „n“ + open(‚CHANGELOG.md‘).read(),
        IOError: [Errno 2] No such file or directory: ‚README.md'“

        Eine Idee?

  52. Dominik am 8. März 2017 17:05

    Hi,
    wie kann ich denn die einzelnen Pixel ansteuern? Normal geht das doch über … .pixel(…) habe das dann mal versucht zu definieren aber irgendwie geht das nicht. Kannst du mir dabei weiterhelfen?
    Grüße

    Antworten
  53. Dominik am 8. März 2017 17:05

    Hi,
    wie kann ich denn die einzelnen Pixel ansteuern? Normal geht das doch über … .pixel(…) habe das dann mal versucht zu definieren aber irgendwie geht das nicht. Kannst du mir dabei weiterhelfen?
    Grüße

    Antworten
  54. Dominik am 10. März 2017 14:47

    Hi,
    ich habe zwar noch nichts von dir gehört, bin aber inzwischen nochmal alles durchgegangen und dabei ist mir aufgefallen, das es eine Funktion mit dem Namen „gfx_set_px(g_x, g_y, state=GFX_INVERT)“ gibt.
    Diese habe ich dann auch mal versucht aufzurufen, soweit sieht beim Aufruf auch alles gut aus. Ich bekomme in der Konsole keinen Fehler angezeigt. Leider ändert sich nichts auf der Matrix.
    Hier mal der Code:
    LEDMatrix.gfx_set_px(1,1,GFX_ON)
    LEDMatrix.gfx_set_px(2,2,GFX_ON)
    eigentlich müsste das doch damit möglich sein oder?
    Was mache ich falsch?

    Grüße

    Antworten
  55. Dominik am 10. März 2017 14:47

    Hi,
    ich habe zwar noch nichts von dir gehört, bin aber inzwischen nochmal alles durchgegangen und dabei ist mir aufgefallen, das es eine Funktion mit dem Namen „gfx_set_px(g_x, g_y, state=GFX_INVERT)“ gibt.
    Diese habe ich dann auch mal versucht aufzurufen, soweit sieht beim Aufruf auch alles gut aus. Ich bekomme in der Konsole keinen Fehler angezeigt. Leider ändert sich nichts auf der Matrix.
    Hier mal der Code:
    LEDMatrix.gfx_set_px(1,1,GFX_ON)
    LEDMatrix.gfx_set_px(2,2,GFX_ON)
    eigentlich müsste das doch damit möglich sein oder?
    Was mache ich falsch?

    Grüße

    Antworten
  56. Square am 6. Mai 2017 21:21

    Hi,
    Ich habe leider ein Problem:
    Ich habe zwei Matrizen miteinander verbunden, dementsprechend auch MATRIX_WIDTH auf 1 und MATRIX_HEIGHT auf 2 gestellt, und sie angeschlossen.
    Die beiden Matrizen leuchten fröhlich rot, aber verändern sich einfach nicht. Ich habe schon ein paar print()-Funktionen in die „multilineMAX7219_demo.py“ gesetzt, welche beim Start des Programms auch ausgegeben werden, aber die Matrizen bleiben komplett beleuchtet.
    Fehlermeldungen sehe ich auch keine.
    Über Hilfe würde ich mich wirklich freuen, danke schonmal im Voraus!

    Antworten
    • Felix am 7. Mai 2017 12:13

      Hast du sie selbst zusammengelötet? Aus Erfahrung kann ich sagen, dass so etwas bei falsch verlöteten Kontakten oder bei falscher Verkablung auftreten kann.

      Antworten
  57. Square am 6. Mai 2017 21:21

    Hi,
    Ich habe leider ein Problem:
    Ich habe zwei Matrizen miteinander verbunden, dementsprechend auch MATRIX_WIDTH auf 1 und MATRIX_HEIGHT auf 2 gestellt, und sie angeschlossen.
    Die beiden Matrizen leuchten fröhlich rot, aber verändern sich einfach nicht. Ich habe schon ein paar print()-Funktionen in die „multilineMAX7219_demo.py“ gesetzt, welche beim Start des Programms auch ausgegeben werden, aber die Matrizen bleiben komplett beleuchtet.
    Fehlermeldungen sehe ich auch keine.
    Über Hilfe würde ich mich wirklich freuen, danke schonmal im Voraus!

    Antworten
    • Felix am 7. Mai 2017 12:13

      Hast du sie selbst zusammengelötet? Aus Erfahrung kann ich sagen, dass so etwas bei falsch verlöteten Kontakten oder bei falscher Verkablung auftreten kann.

      Antworten
  58. Gustav am 6. Juli 2017 18:17

    Bei mir gibt es beim Ausführen der Demo-Datei eine Fehlermeldung:
    File „/home/pi/multilineMAX7219/multilineMAX7219.py“, line 166, in
    spi.open(0,0)
    IOError: [Errno 2] No such file or directory

    Woran könnte das liegen?

    Antworten
    • Felix am 7. Juli 2017 0:25

      Ist spidev installiert? Versuche mal CS1 statt CS0.

      Antworten
  59. Gustav am 6. Juli 2017 18:17

    Bei mir gibt es beim Ausführen der Demo-Datei eine Fehlermeldung:
    File „/home/pi/multilineMAX7219/multilineMAX7219.py“, line 166, in
    spi.open(0,0)
    IOError: [Errno 2] No such file or directory

    Woran könnte das liegen?

    Antworten
    • Felix am 7. Juli 2017 0:25

      Ist spidev installiert? Versuche mal CS1 statt CS0.

      Antworten
  60. Gustav am 8. Juli 2017 10:59

    Hat jetzt eigentlich jemand die Bibliothek mit der Drehung um 90° irgendwo hochgeladen?

    Antworten
  61. Gustav am 8. Juli 2017 10:59

    Hat jetzt eigentlich jemand die Bibliothek mit der Drehung um 90° irgendwo hochgeladen?

    Antworten
  62. björn am 28. Januar 2018 13:50

    hilfe bekomme die nicht mehr zum laufen
    vorher ging es ohne probleme nun wollte ich die mal wieder einbaun
    alles richtig angeschlassen verdratet , pi is up to date aber es kommt nich sinvolles bei rum

    einer eine idee

    Antworten
  63. Christoph am 21. März 2018 15:48

    Hallo Zusammen,

    ich habe eine 1×4 Matrix von Amazon, die Matrix an sich funktioniert wunderbar, das habe ich mit der Bibliothek MAX7219 getestet, jedoch muss ich auch, wie schon mal weiter oben von jemandem erwähnt das ganze mit dem Parameter –block-orientation -90 aufrufen damit es vernünftig angezeigt wird. Wenn ich hier nun python multilineMAX7219_demo.py aufrufe, passiert einfach mal gar nichts. Egal was ich in der python multilineMAX7219.py angebe. Ich habe es schon mit 1×4, 4×1 und auch 2×2 probiert, nichts klappt. Es kommt auch keine Fehlermeldung.
    Kann mir jemand einen Tip geben?

    Antworten
    • Gamera am 17. Juli 2018 21:23

      Ich habe genau das gleiche Problem. Die Matrix leuchtet schön rot, aber das war es. Das Demo-Script ändert auch nichts dadran. Eine Fehlermeldung erhalte ich auch nicht. Ich habe leider die Vermutung, dass dieses Tutorial nicht mehr gepflegt wird.

      Antworten
  64. me am 1. Mai 2018 16:05

    Halloooooooo ,lebt hier nochwer ??

    Das tutorial ist SUPER,nur egal was ich versuche ich BRINGS NICHT HIN UMLAUTE DARZUSTELLEN :(((((((((((

    gibts hier keinen FIX ??????

    Antworten
  65. Joel am 28. Juni 2018 16:50

    Hallo
    ich habe eine Frage: Kann man alle 15 Matrizen an einen raspberry pi anschliessen oder braucht man da mehrere?

    Antworten
  66. Armin am 23. November 2018 21:24

    Hallo!

    Wir haben das Projekt auf einem raspberry pi3b+ umgesetzt. Es war schon nicht ganz leicht die ganzen Bibliotheken zu installieren. Da hat sich wohl viel geändert.
    Das glückte uns aber noch.

    Jetzt kriegen wir die Matriezn zum leichten. Das Demo Script tut auch was… Heißt: Die Matrizen verändern sic bei Ausführung. Nur nicht so wie sie sollen: Im Wesentlichen leuchtet von den 8×8 Matrizen immer die ganze Matrix oder nichts. Welche Matirzen leuchten, we3chselt bei Ausführung. Jedoch leuchten nie einzelne PINS.

    Irgendwelche Ideen, was wir tun können?

    Vielen Dank!!!

    Antworten
    • Franz am 14. Juni 2019 11:23

      Hallo Armin,
      ich habe gerade das selbe Problem, welches du beschreibst. Läuft es bei Dir mittlerweile? Verkabelt muss es richtig sein, da die Matrizen mit anderen Bibliotheken einwandfrei funktionieren.
      Danke

      Antworten
    • Marcel am 15. Juni 2019 15:02

      Hallo
      Konntet ihr das Problem lösen?
      Wir haben auch einen Raspberry Pi 3B+ mit 4 mal 4 8*8 Matrixen. Aber wenn wir das multilineMAX7219_demo.py laufen lassen leuchten nur die ganzen Matrixen und nicht einzelne LED.
      Bin im Moment ratlos an was es liegen könnte.
      Bin dankbar um jeden Rat.
      Wir haben auch schon versucht eine einzelne 8*8 Matrix an zu hängen und mit der MAX7219 zu betreiben aber funktioniert nicht.

      Antworten
    • Marcel am 15. Juni 2019 17:12

      Hallo
      Benutzt ihr auch einen Raspberry Pi 3B+ mit Stretch als OS?
      Wenn ja dann hilft euch das vielleicht weiter da wir ein ähnliches Problem hatten.
      Wir mussten in der multilineMAX7219.py nach spi open noch folgende Zeile einfügen.
      spi.max_speed_hz = 500000

      Antworten
  67. Rainer am 30. Dezember 2018 20:58

    Was wollen mir diese Worte sagen:
    pi@raspi3buero:~/multilineMAX7219 $ python multilineMAX7219_demo.py
    Traceback (most recent call last):
    File „multilineMAX7219_demo.py“, line 121, in
    LEDMatrix.scroll_message_vert(„Speed: „+chr(48+speed), „Message 2“,speed, DIR_U)
    File „/home/pi/multilineMAX7219/multilineMAX7219.py“, line 385, in scroll_message_vert
    this_char = font[ord(old_message[position + iter*MATRIX_WIDTH])]
    IndexError: string index out of range
    pi@raspi3buero:~/multilineMAX7219 $

    Ich habe 1 Zeile und 4 Matrizen und das auch in dem Hauptfile eingestellt

    Antworten
    • Oussi am 8. Januar 2019 21:30

      Ich habe das gleiche Problem hast dus schon gelöst ?

      Antworten
  68. Sebbi am 8. Januar 2019 18:28

    Ich hab leider keine Ahnung, wo ich die Jumper anbringen muss. Ich kann auf dem Bild leider überhaupt nix erkennen.

    Antworten
  69. Manuel am 21. Juli 2019 11:24

    Hallo zusammen, vielen Dank für das tolle Tutorial. Gibt es den auch eine Möglichkeit ein Matrix anzusteuern, welches aus zwei untereinanderliegenden Zeilen von 8×8 Matrizen besteht. Man könnte jetzt die Punkte einzeln ansteuern, das ist jedoch sehr mühselig. Eventuell Font Datei editieren oder ähnliches?

    Grüße Manuel

    Antworten
    • Christoph am 5. Januar 2020 12:58

      Hallo

      Ich habe das gleiche Problem. Ich versuche Buchstaben über zwei 8×8 Matrixen darzustellen, also so, dass die Buchstaben größer (höher) werden. Hast du eine Lösung gefunden?

      Christoph

      Antworten
  70. Bernd Podszuweit am 30. November 2019 0:35

    Hi,
    ich habe ein Problem mit den 4×4 Matrizen.
    Ich habe alles installiert, und auf 4 x 4 konfiguriert.
    Allerdings werden die 1. vier Elemente nicht richtig angesteuert.
    Reihe 2 – 4 werden nacheinander sauber angesteuert. Nur die 1. Reihe „spackt“ rum.
    Jetzt ist die Frage ob e vtl noch ein Einstellungsfehler vorhanden ist, oder ob evtl. das one in all Matrix Display ein fehler hat, oder ob evtl ein Anschluss vom Pi nicht richtig funktioniert.

    Vielleicht kann mir da jemand eine Hilfe geben um die Fehlerquelle zu identifizieren.

    Danke schon mal

    mfg Bernd

    Antworten
  71. Bernd Podszuweit am 5. Dezember 2019 19:32

    Hallo nochmal,
    das 1. Problem ist beseitigt. Das Matrix Display hatte wohl einen Schaden.
    Jetzt habe ich 3 1×4 Elemente geholt und angeschlossen und die Matrix wird angesteuert.
    Allerdings noch nicht ganz richtig.
    Zur Übersicht der Elemente:
    1 5 9
    2 6 A
    3 7 B
    4 8 C

    Es sind also 2 Elemente insgesamt.
    Wenn ich jetzt ein Pixel wandern lasse z.B. von 3 runter, dann taucht es nicht oben bei der 4 auf sondern bei der Nr. 2.
    Linke und rechte Verschiebungen passen. Vom rechten Rand der 3 wandert er dann von links nach rechts durch die 7 und dann weiter zu B und zurück zur 3.
    Aber Senkrecht scheinen die einzelnen Elemente falsch adressiert zu sein. Kann man die Anordnung in der Datei noch ändern oder evtl um 180 Grad drehen?

    Als Info wozu das ganze überhaupt benötigt wird kann ich sagen das wir einen 2. Raspberry Pi Geocache legen wollen. Es soll Snake vor Ort gespielt werden. Wenn dann eine bestimmte Punktzahl erreicht wurde, wird entweder eine Tür autmatisch geöffnet oder aber es wird beschrieben wir man zum Finale kommen kann.

    Nur erstmal muss das Display richtig funktionieren 🙂

    Vielen Dank schon mal für die Hilfe.

    Ciao Bernd

    Antworten
    • Bernd Podszuweit am 5. Dezember 2019 19:48

      Es sind 12 Elemente…. nicht 2!

      Antworten
  72. Michael am 3. Dezember 2021 14:29

    Ich hab das Projekt nachgemacht und bin dabei auf einige Hindernisse gestoßen. Das Tutorial ist ja auch schon sehr alt. Um es anderen zu erleichtern, hab ich die Bibliothek upgedatet:
    – Die SPI Frequenz limitiert, sonst kommt nur wirres Zeug an.
    – Die Blöcke können jetzt um 180° gedreht werden.
    – Alle Befehle nach Python 3 konvertiert
    – Ein script hinzugefügt, das die Nummerierung der Blöcke anzeigt

    statt wie oben angegeben also einfach folgende Zeile nutzen:

    git clone https://github.com/tutRPi/multilineMAX7219.git && cd multilineMAX7219

    Ebenso habe ich auch Snake auf Python 3 upgedatet, falls das noch jemand braucht:
    https://github.com/michaelWuensch/Snake-Game-MAX7219.git

    Viel Spaß beim Basteln!

    Antworten
    • Michael am 3. Dezember 2021 14:31

      Sorry, jetzt hab ich den falschen Link angegeben. Richtig lautet es so:

      git clone https://github.com/michaelWuensch/multilineMAX7219.git && cd multilineMAX7219

      Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Rotationssensor MPU-6050 mit WebGL am Raspberry Pi visualisieren

Raspberry Pi: Per IR Remote Befehle ausführen

Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen

Raspberry Pi Fingerprint Sensor zur Authentifizierung nutzen

Raspberry Pi Webserver Installation Teil 5 – FTP Server

Einführung & Programmierung des ESP8266 NodeMCU Boards

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.