[Arduino|Micro] TCA1602 红外遥控液晶屏时钟

Photobucket

TCA1602 是 古作坊圣源电子 携手开发的基于 Arduino 平台的时钟项目。主芯片为 ATmega8-16PU,集成的模块包括:1602液晶屏、DS1302时钟、热敏电阻测温、38K红外遥控、蜂鸣器,串口芯片PL-2303。其前身(初号机)是基于 STC12C5616AD 的 TC1602

Photobucket

新项目代号为 TCA1602,多了一个“A”,表示是基于“Arduino”或是“AVR”。其前身 TC1602 在博客上倒是挺受关系,似乎还是评论数最多的文章,也有不少朋友通过索取 Hex 文件,自己制作成功。在 圣源 的帮助下,现在这款时钟终于可以提供套件和成品的购买,特向 圣源电子 表示感谢。

曾经的TC1602,对于我个人来说,算是51项目的一个终结。因为算是我玩51以来最为复杂的一个。主要崩溃的地方,来自于红外控制以及UI界面的设计,以及多种显示模式的切换。而深刻感觉到纯C语言的程序,再复杂到一定程度以后,扩展乏力。

而 Arduino 开发则让这一切的轻松许多,归功于强大的 C++,面向对象的开发,不仅很方便地实现了代码的封装,而且硬件平台也很统一,需要升级内核之类,也不会纠结。而可以将原先51的项目,成功移植到 Arduino 上,对于我个人来说,基本就意味着,没有什么51的能做的事情在Arduino上无法实现。甚至结合成本来说,因为在 ATMega8 就能搭建 Arduino 开发平台的话,51的成本优势也变得不那么明显了。而开发的轻松程度,则是几何倍数的增加。至于如何脱离 Arduino 标准版,而在 M8上搭建 Arduino 开发平台,可以参考《【Arduino】使用ATmega8-16PU制作Arduino最小系统》,以及《[Arduino]用 ATmega8L-8PU 体验 Arduino》。

在开发过程中,所有的类库均重新开发。Arduino 社区里面,虽然有1602、DS1302以及红外遥控的标准库,但是看了一下,都没觉得很好用,所以还是自己写。对于在 Arduino 上如何开发类库,可以参考之前《[Arduino] 使用 Arduino Eclipse 插件进行OOP编程及类库开发》一文。硬件核心部分,可以参考《[Arduino|Zero]做块 Arduino“开发板”

TCA1602的主要特色:

  • 三种显示模式:大字体时间显示、大字体温度显示、全息显示,并可每10秒钟进行自动切换。
    • 大字体时间显示:以12小时制,显示当前“小时:分钟”,冒号随读秒闪动
    • 大字体温度显示:测温范围-20 至120摄氏度
    • 全息显示:显示月、日、年、星期几、温度、时、分、秒。
  • 通过外部中断实现的红外遥控
  • 实时热敏电阻测温,刷新频率为1次/秒
  • 整点提示(滴滴)
  • 掉电不掉时设计,即插即用

大字体时间显示:
Photobucket

大字体温度显示:
Photobucket

全息显示:月份、星期几都采用标准英文简写形式,使得各类信息更容易区分。
Photobucket

遥控器按键说明:

  • 电源键:屏显的 关闭/开启;
  • EQ键:进入/退出 校时模式,设置时间时,不能对秒进行单独设置,当设置完毕,退出校时模式时,从秒数重新从0开始。
  • Mode键:在三种显示模式下进行切换
  • 播放键:三种显示模式的自动切换显示
  • 上一首/下一首:在显示模式下,作为背光亮度的降低/提高;在校时模式下,为位选。
  • 音量减/音量增:在校时模式下,控制光标对应数值的减少/增加。

其实期待实现的目标远不仅于此,比较可惜的是,开发到目前的阶段,已经将 M8 的 8K Flash 写满。只能完成目前这些基本的时钟功能,待将主芯片升级为 ATmega168 时,期待增强版的 TCA1602 吧~

Photobucket

视频演示:

套件或成品的购买链接,在这里:圣源电子的淘宝店

希望自己制作,需要原理图以及Hex文件的朋友,欢迎留言索取。也欢迎来 圣源电子论坛 参与讨论。

关于aGuegu

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