7 segment LEDS aansturen via SPI en MAX7219 driver

Via de SPI interface van de Raspberry Pi kun je tal van displays en sensoren aansturen. In dit stappenplan gaan we een 8 digits 7 segment display aansturen met behulp van een MAX7219 driver en de SPI interface van de Raspberry Pi. De displays worden o.a. gebruikt in wekkerradio’s.

De LED bordjes inclusief een MAX7219 driver zijn heel goedkoop verkrijgbaar op verschillende websites. Vaak worden de bordjes aangeboden met 4 digits of 8 digits (cijfers). Het leuke van de MAX7219 controller is dat je er meerdere achter elkaar kunt aansluiten (cascade). Dit kan handig zijn als je een klok wilt maken of grotere getallen wilt weergeven op het display.

Componenten voor dit project

MAX7219 7 segments/8 digits module (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

Het aansluiten van het display is vrij simpel, let wel op dat je de DIN zijde van het display gebruikt. De connectors met DOUT zijn bedoeld om door te lussen naar een volgend display.

max7219-7-segment-led-raspberry-pi

Led module RPI functie RPI pin
DIN MOSI (GPIO 10) 19
CLK SCLK (GPIO 11) 23
VCC 5v 2
GND GND 6
CS CS (GPIO 8) 24

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

Met behulp van een speciale Python library die we kunnen downloaden van GitHub kunnen we eenvoudig met het de driver communiceren. Is git niet aanwezig op je Raspberry Pi dan kun je deze installeren met:

sudo apt-get install git

Download de MAX7219 library vanaf github:

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

Voeg de library toe aan Python:

sudo python max7219/setup.py install

Nadat de installatie is voltooid kunnen we het LED display gaan aansturen.

MAX7219 Voorbeeld scripts

Het onderstaande script bestaat uit slechts 4 code regels. Met behulp van device.brightness(X) kun je de helderheid van het display aanpassen (0=min/7=max). Met device.write_number() schrijven we een getal naar het display in dit geval ‘12345678’.

#!/usr/bin/env python
# Simpel script laat 12345678 op het display zien

import max7219.led as led

device = led.sevensegment(cascaded=1)

# Brightness/Helderheid waarde tussen 0 en 7 (max)
device.brightness(7)

device.write_number(deviceId=0, value=12345678)

Het tweede simple script laat een teller verschijnen op het display die start vanaf 10000000, via de for loop wordt deze iedere 0.01 seconde opgehoogd met 1.

max7219-raspberry-pi-7-segment-leds

#!/usr/bin/env python
 
import max7219.led as led
import time
 
device = led.sevensegment(cascaded=1)

for x in range(10000000, 20000000):
    device.write_number(deviceId=0, value=x)
    time.sleep(0.01)

1 gedachte over “7 segment LEDS aansturen via SPI en MAX7219 driver”

Plaats een reactie