Arduino Nano ESP32 – TM1637 4-stellige 7-Segmentanzeige

Dieses Tutorial zeigt dir, wie du den Arduino Nano ESP32 mit dem TM1637-4-stellige 7-Segmentanzeige-Modul verwendest. Es deckt die folgenden Themen ab:

Arduino Nano ESP32 TM1637 4-stellige 7-Segmentanzeige

In diesem Tutorial verwenden wir ein vierstelliges 7-Segment-Display-Modul mit einem Doppelpunkt-Trennzeichen. Wenn Sie Fließkommazahlen anzeigen möchten, lesen Sie bitte das Tutorial 74HC595 4-digit 7-segment Display Module.

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×TM1637 4-digit 7-segment Display
1×Breadboard
1×Verbindungskabel
1×(Optional) 5V Power Adapter for Arduino Nano ESP32
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über TM1637 4-stellige 7-Segmentanzeige

Ein vierstelliges 7-Segment-Display wird üblicherweise für Uhr, Timer und Zähler verwendet und zeigt die Temperatur an. Allerdings benötigt es normalerweise 12 Anschlüsse. Das TM1637-Modul vereinfacht dies, indem es nur 4 Anschlüsse benötigt: 2 für die Stromversorgung und 2 für die Ansteuerung der Segmente.

Ein TM1637-Modul besteht in der Regel aus vier 7-Segment-LEDs und einer der folgenden Optionen:

  • Eine Doppelpunkt-LED in der Mitte: Sie eignet sich ideal zur Anzeige der Uhrzeit in Stunden und Minuten, oder Minuten und Sekunden, oder zur Anzeige der Punktestände zweier Mannschaften.
  • Vier punktförmige LEDs pro Ziffer: Sie eignen sich ideal zur Anzeige der Temperatur oder eines Dezimalwerts.

Pinbelegung des TM1637 für eine 4-stellige 7-Segmentanzeige

TM1637 4-stelliges 7-Segment-Display-Modul hat vier Pins:

  • CLK-Pin: ist ein Taktpin, der mit jedem digitalen Pin des Arduino Nano ESP32 verbunden werden sollte.
  • DIO-Pin: ist ein Data-I/O-Pin, der mit jedem digitalen Pin des Arduino Nano ESP32 verbunden werden sollte.
  • VCC-Pin: wird verwendet, um dem Modul Strom zuzuführen, und sollte an eine 3,3-V bis 5-V-Stromversorgung angeschlossen werden.
  • GND-Pin: ist ein Massepin, der mit dem Massepunkt des Arduino Nano ESP32 verbunden werden sollte.
TM1637-Modul-Pinbelegung

Verdrahtungsdiagramm

Um ein TM1637 mit einem ESP32 zu verbinden, werden vier Kabel benötigt: zwei für die Stromversorgung und zwei zur Ansteuerung des Displays. Das Modul kann vom 5-Volt-Ausgang des Arduino Nano ESP32 mit Strom versorgt werden. Die CLK- und DIO-Pins sollten mit beliebigen digitalen Pins des Arduino verbunden werden; zum Beispiel mit den Pins 2 und 3. Werden andere Pins verwendet, müssen die Pin-Nummern im Code angepasst werden.

Arduino Nano ESP32 TM1637-Modul Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Bibliotheksinstallation

Um einfach mit dem TM1637-4-stelligen 7-Segment-Display zu programmieren, müssen Sie die Bibliothek TM1637Display von Avishay Orpaz installieren. Befolgen Sie die untenstehenden Schritte, um die Bibliothek zu installieren:

  • Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Bibliotheks-Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken
  • Suchen Sie „TM1637“, und finden Sie anschließend die TM1637Display-Bibliothek von Avishay Orpaz
  • Klicken Sie auf die Install-Schaltfläche.
Arduino TM1637 4-stellige 7-Segmentanzeige-Bibliothek

Wie man TM1637 4-stellige 7-Segmentanzeige mit Arduino Nano ESP32 programmiert

  • Binde die Bibliothek ein.
#include <TM1637Display.h>
  • Geben Sie die Pins des Arduino Nano ESP32 an, die mit den CLK- und DIO-Pins des Displaymoduls verbunden sind. Zum Beispiel D9 und D10.
#define CLK D9 // Der Arduino Nano ESP32-Pin, der mit dem CLK-Pin des 7-Segment-Moduls verbunden ist #define DIO D10 // Der Arduino Nano ESP32-Pin, der mit dem DIO-Pin des 7-Segment-Moduls verbunden ist
  • Erstelle ein TM1637Display-Objekt.
