HS-F15-L Vierzehn-Ziffern-Steuertafel-Digitanzeige

HS-F15-L Vierzehn-Ziffern-Steuertafel-Digitanzeige

1、Einführung

Ein 4-stelliges 7-Segment-Display besteht aus einem 4-stelligen 7-Segment-Display mit 12 Anschlüssen und einem Steuichéip TM1637.An der anderen Seite ist das Symbol der Ziffernblattanzeige.Dieser Produkt kann auf Anzeigetafeln, Tachographen und anderen Geräten angewendet werden, die die Anzeige von Ziffern erfordern.

2、Schemazeichnung

TM1637 Vierstellen-Taktuhr-Digit-Display-HS-F15-L SchemaKlicken Sie zum Anzeigen

3、Modulparameter

Pinbezeichnung

Beschreibung

VCC

VCC(Spannungsversorgungsplus)

GND

GND(Spannungsversorgungsminus)

SDA

Doppelseitige Datenkommunikationsanschlüsse

SCL

Zeitzeichen-Kommunikationspin

  • Spannungsversorgung: 3.3V / 5V

  • Anschlussart: PH2.0 4P Stecker

  • Montageart: Bausteine fest

4, Platinegröße

5、Arduino IDE Beispielprogramm

Achtung: Wenn beim Hochladen des Programms eine Fehlermeldung bezüglich der Bibliotheksdateien angezeigt wird, laden Sie bitte zuerst die Bibliotheksdateien herunter!
Anleitung zum Herunterladen und Importieren der Bibliotheksdateien für das Arduino IDE:
Klicken Sie zum Anzeigen

Beispielprogramm (UNO-Entwicklerboard):

#include <SevenSegmentTM1637.h>

SevenSegmentTM1637  display(9,10);

void setup(){
  display.begin();
  display.setBacklight(20);
}

void loop(){
  //数码管30秒倒计时

  for (int i = 30; i >= 0; i = i + (-1)) {
    display.clear();
    display.print(String(i));
    delay(1000);
  }

}

6、ESP32 Python Beispiel (für Mixly IDE /米思齐)

Entwicklungsboard auswählen Python ESP32 [ESP32 Generic(4MB)] auf den Code-Modus umschalten und hochladen

Achtung: Wenn beim Hochladen des Programms eine Fehlermeldung bezüglich der Bibliotheksdateien angezeigt wird, laden Sie bitte zuerst die Bibliotheksdateien herunter!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
Klicken Sie zum Anzeigen

示例程序(ESP32-Python):

from machine import Pin
from time import sleep_us
TM1637_CMD1 = 64  # 0x40 数据命令
TM1637_CMD2 = 192 # 0xC0 地址命令
TM1637_CMD3 = 128 # 0x80 显示控制命令
TM1637_DELAY = 10 # 10us延迟,用于clk/dio脉冲之间

# 数码管段码对应表 (0-15分别对应0-F)
_SEGMENTS = (0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71)

