用四位数码管和DS3231时钟模块做车载电子时钟

用四位数码管和DS3231时钟模块做车载电子时钟

本来咱车上收音模块上是有一个时钟的,但换了导航以后,发现时钟不好用了:主界面上有时钟,但位置太靠左侧,俺的大手握方向盘刚好挡住视线,而且在播放音乐时,时钟就移到了右上边的一行小字,看起来非常吃力。
没关系,找出咱们aruino套装,买的时候商家送了一些小零碎,找出来自己做一个车载时钟。
  • 一、需要的零部件:
    1、一块arduino nano单片机。其它版本的也行,我手头只有一块nano,就它了。
    用四位数码管和DS3231时钟模块做车载电子时钟_第1张图片
    2、一块0.56寸的四位数码管,比较可惜的是我手头的这块没有冒号,好在有四个小数点,将就用吧。需要说明的是:我用的共阴极的,如你的不是,后面的接线方法需要调整。
    用四位数码管和DS3231时钟模块做车载电子时钟_第2张图片
    3、一个DS3231的时钟模块。DS3231是一款高精度I2C实时时钟模块,带一个纽扣电池,用于在系统掉电时能够保存时间信息。这个模块具有集成的温度补偿晶体振荡器。它的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。还有月末日期和闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。
    用四位数码管和DS3231时钟模块做车载电子时钟_第3张图片
    4、两个轻触开关,用来设置时间用的。
    用四位数码管和DS3231时钟模块做车载电子时钟_第4张图片
    5、一小块万能板,也就是电子爱好者常用的洞洞板,用于固定零件。
    6、六个220欧的电阻,用于对数码管和轻触开关降压。我的时钟是放车上用的,就直接从车载充电器的5V,通过一条mini USB线直接供电,好处是车子断电后,时钟也会自动断电。想要更美观一起,可以从导航一体机直接取5V和GND。
  • 二、设计思路:
    1、显示功能。本来DS3231是有很多功能,能提供年、月、日、时、分、秒、温度等多个信息给单片机,而且还能设置两个闹钟。但一来好多功能咱们用不上,二来四位数码管只能同时显示四个数字,我们只显示最常用的月日,时分和温度三个功能。四位数码管采用轮换显示的方法。第一屏显示月日,如02.13表示2月13日第二屏显示时分,如17.20表示17点20分第三屏显示温度,如-12.C表示零下12度, 20.C表示20度。三屏之间各隔2秒钟切换一次。
    2、设置功能。两个轻触按钮提供时钟的设置功能。第一个是设置键,长按后系统进入月设置状态,月设置时月度的两个数字后面加点。如0.2.13代表状态为月份设置,当前值为02月。再长按进入日期设置,如021.3.代表状态为日期设置,当前值为13号。再长按进入小时设置,如1.7.20代表状态为小时设置,当前值为17时。再长按进入分钟设置,如172.0.代表状态为分钟设置,当前值为20分。再长按保存设置好的值,退出设置状态。第二个是调整键,在任何一个设置状态下,长按调整键能增加当前的设置值,如在月设置时,长按调节键会让当前月份加1(到12月时回到1月),在分钟设置时,长按调整键会让当前分钟值加1(到59分后回到00分)。
    语言描述不好理解,我们用一个流程图来说明一下上面的叙述。
    用四位数码管和DS3231时钟模块做车载电子时钟_第5张图片
    三、线路连接线路连接如下图:
    用四位数码管和DS3231时钟模块做车载电子时钟_第6张图片

四、程序代码
程序代码点击下载。
需要说明的是:
1、为防止误操作,我在代码中设计两个按键都是长按才起作用,如嫌麻烦,要以将代码改为短按(就是去掉if (buttonChange>500)那段)。
2、所需的DS3231库可以在Arduino库管理工具中从官方下载,也可以点击此处下载。
代码很简单,说明也很详细,再配合上面的流程图,应该很容易理解。

  • 五、安装和调试
    安装过程很简单,把所需零件按图焊接到万能板上就行了,俺的焊接功夫极差,就不献丑了。线接好是这个样了的(再鄙视自己一下)。

    为了美观,我用3D打印机做了个外壳。
    用四位数码管和DS3231时钟模块做车载电子时钟_第7张图片
    左侧的是主体,三个孔对应arduino的mini USB口和两个按键,右侧的是盖子。顺便介绍一下,我用的3d设计软件是 123D Design。这是一个免费设计工具,非常容易上手。
    做成以后是这个样子:
    用四位数码管和DS3231时钟模块做车载电子时钟_第8张图片
    通上电试下,显示月份和日期:
    用四位数码管和DS3231时钟模块做车载电子时钟_第9张图片
    显示小时和分钟:

    显示温度:

    OK,安到车上,从导航一体机上取一条USB线,插上后大功告成!
    用四位数码管和DS3231时钟模块做车载电子时钟_第10张图片

你可能感兴趣的:(arduino,单片机)