Arduino - TM1637 4-stellige 7-Segmentanzeige

Für Uhr-, Timer- und Zählerprojekte wird eine standardmäßige 4-stellige 7-Segmentanzeige benötigt, aber sie erfordert normalerweise 12 Anschlüsse. Das TM1637-Modul erleichtert dies, indem es nur 4 Anschlüsse benötigt: 2 für die Stromversorgung und 2 für die Ansteuerung der Segmente.

Dieses Tutorial überfordert Sie nicht damit, sich zu sehr mit der Hardware zu beschäftigen. Stattdessen lernen wir, wie man das 4-stellige 7-Segment-Display an Arduino anschließt und wie man es programmiert, um das anzuzeigen, was wir wollen.

Arduino TM1637 4-stellige 7-Segmentanzeige

Dieses Tutorial verwendet ein 4-stelliges 7-Segment-Anzeigemodul mit Doppelpunkt-Trennung. Wenn Sie Fließkommazahlen anzeigen möchten, verwenden Sie bitte das 74HC595 4-digit 7-segment Display Module.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×TM1637 4-stellige 7-Segment-Anzeige
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 TM1637-Modul besteht typischerweise aus vier 7-Segment-LEDs und einer Doppelpunkt-LED in der Mitte: Es eignet sich ideal zum Anzeigen der Zeit in Stunden und Minuten, oder Minuten und Sekunden, oder Spielständen zweier Teams.

Pinbelegung

TM1637 4-stellige 7-Segmentanzeige-Modul enthält 4 Pins:

  • CLK-Pin: ist ein Takt-Eingangspin. Verbinden Sie ihn mit jedem digitalen Pin auf dem Arduino.
  • DIO-Pin: ist ein Daten-Ein-/Ausgangspin. Verbinden Sie ihn mit jedem digitalen Pin auf dem Arduino.
  • VCC-Pin: versorgt das Modul mit Strom. Verbinden Sie ihn mit einer 3,3 V bis 5 V-Stromversorgung.
  • GND-Pin: ist ein Massepin.
TM1637-Modul-Pinbelegung

Verdrahtungsdiagramm

Um einen TM1637 mit einem Arduino zu verbinden, schließen Sie vier Kabel an: zwei für die Stromversorgung und zwei zur Ansteuerung des Displays. Das Modul kann vom 5-Volt-Ausgang des Arduino gespeist werden. Verbinden Sie die CLK- und DIO-Pins mit beliebigen digitalen Pins des Arduino. Zum Beispiel 2 und 3 am Arduino. Die Pin-Nummern im Code sollten geändert werden, falls andere Pins verwendet werden.

Arduino TM1637-Modul Verdrahtungsdiagramm

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

Bibliotheksinstallation

Um einfach für das TM1637 4-stellige 7-Segmentanzeige zu programmieren, müssen wir die Bibliothek TM1637Display von Avishay Orpaz installieren. Befolgen Sie die untenstehenden Schritte, um die Bibliothek zu installieren:

  • Navigieren Sie zum Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach „TM1637“, und finden Sie dann die TM1637Display-Bibliothek von Avishay Orpaz.
  • Klicken Sie auf die Installieren-Schaltfläche.
Arduino TM1637 4-stellige 7-Segmentanzeige-Bibliothek

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

  • Die Bibliothek einbinden
#include <TM1637Display.h>
  • Definieren Sie die Pins des Arduino, die mit CLK und DIO des Displaymoduls verbunden sind. Zum Beispiel die Pins D9 und D10
#define CLK 9 #define DIO 10
  • Erstelle ein Display-Objekt des Typs TM1637Display
TM1637Display display = TM1637Display(CLK, DIO);
  • Dann können Sie eine Zahl, eine Zahl mit Dezimalpunkt, eine Zahl mit Minuszeichen oder einen Buchstaben anzeigen. Im Fall eines Buchstabens müssen Sie die Buchstabenform definieren. Schauen wir uns das der Reihe nach an.
  • Zahl anzeigen: Siehe untenstehende Beispiele; '_' in der unten beschriebenen Darstellung steht für eine Ziffer, die in der Praxis nichts anzeigt:
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 => Nullfüllung display.showNumberDec(14, false, 2, 1); // angezeigt _14_ display.showNumberDec(-5, false, 3, 0); // angezeigt _-5_ display.showNumberDec(1234); // angezeigt 1234
  • Geben Sie die Zahl mit einem Doppelpunkt oder Punkt aus:
