ESP32 - TM1637 4-cijfer 7-segment display
Deze tutorial leert u hoe u de ESP32 gebruikt in combinatie met het TM1637 4-cijfer 7-segment display module. De volgende onderwerpen komen aan bod:
- Het aansluiten van het 4-cijfer 7-segment display op de ESP32
- Het programmeren van de ESP32 om informatie te tonen op het 4-cijfer 7-segment display.

In deze tutorial gebruiken we een 4-cijfer 7-segment display module met een dubbele punt als scheidingsteken. Als u kommagetallen wilt weergeven, verwijzen wij u naar de tutorial 74HC595 4-cijfer 7-segment Display Module.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over TM1637 4-cijfer 7-segment Display
Een 4-cijfer 7-segment display wordt vaak gebruikt voor klokken, timers, tellers, het weergeven van temperatuur enzovoorts. Normaal gesproken vereist een dergelijk display 12 aansluitingen. Het TM1637 module vereenvoudigt dit door slechts 4 aansluitingen te gebruiken: 2 voor voeding en 2 voor het aansturen van de segmenten.
Een TM1637 module bestaat gewoonlijk uit vier 7-segment LEDs en een van de volgende opties:
- Een dubbele punt LED in het midden: Ideaal voor het weergeven van tijd in uren en minuten, minuten en seconden of de scores van twee teams.
- Vier puntvormige LEDs, één per cijfer: Ideaal voor het tonen van temperatuur of een decimale waarde.
Pinout TM1637 4-cijfer 7-segment Display
Het TM1637 4-cijfer 7-segment display module heeft vier pinnen:
- CLK pin: Dit is de klokingangspin die verbonden moet worden met een willekeurige digitale pin van de ESP32.
- DIO pin: Dit is de Data I/O pin die verbonden moet worden met een willekeurige digitale pin van de ESP32.
- VCC pin: Wordt gebruikt om het module van stroom te voorzien en moet aangesloten worden op een voedingsspanning van 3,3V tot 5V.
- GND pin: Dit is de massa (ground) pin en dient te worden verbonden met de massa van de ESP32.

Aansluitschema
Om een TM1637 op een ESP32 aan te sluiten zijn vier draden nodig: twee voor de voeding en twee voor het aansturen van het display. Het module kan worden gevoed door de 5 volt uitgang van de ESP32. De CLK en DIO pinnen moeten aangesloten worden op digitale pins van de ESP32, bijvoorbeeld pin 22 en 23. Indien u andere pinnen gebruikt, moeten de pinnummers in de code worden aangepast.

This image is created using Fritzing. Click to enlarge image
Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.
Bibliotheek Installatie
Om het programmeren van het TM1637 4-cijfer 7-segment display te vereenvoudigen, moeten we de TM1637Display bibliotheek van Avishay Orpaz installeren. Volg onderstaande stappen:
- Klik op het Libraries icoon in de linkerzijbalk van de Arduino IDE.
- Zoek op “TM1637” en zoek de TM1637Display bibliotheek van Avishay Orpaz.
- Klik op de knop Install.

