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.
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.
#!/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)
Beste,
Kunt u mij misschien ook uitleggen waar je het script mee maakt en waar dat geplaatst moet worden.
Vriendelijke groet