littlebot
Published on 2025-04-17 / 20 Visits
0

【源码】基于Arduino的TM16xx LED与按键驱动系统

项目简介

本项目是一个Arduino库,用于驱动基于TM1638、TM1637、TM1640等芯片的LED、按键及LED矩阵模块。通过该库,用户可在7段显示器上使用print()方法,在矩阵显示器上使用Adafruit GFX库,实现多样化的显示和交互功能。

项目的主要特性和功能

  1. 多芯片支持:支持TM1620、TM1628、TM1630、TM1637、TM1638、TM1640、TM1650和TM1668等芯片,部分其他制造商的类似芯片也可能兼容。
  2. 显示功能:提供print()和println()方法,便于在7段显示器上显示文本和数字;支持Adafruit GFX库,可在LED矩阵上实现高级图形显示。
  3. 按键检测:支持检测按键状态,包括释放、单击、双击和长按等事件,可通过回调函数处理。
  4. 亮度控制:能控制LED的亮度。
  5. 多模块组合:支持将多个LED矩阵模块组合成一个大矩阵。

安装使用步骤

  1. 假设你已下载本项目的源码文件。
  2. 将所需文件(如TM16xx.cpp、TM16xx.h、TM16xxMatrix.cpp、TM16xxMatrix.h等)复制到你的Arduino项目目录中。
  3. 在Arduino IDE中打开项目,包含必要的头文件,例如: ```C++

include

include

4. 实例化芯片对应的类对象,例如:C++ TM1638 module(8, 9, 7); // DIO=8, CLK=9, STB=7 TM16xxDisplay display(&module, 8); // TM16xx object, 8 digits 5. 在setup()函数中进行初始化设置,如设置显示强度、显示初始文本等:C++ void setup() { display.setupDisplay(true, 2); // on=true, intensity-2 (range 0-7) display.setDisplayToString("HALO"); // display simple text } 6. 在loop()函数中实现具体的显示和交互逻辑,如显示时间、检测按键等:C++ void loop() { int nTime = ((millis() / 1000) / 60) * 100 + (millis() / 1000) % 60; // convert time to minutes+seconds as integer display.setDisplayToDecNumber(nTime, _BV(4)); // display milliseconds with dot on digit 4

uint32_t dwButtons=module.getButtons(); Serial.println(dwButtons, HEX); } ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】