[Arduino|Micro]TCA1602S液晶屏时钟+串口校时(视频)

Photobucket

TCA1602S 是 TCA1602 的升级版,是 古作坊圣源电子制作论坛 和合作项目。

硬件的升级,包括主芯片由 ATmega8 升级为 ATmega168,增加了串口芯片,并优化了布线。

Flash 空间从 8K 升级到 16K,可以写入更多的程序,实现更多功能,之前的版本,程序只到那个程度,主要还是受到了空间的限制,塞不进更多的东西。增加了串口芯片,这样 TCA1602S 的主控板上,就具备了一个完整的 Arduino diecimila 平台,而如果把主芯片进一步升级为 ATmega328p,那么就是一个UNO 平台了,虽然样子长得不太一样,但原理图实际上是一码事。

依然是基于 Arduino 平台开发,这样就保证了代码开发的延续性,修改一下配置就好,代码都不用动。

软件部分,除了包含了旧版所有的功能,升级包括:

  1. 串口自动对时
  2. 背光亮度自适应(3级) 或 手动可调(8级)
  3. 智能日期判断,日期调节范围根据月份及闰平年自动调节

这些在视频中都会展示。主要说下串口校时的部分,这个是我自己做的时钟类制作都必不可少的功能。因为我一直很烦去编写校时的界面,项目的移动、数值的增减循环,一直很麻烦,代码又多,关键是使用的时候又很少。而且,手动校时,很难很准,有精确控的朋友,相信都也有掐着电视机或者收音机的整点报时掐时间的记忆。

所以,要实现对时自动化。而我在过去编写的上位机程序中,有点过分希望上位机端的程序简单,这就某种程度上造成上位机的复杂,当时是需要直接发送十六进制数据。如果都是 windows 平台的话,倒也还好,C# 的对时程序能很方便的运行。但是当运行平台发生变化,比方说很多朋友用的是 Mac OS 或者是 Linux,就玩不转了。而似乎玩 arduino 的童鞋中,又有不少人用的是 Mac 在玩,更重要的是,arduino 默认的串口调试工具,用的都是文本(而非十六进制数)来发送数据。于是,还是改时钟这边的程序吧。于是就加入了对串口数据的解析,所以现在用常见的串口调试工具,都能实现校时。校时数据的格式是

[yy mm dd HH MM SS WD]

除了两侧的方括号,从左到右,分别是 年、月、日、时、分、秒、星期几,各占2位,不足补0。而利用 .Net 或者 Ruby 时间类的输出格式化函数,是很容易输出这样的文本的。于是校时程序也简单很多,甚至于一个脚本就能实现。

虽然通过电脑校时变得这么容易,在UI部分,还是继续改进,实现了日期范围的自动调节。毕竟随着月份的变化,日期的范围是不同的。虽然时钟芯片能自动进行调整,但是总挡不住人为的使坏,故意输入错误的日期。所以在UI这边加入了不少判断,不仅仅根据月份变化,还根据年份不同,进行闰平年的变化,决不让日期超出范围。这个功能,就是针对爱“使坏”的用户吧,欢迎来找茬哦~

会这样去改,另一个出发点,就是对自己程序水平的锻炼罗。基于 Arduino 实现这个时钟,虽然是属于传统的电子制作,但是对自己熟悉 arduino 开发平台还是很有帮助,包括多模块、多功能、多输出、中断等等,都有了更深入的认识。对于我个人来说,过去用51实现的所有项目,都能完成其在 arduino 平台的实现,而且代码真的漂亮许多。

新增功能视频演示:

这个制作,提供原理图、单片机程序HEX文件、校时程序下载,可以在圣源电子制作论坛找到,有兴趣的朋友,完全可以自己搭接电路实现。套件购买地址在 http://item.taobao.com/item.htm?id=17562084805

串口校时部分,我有延时2种校时方式:

可能会用到的软件:

特别感谢:圣源电子(硬件设计都是他哦~),Heaven

关于aGuegu

向着更高的逼格
此条目发表在Arduino, 成品, 时钟分类目录,贴了, , , 标签。将固定链接加入收藏夹。
  • vector

    您好,请问你LCD1602中的大字体是怎样实现的呢?

    • 使用自定义字体,将显示转化为点阵咯

      • vector

        是使用LCD的CGRAM吗?

  • vector

    对了,你了把字体部分的相关程序发给我一份吗?学习学习,呵呵……

  • vector

    阿古哥你好,我准备运行你的github上的sample中的HD44780,我也把所包含的头文件全放到了一起,可是编译出现很多错误,所以我想请问一下,如何才能运行该样例?应当包含哪些文件以及这些文件放在什么地方是否有讲究?

    • 我在github上托管的文件,其实是按照eclipse-Arduino开发来设置的,要在arduino上使用的话,需要经过一些转化。可以参考 http://aguegu.net/?p=567 还可以参考下载区里面转换过的arduino直接能用的类库文件夹,比较一下目录结构。

  • Pingback: [hardware]Rasperberry Pi & MK802 | Agu's Mill 古作坊()

  • Pingback: [Shell]串口校时脚本 | Agu's Mill 古作坊()