Hoe te programmeren voor TM1637 4-cijfer 7-segment met ESP32
- Voeg de bibliotheek toe
- Geef de ESP32 pinnen op die zijn verbonden met de CLK en DIO van het display module. Bijvoorbeeld GPIO22 en GPIO23.
- Maak een TM1637Display object aan.
- Daarna kunt u nummers, nummers met decimalen, negatieve nummers of letters tonen. In het geval van letters moet u het lettertype specificeren. Laten we ze apart bekijken.
- Nummers tonen: zie de voorbeelden hieronder. '_' staat voor een cijfer dat in de praktijk niet wordt weergegeven:
- Nummer weergeven met dubbele punt of punt:
Meer informatie over de functies vindt u aan het einde van deze tutorial.
ESP32 Code
Snelle Stappen
Om snel aan de slag te gaan met ESP32 op de Arduino IDE, volgt u deze stappen:
- Als u ESP32 voor het eerst gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 op Arduino IDE.
- Maak de aansluitingen zoals in bovenstaande afbeelding.
- Verbind de ESP32 met uw pc via een micro USB-kabel.
- Open de Arduino IDE op uw pc.
- Selecteer het juiste ESP32 bord (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
- Kopieer de bovenstaande code en plak deze in Arduino IDE.
- Compileer en upload de code naar het ESP32 bord door op de knop Upload te klikken.

- Controleer de werking van het 7-segment display.
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.
Functie Referenties
Hieronder vindt u de referenties van de volgende functies:
- display.clear()
- display.showNumberDec()
- display.showNumberDecEx()
- display.setSegments()
- display.setBrightness()
display.clear()
Beschrijving
Deze functie maakt het display leeg. Alle LEDs worden uitgezet.
display.showNumberDec()
Beschrijving
Het 7-segment display wordt gebruikt om een decimaal getal te tonen. Deze functie wordt daarvoor gebruikt.
Syntax
Parameters
- num: de waarde die op het 7-segment display moet worden getoond, van -9999 tot 9999.
- leading_zero: optionele parameter, standaard false. Geeft aan of voorloopnullen worden weergegeven.
- length: optionele parameter, standaard 4. Het aantal cijfers dat moet worden weergegeven.
- pos: optionele parameter, standaard 0. De positie van het meest significante cijfer.
Let op: de functie toont niets als het nummer buiten het bereik valt of als de lengte groter is dan 4.
showNumberDecEx()
Beschrijving
Dit is een uitgebreidere versie van showNumberDec(), waarmee meer controle is over de weergave van decimale getallen op het 7-segment display. Hiermee kunt u de punt- of dubbele punt-segmenten per cijfer apart aansturen.
Syntax
Parameters
- num: Het getal dat op het 7-segment display moet worden weergegeven, tussen -9999 en 9999.
- dots: Specificeert welke punten/dubbele punten aan moeten staan. Elk bit in de waarde correspondeert met een cijfer op het display. Mogelijke waarden zijn:
- 0b10000000 voor de eerste punt (0.000)
- 0b01000000 voor de tweede punt (00.00) of dubbele punt (00:00), afhankelijk van het type module.
- 0b00100000 voor de derde punt (000.0)
- leading_zero: Optioneel, standaard false. Toon voorloopnullen als true.
- length: Optioneel, standaard 4. Aantal cijfers die weergegeven moeten worden.
- pos: Optioneel, standaard 0. Positie van het meest significante cijfer.
Voorbeeld: Als u display.showNumberDecEx(1530, 0b01000000) gebruikt, dan wordt:
- Nummer 15:30 getoond op een module met dubbele punt LED.
- Nummer 15.30 getoond op een module met puntvormige LEDs.
Let op: de functie toont niets als het nummer buiten het bereik valt of de lengte groter is dan 4.
setSegments()
Beschrijving
Met deze functie kunt u rechtstreeks de segmenten van het 7-segment display aansturen. Handig om letters, speciale tekens te tonen of alle LEDs uit te schakelen.
Syntax
Parameters
- segments: Array van bytes waarin de segmenten voor elk cijfer worden gespecificeerd. Iedere byte bepaalt welke segmenten van dat cijfer aan of uit zijn, elk segment is een bit in de byte.
- length: Optioneel, standaard 4. Aantal cijfers dat moet worden weergegeven.
- pos: Optioneel, standaard 0. Positie van het meest significante cijfer.
Deze functie is handig om tekens of symbolen weer te geven die niet standaard in het 7-segment display voorkomen. U stelt de segmenten direct in om een patroon te maken.
Let op: er wordt niets getoond als het nummer buiten bereik valt of de lengte groter is dan 4.
setBrightness()
Beschrijving
Met deze functie stelt u de helderheid van het 7-segment display in.
Syntax
Parameters
- brightness: De helderheid van het display, een waarde tussen 0 en 7, waarbij 7 de hoogste helderheid is.
- on: Optioneel, standaard true. Zet het display aan of uit. Bij false wordt het display uitgeschakeld.