使用TM1637显示时间的Arduino计时器教程

Arduino计时器使用TM1637显示时间

本文介绍如何使用Arduino制作计时器,并使用TM1637显示时间。计时器使用2个GPIO接口作为启动计时和停止计时的按键,并要求计时精度达到0.01秒。

所需材料

  • Arduino开发板
  • TM1637显示屏
  • 2个按键
  • 杜邦线
  • 接线说明

    将TM1637显示屏的CLK、DIO引脚分别连接至Arduino的数字13、数字12引脚上。将启动计时按键接至数字2引脚上,将停止计时按键接至数字3引脚上。

    代码实现

    首先需要引入TM1637库,可以在Arduino IDE中搜索安装。为了计时精度达到0.01秒,我们需要使用Arduino的定时器功能。具体代码实现如下:

    #include <TM1637Display.h>
    
    #define CLK 13
    #define DIO 12
    #define startPin 2
    #define stopPin 3
    
    TM1637Display display(CLK, DIO);
    volatile bool timing = false;
    volatile unsigned long startTime = 0;
    volatile unsigned long stopTime = 0;
    volatile unsigned long elapsedTime = 0;
    
    void startTimer() {
      startTime = millis();
      timing = true;
    }
    
    void stopTimer() {
      stopTime = millis();
      timing = false;
      elapsedTime = stopTime - startTime;
    }
    
    void setup() {
      pinMode(startPin, INPUT_PULLUP);
      pinMode(stopPin, INPUT_PULLUP);
      display.setBrightness(0x0f);
    }
    
    void loop() {
      if (digitalRead(startPin) == LOW) {
        startTimer();
      }
      if (digitalRead(stopPin) == LOW) {
        stopTimer();
      }
      if (timing) {
        elapsedTime = millis() - startTime;
      }
      int seconds = elapsedTime / 1000;
      int milliseconds = (elapsedTime % 1000) / 10;
      int displayValue = seconds * 100 + milliseconds;
      display.showNumberDec(displayValue, true);
    }
    
    

    在程序中,我们定义了CLK、DIO、startPin、stopPin等引脚。使用TM1637Display库初始化显示屏,在setup()函数中设置启动计时和停止计时按键的引脚模式为INPUT_PULLUP。

    在loop()函数中,通过digitalRead()函数获取按键状态,如果启动计时按键按下,则使用startTimer()函数记录当前时间为计时开始时间。如果停止计时按键按下,则使用stopTimer()函数记录当前时间为计时结束时间,并将timing标记为false,计时结束。如果计时中,使用elapsedTime变量记录当前时间与计时开始时间之间的时间差,并计算显示在TM1637屏幕上的时间。

    总结

    通过本文的介绍,读者可以了解如何使用Arduino和TM1637制作计时器,并精度达到0.01秒。读者可以参考本文代码实现,并根据自己的需求进行修改和扩展。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用TM1637显示时间的Arduino计时器教程

    发表评论