# TM1637显示类
class TM1637():
    """
    @brief 初始化函数
    @param clk:clk引脚定义
    @param dio:dio引脚定义
    @param intensity:亮度 默认7
    @param number:数码管位数,默认4位
    """
    def __init__(self, clk, dio, intensity=7, number = 4):
        self.clk = clk
        self.dio = dio

        self._intensity = intensity%8
        self._LED = number
        self._ON = 8
        self.dbuf = [0, 0, 0, 0]

        self.clk.init(Pin.OUT, value=0)
        self.dio.init(Pin.OUT, value=0)
        sleep_us(TM1637_DELAY)

        self.clear()

    """@brief 发送起始信号"""
    def _start(self):
        self.dio(0)
        sleep_us(TM1637_DELAY)
        self.clk(0)
        sleep_us(TM1637_DELAY)

    """@brief 发送停止信号"""
    def _stop(self):
        self.dio(0)
        sleep_us(TM1637_DELAY)
        self.clk(1)
        sleep_us(TM1637_DELAY)
        self.dio(1)

    """发送数据命令:自动地址递增,普通模式"""
    def _write_data_cmd(self):
        # automatic address increment, normal mode
        self._start()
        self._write_byte(TM1637_CMD1)
        self._stop()

    """发送显示控制命令:设置显示开关和亮度"""
    def _write_dsp_ctrl(self):
        # display on, set brightness
        self._start()
        self._write_byte(TM1637_CMD3 | self._ON | self._intensity)
        self._stop()

    """
    向TM1637写入一个字节
    param b: 要写入的字节
    """
    def _write_byte(self, b):
        for i in range(8):
            self.dio((b >> i) & 1)
            sleep_us(TM1637_DELAY)
            self.clk(1)
            sleep_us(TM1637_DELAY)
            self.clk(0)
            sleep_us(TM1637_DELAY)
        self.clk(1)
        sleep_us(TM1637_DELAY)
        self.clk(0)
        sleep_us(TM1637_DELAY)

    """打开显示"""
    def on(self):
        self._ON = 8
        self._write_data_cmd()
        self._write_dsp_ctrl()

    """关闭显示"""
    def off(self):
        self._ON = 0
        self._write_data_cmd()
        self._write_dsp_ctrl()

    """
        @brief 设置或获取亮度
        :param val: 亮度值(1-8),None则返回当前亮度
        :return: 当前亮度值
    """
    def intensity(self, val=None):
        if val is None:
            return self._intensity
        val = max(0, min(val, 8))
        if val == 0:
            self.off()
        else:
            self._ON = 8
            self._intensity = val-1
            self._write_data_cmd()
            self._write_dsp_ctrl()

    """
        @brief 向指定位置写入数据
        :param bit: 位置(0-3)
        :param dat: 要显示的段码
    """
    def _dat(self, bit, dat):
        self._write_data_cmd()
        self._start()
        self._write_byte(TM1637_CMD2 | (bit%self._LED))
        self._write_byte(dat)
        self._stop()
        self._write_dsp_ctrl()

    """清屏,所有位置显示空白"""
    def clear(self):
        self._dat(0, 0)
        self._dat(1, 0)
        self._dat(2, 0)
        self._dat(3, 0)
        self.dbuf = [0, 0, 0, 0]

    """
        @brief 在指定位置显示单个数字或字符
        :param num: 要显示的数字(0-15对应0-F)
        :param bit: 位置(0-3)
        """
    def showbit(self, num, bit = 0):
        self.dbuf[bit%self._LED] = _SEGMENTS[num%16]
        self._dat(bit, _SEGMENTS[num%16])

    """
        @brief 打开时钟点
        @param show: True显示,False隐藏
        """
    def showDP(self, bit = 1, show = True):
        bit = bit%self._LED
        if show:
            self._dat(bit, self.dbuf[bit] | 0x80)
        else:
            self._dat(bit, self.dbuf[bit] & 0x7F)

    """
        @brief显示整数或小数
        @param num: 要显示的数字(整数或小数)
    """
    def shownum(self, num):
        self.clear()
        DP=False
        if isinstance(num,float):
            num=int(num*10)
            DP=True
        if num < 0:
            self._dat(0, 0x40)   # '-'
            num = -num
        elif num >= 1000:
            self.showbit((num // 1000) % 10)
        self.showbit(num % 10, 3)
        if num >= 10:
            self.showbit((num // 10) % 10, 2)
        if num >= 100:
            self.showbit((num // 100) % 10, 1)
        if DP:
            self.showDP(2)

    """
        @brief 显示十六进制数
        @param num: 要显示的十六进制数
    """
    def showhex(self, num):
        if num < 0:
            self._dat(0, 0x40)   # '-'
            num = -num
        else:
            self.showbit((num >> 12) % 16)
        self.showbit(num % 16, 3)
        self.showbit((num >> 4) % 16, 2)
        self.showbit((num >> 8) % 16, 1)

    def ShowTime(self, H, M,DPshow = True):
        H_1 = H // 10 % 10
        H_2 = H % 10
        M_1 = M // 10 % 10
        M_2 = M % 10
        self.showbit(H_1, 0)
        self.showbit(H_2, 1)
        self.showbit(M_1, 2)
        self.showbit(M_2, 3)
        if(DPshow == True):
           self.showDP(show = True)
        else:
            self.showDP(show = False)


tm1637 = TM1637(clk=Pin(Pin(14)), dio=Pin(Pin(15)))
import time


tm1637.intensity(val=20)
while True:
    tm1637.shownum(9654)
    time.sleep(3)
    tm1637.clear()
    time.sleep(3)
    tm1637.ShowTime(66,33,True)
    time.sleep(3)
​

7、米思齐 Mixly 示例程序(图形化语言) in Deutsch

Beispielprogramm (UNO-Entwicklerboard):2、第二步将UNO开发板的库文件下载后解压在桌面。
Achtung: Wenn beim Hochladen des Programms eine Fehlermeldung bezüglich der Bibliotheksdateien angezeigt wird, laden Sie bitte zuerst die Bibliotheksdateien herunter!
米思齐(Mixly)IDE Arduino库文件下载及导入教程:Klicken Sie zum Anzeigen

Beispielprogramm (ESP32-Entwicklungsboard):2、第二步将UNO开发板的库文件下载后解压在桌面。
Achtung: Wenn beim Hochladen des Programms eine Fehlermeldung bezüglich der Bibliotheksdateien angezeigt wird, laden Sie bitte zuerst die Bibliotheksdateien herunter!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
Klicken Sie zum Anzeigen

8、Testumgebung Einrichtung

Testumgebung für Arduino UNO einrichten

Vorbereiten Sie die Komponenten:

  • HELLO STEM UNO R3 Entwicklungsplatine *1

  • HELLO STEM UNO EXP1 Erweiterungsplatte *1

  • USB type-c Datenkabel *1

  • TM637 Vierstellen-Zeilenanzeige-Modul (HS-F15L) *1

  • 1P Mutter auf Mutter Dupont-Kabel *4 Stück oder 2P Mutter auf Mutter Dupont-Kabel *2 Stück

Schaltplan der Leitung:

ESP32 Testumgebung einrichten

Vorbereiten Sie die Komponenten:

  • ESP32EA MOC Entwicklungsboard *1

  • ESP32-EXP1 Erweiterungsplatine *1

  • USB type-c Datenkabel *1

  • TM637 Vierstellen-Zeilenanzeige-Modul (HS-F15L) *1

  • PH2.0 4P Steckerkabel *1

Schaltplan der Leitung:Wird aktualisiert...

9、Video-Tutorial

Video-Tutorial:Klicken Sie zum Anzeigen

10、Testergebnis

Arduino UNO Testergebnis:

Nachdem Sie das Programm auf die Arduino-UNO-Entwicklungsplatine hochgeladen haben, sehen Sie, dass die 7-Segment-Anzeige beginnt, einen 30-Sekunden-Rückzähler durchzuführen; gleichzeitig erfahren Sie, dass eine 7-Segment-Anzeige aus mehreren LED-Lampen besteht, die ein- und ausgeschaltet werden, um das gewünschte Effekt zu erzielen.