Arduino - TM1637 4-cijferig 7-segmentendisplay
Een standaard 4-cijferig 7-segmentendisplay is vaak nodig voor klok-, timer- en tellerprojecten, maar meestal zijn hiervoor 12 verbindingen vereist. De TM1637-module maakt het eenvoudiger door slechts 4 verbindingen nodig te hebben: 2 voor voeding en 2 voor het aansturen van de segments.
Deze handleiding zal u niet overladen met diepgaande hardwaredetails. In plaats daarvan leren we hoe we het 4-cijferig 7-segmentendisplay aansluiten op Arduino en hoe we het programmeren om precies te tonen wat we willen.

Deze tutorial maakt gebruik van het met een dubbele punt gescheiden 4-cijferig 7-segmentendisplay module. Wilt u float-getallen weergeven, gebruik dan de 74HC595 4-digit 7-segment Display Module.
Hardware Required
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over TM1637 4-cijferig 7-segmentendisplay
Een TM1637-module bestaat doorgaans uit vier 7-segment LED’s en een dubbele punt LED in het midden. Deze module is ideaal voor het weergeven van tijd in uren en minuten, minuten en seconden, of scores van twee teams.
Pinout
De TM1637 4-cijferig 7-segmentendisplay module heeft 4 pins:
- CLK-pin: is de klok-ingangspin. Verbind deze met een willekeurige digitale pin op de Arduino.
- DIO-pin: is de Data In/Output pin. Verbind met een willekeurige digitale pin op de Arduino.
- VCC-pin: voedt de module. Verbind met een voedingsspanning tussen 3,3V en 5V.
- GND-pin: is de ground-pin (aarde).

Bedradingsschema
Voor het aansluiten van een TM1637 op een Arduino gebruikt u vier draden: twee voor voeding en twee voor het aansturen van de display. De module kan gevoed worden via de 5V uitgang van de Arduino. Verbind de CLK- en DIO-pins met twee digitale pins van de Arduino, bijvoorbeeld pin 2 en 3. Indien u andere pins gebruikt, moet u de pin-nummers in de code aanpassen.

This image is created using Fritzing. Click to enlarge image
Bibliotheekinstallatie
Om gemakkelijk te programmeren voor het TM1637 4-cijferig 7-segmentendisplay, moet u de TM1637Display bibliotheek van Avishay Orpaz installeren. Volg onderstaande stappen:
- Ga in de Arduino IDE naar het icoon Libraries in de linker balk.
- Zoek op “TM1637” en vind de TM1637Display bibliotheek van Avishay Orpaz.
- Klik op de Installeren knop.

Hoe TM1637 4-cijferig 7-segment te programmeren met Arduino
- Voeg de bibliotheek toe
- Definieer de Arduino-pinnen die verbonden zijn met CLK en DIO van het display. Bijvoorbeeld pin D9 en D10:
- Maak een display-object van het type TM1637Display aan:
- Vervolgens kunt u een nummer, nummer met decimaal, nummer met minteken of letters weergeven. Voor letters moet u het letterpatroon definiëren. Hieronder bespreken we deze mogelijkheden.
- Nummer weergeven: zie onderstaande voorbeelden. Het teken '_' staat voor een cijfer waarop niets wordt weergegeven:
- Nummer met dubbele punt of punt weergeven:
Voor meer details kunt u de functie-referenties aan het einde van deze handleiding raadplegen.
Arduino Code
Snelle Stappen
- Kopieer bovenstaande code en open deze in de Arduino IDE
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
- Bekijk de status van het 7-segmentendisplay
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Functiereferenties
Hieronder vindt u de referenties van de volgende functies:
- display.clear()
- display.showNumberDec()
- display.showNumberDecEx()
- display.setSegments()
- display.setBrightness()
display.clear()
Beschrijving
Deze functie wist het display. Het zet alle LEDs uit.
display.showNumberDec()
Beschrijving
Deze functie wordt gebruikt om een decimaal getal weer te geven op het 7-segmentendisplay.
Syntax
Parameters
- num: Het getal dat op het 7-segmentendisplay moet worden getoond. Dit moet binnen het bereik van -9999 tot 9999 liggen.
- leading_zero: Optionele parameter (standaard false). Indien op true gezet, worden voorloopnullen weergegeven.
- length: Optionele parameter (standaard 4). Hiermee stelt u het aantal cijfers in dat getoond wordt.
- pos: Optionele parameter (standaard 0). Hiermee stelt u de positie in van het meest significante cijfer van het getal.
Let op: als het getal buiten bereik is of als length groter is dan 4, wordt er niets weergegeven.
display.showNumberDecEx()
Beschrijving
Deze functie is een uitbreide versie van showNumberDec(). Hiermee kunt u ook afzonderlijke punten of dubbele punten (colon) op de digits aansturen.
Syntax
Parameters
- num: Het getal dat getoond moet worden, tussen -9999 en 9999.
- dots: Hiermee bepaalt u welke punten/kolommen aanstaan. Iedere bit komt overeen met een digit:
- 0b10000000: eerste punt aan (vormt getal als 0.000)
- 0b01000000: tweede punt aan (00.00)
- 0b00100000: derde punt aan (000.0)
- 0b01000000: voor displays met alleen dubbele punt (colon), toont 00:00
- leading_zero: Optioneel, standaard false. Indien true, worden voorloopnullen getoond.
- length: Optioneel, standaard 4. Aantal cijfers dat wordt getoond.
- pos: Optioneel, standaard 0. Positie van het meest significante cijfer.
Bijvoorbeeld, display.showNumberDecEx(1530,0b01000000); toont 15:30 op het display.
Let op: als het getal buiten bereik is of length groter is dan 4, wordt er niets weergegeven.
display.setSegments()
Beschrijving
Met deze functie stelt u handmatig de segmenten van het 7-segmentendisplay in. Hiermee kunt u letters, speciale tekens of alle segments aanzetten.
Syntax
Parameters
- segments: Een array van bytes waarin elke byte de segmenten voor één cijfer representeert. Elk bit staat voor een segment.
- length: Optioneel, standaard 4. Aantal cijfers dat wordt getoond.
- pos: Optioneel, standaard 0. Positie van het meest significante cijfer.
Deze functie is handig voor het weergeven van tekens of symbolen die niet standaard in het 7-segment voorkomen.
Let op: als het getal buiten bereik is of length groter is dan 4, wordt er niets weergegeven.
display.setBrightness()
Beschrijving
Met deze functie stelt u de helderheid van het 7-segmentendisplay in.
Syntax
Parameters
- brightness: Het helderheidsniveau tussen 0 (dof) en 7 (helder). Hogere waarde betekent helderder display.
- on: Optioneel, standaard true. Hiermee schakelt u het display aan of uit. False schakelt het display uit.