×

游戏回合时间计时器开源分享

消耗积分:0 | 格式:zip | 大小:0.10 MB | 2022-11-14

张国厚

分享资料个

描述

这是一个计时器,可以用作任何目的的倒数计时器,但它是为了在玩游戏时使用而创建的。设置好转弯持续时间后,使用向上和向下按钮,只需在转弯开始时按“开始”,计时器会发出哔哔声,显示屏将显示“开始”并开始倒计时。倒计时将在 3 秒后显示。时间到时,将显示“结束”并发出较长的哔声。5 秒后,设置的持续时间将重新显示为下一个玩家回合的开始。

持续时间可以从几秒到 99 分钟,显然它可以用作任何目的的计时器。

长按上下键可反复改变时间,60秒以上递增至10秒。

电路

电路很简单。

3 个瞬时开关在按下时将引脚 D2、D3 和 D4 接地。引脚设置为 INPUT_PULLUP,因此通常为高电平,按下按钮时变为低电平。

蜂鸣器连接到引脚 9。

4 位 LED 显示屏有 4 个连接。

  • VCC 至 +5v
  • 地到地
  • CLK到引脚6
  • DIO 到引脚 7

展示

我正在使用带有 TM1637 驱动程序的 4 位 7 段 LCD 显示器。我用的是 Youmile DR-YM-174,但任何品牌都可以。

该程序

该程序使用库来驱动 4 位显示。我正在使用 Avishay Orpaz 的库 TM1637 v.1.2.0。

常量 seg_go 和 seg_end 定义点亮以显示单词“go”和“end”的段。

计时器的持续时间保存在一个名为“duration”的变量中,在设置中默认设置为 30 秒。

ShowTime() 采用单个时间参数(以秒为单位)来显示。如果自上次调用以来已经过了一秒以上,则使用调用 display.showNumberDecEx(number, 0b01000000, true, 4, 0) 显示时间。第二个参数打开分隔冒号,第三个参数显示前导零。

WaitForStart() 包含一个 while 循环,该循环一直重复到按下开始按钮为止。在重复中,向上和向下按钮被选中,如果按下,持续时间会改变。当按下开始按钮时,调用 display.setSegments(seg_go) 会显示“go”,并且会发出声音。

然后调用 TimeDuration() 循环调用时间显示,直到时间到,然后显示“结束”并响起蜂鸣器。

暂停 5 秒后,重复该过程。

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !