使用TM1637显示时间的Arduino计时器教程
Arduino计时器使用TM1637显示时间
本文介绍如何使用Arduino制作计时器,并使用TM1637显示时间。计时器使用2个GPIO接口作为启动计时和停止计时的按键,并要求计时精度达到0.01秒。
所需材料
接线说明
将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秒。读者可以参考本文代码实现,并根据自己的需求进行修改和扩展。