// Angezeigt wird 15:30 im Modul mit Doppelpunkt, oder 15.30 im Modul mit Doppelpunkt display.showNumberDecEx(1530, 0b11100000, false, 4, 0);

Sie können dort weitere Details in den Funktionsreferenzen am Ende dieses Tutorials sehen.

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-tm1637-4-digit-7-segment-display */ #include <TM1637Display.h> // define the connections pins #define CLK 9 #define DIO 10 // 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

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Upload-Schaltfläche, um den Code auf Arduino hochzuladen
  • Sehen Sie sich die Zustände des 7-Segment-Displays an

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

Die untenstehenden sind Referenzen für die folgenden Funktionen:

  • Anzeige löschen
  • Dezimalzahl anzeigen
  • Erweiterte Dezimalzahl anzeigen
  • Segmente setzen
  • Helligkeit einstellen

display.clear()

Beschreibung

Diese Funktion löscht das Display. Es schaltet alle LEDs aus.

display.showNumberDec()

Beschreibung

Die Funktion dient dazu, eine Dezimalzahl auf der 7-Segmentanzeige anzuzeigen.

Syntax

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

Parameter

  • num: Dies ist die Zahl, die auf dem 7-Segment-Display angezeigt werden soll. Diese Zahl sollte sich im Bereich von -9999 bis 9999 befinden.
  • 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 legt die Anzahl der Ziffern fest, 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.

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

showNumberDecEx()

Beschreibung

Die Funktion dient dazu, eine Dezimalzahl auf einer 7-Segmentanzeige anzuzeigen und bietet im Vergleich zur Funktion showNumberDec() zusätzliche Funktionen. Es ist eine fortgeschrittene Version von showNumberDec(), die es ermöglicht, 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 der 7-Segmentanzeige angezeigt werden soll. Sie sollte im Bereich von -9999 bis 9999 liegen.
  • dots: Dieser Parameter dient dazu festzulegen, welche Segmente der Anzeige als Punkte eingeschaltet werden sollen. Jedes Bit des Wertes entspricht einer Ziffer auf der Anzeige: Gültiger Wert
    • 0b10000000: Anzeige des ersten Dezimalpunkts: 0.000
    • 0b01000000: Anzeige des zweiten Dezimalpunkts: 00.00
    • 0b00100000: Anzeige des dritten Dezimalpunkts: 000.0
    • 0b01000000: Für Anzeigen mit nur einem Doppelpunkt: 00:00
  • 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 legt die Anzahl der Ziffern fest, die auf der 7-Segmentanzeige angezeigt werden.
  • pos: Dies ist ein optionaler Parameter mit einem Standardwert von 0. Er legt die Position der signifikantesten Ziffer der Zahl fest.

Zum Beispiel, wenn Sie display.showNumberDecEx(1530,0b01000000); aufrufen, wird die Zahl 15:30 auf der 7-Segmentanzeige angezeigt.

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

setSegments()

Beschreibung

Die Funktion dient dazu, die Segmente eines 7-Segment-Displays direkt zu setzen. Sie kann verwendet werden, um Buchstaben, Sonderzeichen anzuzeigen oder alle LED-Segmente einzuschalten.

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 Byte-Array, in dem jedes Byte die Segmente jeder Ziffer repräsentiert. Jedes Segment wird durch ein Bit im Byte dargestellt.
  • length: Dieser Parameter ist optional und hat standardmäßig den Wert 4. Er legt die Anzahl der Ziffern fest, die auf der 7-Segmentanzeige angezeigt werden.
  • pos: Dieser Parameter ist optional und hat standardmäßig den Wert 0. Er legt die Position der führenden Ziffer der Zahl fest.

Diese Funktion ist nützlich, wenn Sie Zeichen oder Symbole anzeigen möchten, die in der grundlegenden 7-Segmentanzeige nicht enthalten sind. Indem Sie die Segmente direkt einstellen, können Sie jedes Muster anzeigen, das Sie möchten.

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

Helligkeit einstellen()

Beschreibung

Die Funktion wird verwendet, um die Helligkeit der 7-Segmentanzeige einzustellen.

Satzbau

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

Parameter

  • brightness: Dieser Parameter legt den Helligkeitsgrad des 7-Segment-Displays fest. Der Wert sollte im Bereich von 0 bis 7 liegen. Ein höherer Wert führt zu einer helleren Anzeige.
  • on: Dies ist ein optionaler Parameter mit einem Standardwert von true. Er wird verwendet, um das Display ein- oder auszuschalten. Wenn er auf false gesetzt ist, wird das Display ausgeschaltet.

※ 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!