电子说
在这个项目中,我们将使用chipKIT Uno32板构建一个数字秒表,该秒表能够对分钟,秒和1/10秒进行计时,并具有基本的启动和停止控制功能。 MAX7219驱动的8位七段LED显示器用于显示经过的时间。秒表停止时,Uno32板上的 重置 开关将用于将当前时间重置为0。
chipKIT数字秒表项目插图
理论
秒表是一种测量时计的时计。从启动到停止之间经过的时间量。秒表在许多活动中很有用,包括体育,游戏和烹饪,这些活动可以用来计时。我们将使用 chipKIT Uno32开发板和 SPI7SEGDISP8.56-1R显示模块构建数字秒表。秒表的时间分辨率为1/10秒或100毫秒,最大可测量间隔为99分钟,此后秒表将再次翻转为零。可以在此处找到基于MAX7219的串行七段显示接口的更多详细信息。
《表边框=“ 5” cellspacing =“ 0” cellpadding =“ 2” align =“ center” 》 SPI7SEGDISP8.56-1R 是基于MAX7219的8 -digitseven段LED显示,仅需MCU的3个I/O引脚即可控制所有数字段。它还支持通过软件命令进行亮度控制。
从我们的Tindie商店购买SPI7SEGDISP8.56-1R
电路设置
SPI7SEGDISP8.56-1R模块的电源引脚(VCC和Gnd)连接到Uno32板的5V和Gnd接头引脚。 DIN,CLK和LOAD信号线由Uno32板的数字输出引脚7、6和5驱动。还需要一个轻触开关在秒表的开始/停止之间切换。它连接到Uno32板的中断引脚INT0(在I/O引脚38上可用)。一个简单的RC滤波电路用于对开关进行去抖动。下图显示了该项目中实现的开关去抖电路及其去抖时间。可以通过如下所示的简单RC电路瞬态响应方程来计算去抖动时间。对于给定的R2和C1值,去抖动时间计算为〜3.5ms。
带硬件去泡电路的秒表启动/停止开关
该项目的完整设置如下图所示。 “开始/停止”开关和去抖动电路建立在面包板上。
项目的完整设置
带有反跳电路的启动/停止开关布置在面包板上
chipKIT草图
该项目使用 millis()函数进行计时。 millis() 是Arduino中的内置函数,因此在MPIDE中,该函数返回自当前草图开始起经过的毫秒数。此值在大约50天后溢出。此秒表项目的时间分辨率为1/10秒或100 ms。因此,将计数器设置为每100 ms递增一次,它会溢出并在10个计数中回滚到0,这相当于1秒。定义变量来存储分钟,秒和十分之一秒的信息。经过的时间以MM-SS-TS(TS为十分之一秒)格式显示在七段显示屏上。 LedControl库在该项目中用于将基于MAX7219的七段式LED显示器与chipKIT Uno32板接口。按下连接到INT0(引脚38)引脚的按钮即可启动和停止秒表。 INT0触发模式定义为 FALLING ,这意味着当INT0引脚从高电平变为低电平时,将调用中断例程。可以从下面的链接下载该项目的完整草图。将此草图上传到您的chipKIT Uno32板上,秒表就可以开始滚动了。
下载秒表草图
下载 LedControl
输出
秒表的操作非常简单,如前所述。开机时,秒表显示全零。按下轻触开关启动秒表。第二次按下时,秒表停止。可以通过按Uno32板上的Reset(重置)按钮将其重置为零。
秒表从七位LED显示屏上的所有零开始
按下开关可启动和停止秒表
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !