MAX7219 8×8 LED module(s) aansturen

Een Raspberry Pi kun je vrij simpel gebruiken om LED displays aan te sturen. In dit stappenplan gaan we een 8×8 pixels LED display aansturen met behulp van de geïntegreerde MAX7219 LED driver en de SPI interface van de Raspberry Pi.

De MAX7219 8×8 LED zijn relatief goedkoop verkrijgbaar, er kunnen meerdere displays in cascade (doorgelust) aangesloten worden. Dit kan handig zijn als je een klok wilt maken of teksten op een grotere matrix wilt vertonen.

Componenten voor dit project

MAX7219 dot matrix module 8×8 (link)
• Dupont verbindingkabels male/female (link)

Raspberry Pi Zero, Raspberry Pi 2, Raspberry Pi 3
Raspbian Jessie (2016-05-27 kernel 4.4.13)

Aansluitschema

Matrix module Raspberry Pi pin Functie
VCC (+5V) 2 5v
GND (Ground) 6 Ground
DIN (Data in) 19 GPIO 10 (MOSI)
CS (Chip Select) 24 GPIO 8 (SPI CS0)
CLK (Clock) 23 GPIO 11 (SPI CLK)

max7219-led-8x8-aansluitschema-raspberry-pi

SPI interface activeren

We gaan de SPI interface gebruiken om te communiceren met het display, hiervoor moet de SPI interface op de Raspberry Pi geactiveerd worden. Met behulp van het onderstaande commando kun je controleren of SPI is geactiveerd:

ls /dev/spi*

Als SPI is geactiveerd verschijnt /dev/spidev0.0 /dev/spidev0.1 verschijnt dit niet activeer dan SPI als volgt:

sudo raspi-config

Selecteer de menu optie ‘Advanced Options’ ▸ SPI ▸ YES en druk op Enter. Er zal nu een melding verschijnen dat de SPI interface is geactiveerd.

Python library installeren

Download de MAX7219 library vanaf github:

git clone https://github.com/rm-hull/max7219.git

Open de nieuw aangemaakte folder:

cd max7219

Voeg de library toe aan Python:

sudo python setup.py install

De library is voorzien van een testscript dat teksten laat scrollen op het display dit script activeer je met:

sudo python examples/matrix_test.py

max7219-led8x8-raspberry-pi-z

MAX7219 voorbeeld script

Om gebruik te kunnen maken van het led display dien je onder Python de max7219 library te downloaden. Daarna kun je met behulp van device.show_message en tekst weergeven.

#!/usr/bin/env python

import max7219.led as led
import time
from max7219.font import proportional, CP437_FONT

device = led.matrix(cascaded=1)
device.brightness(1)

device.show_message("RASPBERRYTIPS.NL", font=proportional(CP437_FONT))

time.sleep(3)
device.flush()

Je kunt het bovenstaande test script downloaden met:

wget https://raspberrytips.nl/files/max7219led8x8.py

Start het script met:

sudo python max7219led8x8.py

Het bovenstaande script laat de tekst ‘RASPBERRYTIPS.NL’ scrollen op het display.

device.brightness regelt de helderheid van het led paneel (min 0/max 7).

led.matrix(cascaded=1) het is mogelijk om meerdere displays in cascade aan te sluiten waardoor de tekst doorloopt op de displays. Met de cascaded parameter geef je het aantal displays op.

device.flush() met dit commando ‘reset’ het display.

De library heeft nog meer extra functies bekijk hiervoor het test script matrix_test.py.

4 gedachten over “MAX7219 8×8 LED module(s) aansturen”

  1. Ik heb de library voor max7219 geinstalleerd zoals in voorbeeld, maar ik krijg steeds ook bij ander library’s de volgende fout.
    Trace back (most recent call last):
    File “max72198x8.py”, line 3, in
    import max7219.led as led
    ImportError : no module named max7219.led

    Wat doe ik fout? Ik ben wel een hobbyist geen ervaring met programmeren

    Met vriendelijke groet,

    Gerrit Berends

    Beantwoorden

Plaats een reactie