Arduino Nano - TM1637 4-stellige 7-Segmentanzeige

Dieses Tutorial erklärt Ihnen, wie Sie den Arduino Nano mit dem 4-stelligen 7-Segment-Display TM1637-Modul verwenden. Im Detail werden wir lernen:

Arduino Nano TM1637 4-stellige 7-Segmentanzeige

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

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×TM1637 4-digit 7-segment Display
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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-Segment-Anzeige

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

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

  • Eine Doppelpunkt-LED in der Mitte: Ideal geeignet, um die Zeit in Stunden und Minuten darzustellen, oder Minuten und Sekunden, oder die Spielstände zweier Mannschaften.
  • Vier punktförmige LEDs pro Ziffer: Ideal geeignet, um die Temperatur oder jeden Dezimalwert anzuzeigen.

Pinbelegung des TM1637 4-stelligen 7-Segment-Displays

Verbinde es mit der Masse der Stromversorgung.

Der TM1637 hat vier Stifte:

  • CLK-Pin: ist ein Takt-Eingangspin, der mit jedem digitalen Pin des Arduino Nano verbunden werden sollte.
  • DIO-Pin: ist ein Daten-Ein-/Ausgabe-Pin, der mit jedem digitalen Pin des Arduino Nano 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 Masseanschluss der Stromversorgung verbunden werden sollte.
TM1637-Modul Pinbelegung

Verdrahtungsdiagramm

Um einen TM1637 mit einem Arduino Nano zu verbinden, müssen vier Leitungen verbunden werden: zwei für die Stromversorgung und zwei zur Steuerung des Displays. Das Modul kann vom 5-Volt-Ausgang des Arduino Nano mit Strom versorgt werden. Die CLK- und DIO-Pins sollten mit beliebigen digitalen Pins des Arduino Nano verbunden werden, zum Beispiel die Pins 2 und 3. Werden andere Pins verwendet, müssen die Pin-Nummern im Code geändert werden.

Arduino Nano TM1637-Modul Verdrahtungsdiagramm

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Bibliotheksinstallation

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

  • Klicken Sie auf das Bibliotheken-Symbol in der linken Seitenleiste 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-Segment-Anzeige-Bibliothek

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

  • Binde die Bibliothek ein.
#include <TM1637Display.h>
  • Geben Sie die Pins des Arduino Nano an, die mit CLK und DIO des Display-Moduls verbunden sind. Zum Beispiel sind dies die Pins D9 und D10.
#define CLK 9 #define DIO 10
  • Erzeuge ein Objekt der Klasse TM1637Display.
TM1637Display display = TM1637Display(CLK, DIO);
  • Dann können Sie eine Zahl anzeigen, eine Zahl mit Dezimalstelle, eine Zahl mit einem Minuszeichen oder einen Buchstaben. Im Fall eines Buchstabens müssen Sie die Schreibform des Buchstabens festlegen. Lassen Sie uns jeden Fall einzeln betrachten.
  • Eine Zahl anzeigen: Siehe untenstehende Beispiele; '_' in der untenstehenden Beschreibung 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 => Null-Padding display.showNumberDec(14, false, 2, 1); // angezeigt _14_ display.showNumberDec(-5, false, 3, 0); // angezeigt _-5_ display.showNumberDec(1234); // angezeigt 1234
  • Zeigen Sie die Zahl mit einem Doppelpunkt oder Punkt:
// Angezeigt 15:30 im Modul mit Doppelpunkt-Trennzeichen, oder 15.30 im Modul mit Doppelpunkt-Trennzeichen display.showNumberDecEx(1530, 0b11100000, false, 4, 0);

Für weitere Informationen verweisen Sie auf die Funktionsreferenzen am Ende dieses Tutorials. Diese liefern weitere Details.

Arduino Nano Quellcode

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-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 Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Überprü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 Referenzen zu den folgenden Funktionen:

  • Display.loeschen()
  • Display.zeigeDezimalzahl()
  • Display.zeigeDezimalzahlEx()
  • Display.setzeSegmente()
  • Display.helligkeitEinstellen()

display.clear()

Beschreibung

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

display.showNumberDec()

Beschreibung

Das 7-Segment-Display wird verwendet, um eine Dezimalzahl anzuzeigen. Diese Funktion wird dafür verwendet.

Syntax

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 werden soll, liegt im Bereich von -9999 bis 9999.
  • leading_zero: ein optionaler Parameter mit einem Standardwert von false, bestimmt, ob führende Nullen angezeigt werden sollen.
  • length: ein weiterer optionaler Parameter mit einem Standardwert von 4, legt die Anzahl der anzuzeigenden Ziffern fest.
  • pos: ebenfalls ein optionaler Parameter mit einem Standardwert von 0, legt die Position der signifikantesten 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 Erweiterung von showNumberDec() und bietet mehr Kontrolle über die Anzeige einer Dezimalzahl auf der 7-Segmentanzeige. Sie ermöglicht es, 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 sich im Bereich von -9999 bis 9999 befinden.
  • dots: Dieser Parameter wird verwendet, um anzugeben, welche Segmente der Anzeige als Punkte eingeschaltet werden sollen. Jedes Bit des Wertes entspricht einer Ziffer auf der Anzeige. 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 der 7-Segmentanzeige angezeigt werden.
  • pos: Dies ist ein optionaler Parameter mit einem Standardwert von 0. Er setzt die Position der am weitesten links stehenden Ziffer der Zahl.

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

  • Die Zahl 15:30 auf dem 7-Segment-Display, wenn das Modul eine Doppelpunkt-LED hat.
  • Die Zahl 15.30 auf dem 7-Segment-Display, wenn 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.

Segmente festlegen()

Beschreibung

Die Funktion ermöglicht es, die Segmente des 7-Segment-Displays direkt zu setzen. Damit lassen sich Buchstaben, Sonderzeichen oder alle LED-Segmente ausschalten.

Syntax

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

Parameter

  • segments: Dieser Parameter legt die Segmente der 7-Segment-Anzeige fest, die ein Byte-Array ist. Jedes Byte repräsentiert die Segmente jeder Ziffer, und jedes Segment wird durch ein Bit im Byte dargestellt.
  • length: Dieser Parameter ist optional und hat einen Standardwert von 4. Er bestimmt die Anzahl der Ziffern, die auf der 7-Segment-Anzeige angezeigt werden.
  • pos: Dieser Parameter ist optional und hat einen Standardwert von 0. Er gibt die Position der signifikantesten Ziffer der Zahl an.

Diese Funktion ist nützlich, wenn Sie Zeichen oder Symbole anzeigen müssen, die auf der Standard-7-Segmentanzeige nicht verfügbar sind. Sie können jedes Muster erstellen, das Sie wünschen, 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.

Helligkeit einstellen()

Beschreibung

Die Helligkeit des 7-Segment-Displays kann mithilfe dieser Funktion angepasst werden.

Syntax

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

Parameter

  • brightness: Dieser Parameter passt die Helligkeit der 7-Segmentanzeige an. Der Wert sollte zwischen 0 und 7 liegen; je höher die Zahl, desto heller ist die Anzeige.
  • on: Dies ist ein optionaler Parameter mit einem Standardwert von true. Er wird verwendet, um die Anzeige ein- oder auszuschalten. Wenn er auf false gesetzt wird, wird die Anzeige 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!