raspberrytips.nl

4 digits-7 segmenten LED display met TM1637 controller aansturen

Voor slechts enkele euro’s kun je op het internet een LED display kopen. Een populaire LED display is de 4 digits met 7 segmenten aansturing, deze is vooral bekend van de wekkerradio’s. Deze LED displays worden vaak verkocht inclusief een TM1637 controller, die je heel eenvoudig kunt aansturen met een Raspberry Pi.

In dit stappenplan sluiten we een LED display met TM1637 controller aan op een Raspberry Pi en laten we als demo de actuele tijd weergeven. Je kunt het display natuurlijk ook gebruiken voor andere doeleinden zoals bijvoorbeeld de temperatuur of processor belasting weer te geven.

Componenten voor dit project

De gebruikte componenten voor dit stappenplan, klik op een component voor meer informatie.

4 Digit 7 segment LED display met TM1637 backpack
4 xDupont verbindingskabel (female/female)

Aansluitschema Raspberry Pi

Sluit de LED aan op je Raspberry Pi volgens onderstaand schema:

TM1637 Board Pin Functie RPI Pin Raspberry Functie
GND Ground 14 GND
VCC +5V Power 4 5V
DI0 Data In 18 GPIO 24
CLK Clock 16 GPIO 23

TM1637 script

Om de LED aan te kunnen sturen maken we gebruik van een speciaal script met voorgedefinieerde functies. In het script zijn verschillende functies aanwezig, zo kun je onder andere getallen weergeven en de intensiteit van de LEDS aanpassen. Download het script met het commando:

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

Origineel van het script kun je ook hier terugvinden op Github.

Demo klok script

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# https://raspberrytips.nl

import sys
import time
import datetime
import RPi.GPIO as GPIO
import tm1637

#CLK -> GPIO23 (Pin 16)
#Di0 -> GPIO24 (Pin 18)

Display = tm1637.TM1637(23,24,tm1637.BRIGHT_TYPICAL)

Display.Clear()
Display.SetBrightnes(1)

while(True):
   now = datetime.datetime.now()
   hour = now.hour
   minute = now.minute
   second = now.second
   currenttime = [ int(hour / 10), hour % 10, int(minute / 10), minute % 10 ]

   Display.Show(currenttime)
   Display.ShowDoublepoint(second % 2)

   time.sleep(1)

Als demo heb ik een script gemaakt die de huidige tijd weergeeft, kopieer het bovenstaande script of download het direct naar je Raspberry Pi met:

wget https://raspberrytips.nl/files/47digitclock.py

Het klok script heeft het tm1637.py script nodig om te kunnen werken, plaats dus beide bestanden in dezelfde map. Start het klok script met het commando:

python 47digitclock.py

De tijd verschijnt op het LED display en je zult zien dat de ‘:’ per seconde aan/uit gaat.

Script functies

Het klok script maakt gebruik van de onderstaande functies, gedefinieerd in tm1637.py:

Display.Clear() – Maakt het display legen mochten er nog individuele LEDS actief zijn.

Display.SetBrightnes(x) – Hierna kun je de helderheid van het display aanpassen, minimaal 0 en maximaal 7.

Display.Show(x,x,x,x) – Laat de daadwerkelijke 4 cijfers (digits) zien, x kan 0 t/m 9 zijn.

Display.ShowDoublepoint(status) – Aansturing voor de ‘:’ tussen de tweede en derde digit, true(1) = aan / false(0) = uit.