【Arduino计时器】Arduino计时器使用TM1637显示时间

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秒。读者可以参考本文代码实现,并根据自己的需求进行修改和扩展。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值