TM1637Display display = TM1637Display(CLK, DIO);
  • Dann können Sie Zahlen, Zahlen mit Dezimalstellen, Zahlen mit negativen Vorzeichen oder Buchstaben anzeigen. Im Fall von Buchstaben müssen Sie die Buchstabenform angeben. Schauen wir uns jeden Fall einzeln an.
  • Zahlen anzeigen: Siehe untenstehende Beispiele; '_' in der folgenden Beschreibung steht für eine Ziffer, die in der Praxis nicht angezeigt wird:
display.showNumberDec(-12); // angezeigt _-12 display.showNumberDec(-999); // angezeigt -999 display.showNumberDec(42); // angezeigt __42 display.showNumberDec(42, false); // angezeigt __42 display.showNumberDec(42, false, 2, 0); // angezeigt 42__ => Anzeige von 2 Ziffern an Position 0 display.showNumberDec(42, true); // angezeigt 0042 => Nullauffüllung display.showNumberDec(14, false, 2, 1); // angezeigt _14_ display.showNumberDec(-5, false, 3, 0); // angezeigt _-5_ display.showNumberDec(1234); // angezeigt 1234
  • Zeige die Nummer mit einem Doppelpunkt oder Punkt:
// angezeigt 15:30 im Doppelpunkt-getrennten Modul, oder 15.30 im Doppelpunkt-getrennten Modul display.showNumberDecEx(1530, 0b11100000, false, 4, 0);

Weitere Informationen zu den Funktionen finden Sie am Ende dieses Tutorials.

Arduino Nano ESP32 Code

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano-esp32/arduino-nano-esp32-tm1637-4-digit-7-segment-display */ #include <TM1637Display.h> // define the connections pins #define CLK D9 // The Arduino Nano ESP32 pin connected to the CLK pin of 7-segment module #define DIO D10 // The Arduino Nano ESP32 pin connected to the DIO pin of 7-segment module // create a display object of type TM1637Display TM1637Display display = TM1637Display(CLK, DIO); // an array that sets individual segments per digit to display the word "dOnE" const uint8_t done[] = { SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O SEG_C | SEG_E | SEG_G, // n SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E }; // degree celsius symbol const uint8_t celsius[] = { SEG_A | SEG_B | SEG_F | SEG_G, // Degree symbol SEG_A | SEG_D | SEG_E | SEG_F // C }; void setup() { display.clear(); display.setBrightness(7); // set the brightness to 7 (0:dimmest, 7:brightest) } void loop() { // show counter 0-9 int i; for (i = 0; i < 10; i++) { display.showNumberDec(i); delay(500); display.clear(); } display.showNumberDec(-91); // displayed _-91 delay(2000); display.clear(); display.showNumberDec(-109); // displayed -109 delay(2000); display.clear(); display.showNumberDec(21, false); // displayed __21 delay(2000); display.clear(); display.showNumberDec(21, true); // displayed 0021 delay(2000); display.clear(); display.showNumberDec(28, false, 2, 1); // displayed _28_ delay(2000); display.clear(); display.showNumberDec(-9, false, 3, 0); // displayed _-9_ delay(2000); display.clear(); // displayed 15:30 display.showNumberDecEx(1530, 0b11100000, false, 4, 0); delay(2000); display.clear(); // displayed 23°C int temperature = 23; // or read from temperature sensor display.showNumberDec(temperature, false, 2, 0); display.setSegments(celsius, 2, 2); delay(2000); display.clear(); // displayed letters: dOnE display.setSegments(done); delay(2000); display.clear(); }

Schnelle Schritte

Um mit dem Arduino Nano ESP32 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, verweisen Sie auf das Tutorial zu wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Verbinden Sie das Arduino Nano ESP32-Board mit Ihrem Computer über ein USB-Kabel.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und laden Sie den Code auf das Arduino Nano ESP32-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
Arduino IDE Code hochladen
  • Prüfen Sie die Zustände der 7-Segmentanzeige.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

Nachfolgend finden Sie die Referenzen für:

  • display.clear()
  • display.showNumberDec()
  • display.showNumberDecEx()
  • display.setSegments()
  • display.setBrightness()

display.clear()

Beschreibung

Diese Funktion löscht das Display. Alle LEDs werden ausgeschaltet.

display.showNumberDec()

Beschreibung

Die 7-Segmentanzeige wird verwendet, um eine Dezimalzahl anzuzeigen. Diese Funktion wird dafür verwendet.

Satzbau

void showNumberDec(int num, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0);

Parameter

  • num: ist der Wert, der auf der 7-Segmentanzeige angezeigt wird und reicht von -9999 bis 9999.
  • leading_zero: ein optionaler Parameter mit dem Standardwert false, der bestimmt, ob führende Nullen angezeigt werden sollen.
  • length: ein weiterer optionaler Parameter mit dem Standardwert 4, legt die Anzahl der anzuzeigenden Ziffern fest.
  • pos: ebenfalls ein optionaler Parameter mit dem Standardwert 0, legt die Position der führenden Ziffer fest.

