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

【Arduino计时器】Arduino计时器使用TM1637显示时间相关推荐

  1. ESP8266读取网络时间TM1637显示时间

    ESP8266读取网络时间TM1637显示时间 // change next line to use with another board/shield #include <ESP8266WiF ...

  2. 8086汇编语言实现8253计时器对时且实时定点显示时间(全注释)

    作为微机原理终极大作业的一部分,个人感觉这个模块是最难的,花了我一个晚上+一个上午.因为有计时中断,也没办法开调试,Debug难度上了一个新高度,而且有时代码一点没动,运行的结果还不一样,甚至会闪退卡 ...

  3. Arduino UNO驱动TM1637四位时钟数码管显示时间

    Arduino UNO驱动TM1637四位时钟数码管显示时间 一.TM1637简介 二.引脚定义 三.Arduino UNO与数码管模块接线 四.测试代码 五.实验结果 一.TM1637简介 TM16 ...

  4. Arduino实时时钟设计(TM1637数码管显示)

    设计者:STCode(公众号同名) 1.实时时钟功能介绍 该设计利用DS1302获取时间数据,用4位led数码管显示模块显示当前的年月日信息,并且设计有一个按键,可以切换时间数据. 2. 使用主要器件 ...

  5. C语言电子闹钟(显示时间、计时器、闹钟、倒计时、世界时钟)C语言大作业

    #include <stdio.h> #include <time.h> //时间函数 #include <conio.h> //字符模式函数 #include & ...

  6. ESP32基于Arduino框架下U8g2驱动I2C OLED 时间显示

    ESP32基于Arduino框架下U8g2驱动I2C OLED时间显示

  7. 二、ESP32基于Arduino IDE OLED 联网显示时间

    上一篇学习笔记讲了如何在Arduino上配置ESP32开发环境,这次分享一下如何让ESP32联网获取时间再通过OLED来显示.此系列文章都是学习笔记,希望能有所帮助. ps:代码中调用的库如需要可在在 ...

  8. 用2553单片机实现按键倒计时响铃,用TM1637显示倒计时时间

    由于个人原因近期都没有更新博客了,现在更新一篇关于单片机的入门级的功能实现. 具体要求如下: 实现由2553单片机按键按下,实现开启给定时间的倒计时,在定时结束后蜂鸣器开始响铃.倒计时的时间实现由TM ...

  9. Arduino ESP32 通过getString方法获取网络时间和气象数据

    Arduino ESP32-通过getString方法获取网络时间和气象数据 国家气象数据API接口:http://www.weather.com.cn/data/sk/101010100.html ...

最新文章

  1. 技术大佬的肺腑之言:“不要为了 AI 而 AI”! | 刷新 CTO
  2. ai取代程序员_你现在从事的程序员还有多久会消失?牛津大学研究员帮你算了算...
  3. P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
  4. Silverlight入门系列]使用MVVM模式
  5. linux中的SGI(核间中断)IPI_RESCHEDULE详解
  6. python 变成float32_【Python】手把手教你用Python做一个图像融合demo,小白可上手!...
  7. 干货!Java字节码增强探秘
  8. R语言页游渠道分析(转)
  9. laravel 路由模型绑定
  10. 软件应用:HexorBase Tool 实战测试!
  11. iOS研发助手DoraemonKit技术实现(一)
  12. 美赛如何选题matlab,2017美赛D题—学习记录
  13. es like模糊匹配_Elastic search模糊匹配,精确匹配显示在前
  14. springboot旅游景区景点购票系统毕业设计毕设作品开题报告开题答辩PPT
  15. 深度解析 steam密码js逆向(篇幅很长)
  16. FreeImage通用图像加载实现
  17. 14届数独-真题标准数独-Day 6-20220121(补)
  18. 轻松处理 针式打印机故障解决方法
  19. Newton插值法 | 差商 + Newton插值公式 + 插值余项
  20. [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云

热门文章

  1. 12月书讯 | 年末上新,好书不断
  2. ARouter原理分析
  3. 重构函数调用-Parameterize Method令函数携带参数五
  4. 什么是农业气象环境监测系统
  5. CVX用户指南之快速入门
  6. 「VUE」前端实现真正的无感打印(可打印dom、file、url) CSDN首发
  7. 图片清晰度如何修复?简单的修复方法来了
  8. Codeforces 1169B Pairs
  9. java-校园兼职系统
  10. 菜鸟高飞尽之CSS-CSS样式表