Bitte beachten Sie, dass die Funktion nichts anzeigt, wenn die Zahl außerhalb des Bereichs liegt oder wenn der Längenwert größer als 4 ist.

showNumberDecEx()

Beschreibung

Diese Funktion ist eine Weiterentwicklung von showNumberDec() und bietet mehr Kontrolle über die Anzeige einer Dezimalzahl auf der 7-Segment-Anzeige. Sie verfügt über die Möglichkeit, die Punkt- oder Doppelpunktsegmente jeder Ziffer einzeln zu steuern.

Syntax

void showNumberDecEx(int num, uint8_t dots, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0);

Parameter

  • num1: Dies ist die Zahl, die auf dem 7-Segment-Display angezeigt werden soll. Sie sollte sich im Bereich von -9999 bis 9999 befinden.
  • dots: Dieser Parameter dient dazu, festzulegen, welche Segmente des Displays als Punkte eingeschaltet werden sollen. Jedes Bit des Werts entspricht einer Ziffer am Display. Mögliche Werte sind:
    • 0b10000000 zum Anzeigen des ersten Punkts (0.000)
    • 0b01000000 zum Anzeigen des zweiten Punkts (00.00) oder des Doppelpunkts (00:00). Es hängt vom Modultyp ab.
    • 0b00100000 zum Anzeigen des dritten Punkts (000.0)
  • leading_zero: Dies ist ein optionaler Parameter mit einem Standardwert von false. Wenn er auf true gesetzt wird, werden führende Nullen angezeigt.
  • length: Dies ist ein optionaler Parameter mit einem Standardwert von 4. Er bestimmt die Anzahl der Ziffern, die auf dem 7-Segment-Display angezeigt werden.
  • pos: Dies ist ein optionaler Parameter mit einem Standardwert von 0. Er legt die Position der höchstsignifikanten Ziffer der Zahl fest.

Zum Beispiel, wenn Sie display.showNumberDecEx(1530, 0b01000000) verwenden, wird es angezeigt:

  • Die Zahl 15:30 auf der 7-Segmentanzeige, falls das Modul eine Doppelpunkt-LED hat.
  • Die Zahl 15.30 auf der 7-Segmentanzeige, falls das Modul punktförmige LEDs hat.

Bitte beachten Sie, dass die Funktion nichts anzeigt, wenn die Zahl außerhalb des Bereichs liegt oder wenn der Wert der Länge größer als 4 ist.

setSegments()

Beschreibung

Die Funktion ermöglicht es, die Segmente der 7-Segmentanzeige direkt zu setzen. Dadurch können Buchstaben, Sonderzeichen oder alle LED-Segmente ausgeschaltet werden.

Syntax

void setSegments(const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0);

Parameter

  • segments: Dieser Parameter legt die Segmente der 7-Segmentanzeige fest, es handelt sich um ein Array von Bytes. Jedes Byte repräsentiert die Segmente jeder Ziffer, und jedes Segment wird durch ein Bit im Byte dargestellt.
  • length: Es handelt sich um einen optionalen Parameter mit dem Standardwert 4. Er bestimmt die Anzahl der Ziffern, die auf der 7-Segmentanzeige angezeigt werden.
  • pos: Es handelt sich um einen optionalen Parameter mit dem Standardwert 0. Er gibt die Position der signifikantesten Ziffer der Zahl an.

Diese Funktion ist vorteilhaft, wenn Sie Zeichen oder Symbole anzeigen müssen, die auf der Standard-7-Segmentanzeige nicht verfügbar sind. Sie können jedes von Ihnen gewünschte Muster erstellen, indem Sie die Segmente direkt einstellen.

Bitte beachten Sie, dass die Funktion nichts anzeigt, wenn die Zahl außerhalb des Bereichs liegt oder die Länge größer als 4 ist.

setHelligkeit()

Beschreibung

Die Helligkeit der 7-Segmentanzeige kann mithilfe dieser Funktion angepasst werden.

Satzbau

void setBrightness(uint8_t brightness, bool on = true);

Parameter

  • brightness: Dieser Parameter passt die Helligkeit der 7-Segment-Anzeige an. Der Wert sollte zwischen 0 und 7 liegen, wobei eine höhere Zahl eine hellere Anzeige erzeugt.
  • on: Dieser Parameter ist optional und hat einen Standardwert von true. Er wird verwendet, um das Display ein- oder auszuschalten. Wenn er auf false gesetzt wird, wird das Display deaktiviert.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!