基于GD32E231的电子数码闹钟

yin_wu_qing   2019-6-23 21:46 楼主

项目名称:基于GD32E231的电子数码闹钟

项目简介:

       本项目实现的功能比较简单,此次活动是DIY,体现的是自由化,凭个人想法创做作品。前段时间由于一直忙于调试样品,准备去上海参展,因此只能抽挤下班时间调试一下该项目的代码。为做这个项目之前单独打样了一个带键盘,带LED显示,以及带蜂鸣器的PCB,原理图与实物正如我之前发出的分享帖子:

https://bbs.eeworld.com.cn/thread-1079621-1-1.html

但是发现调试时ADC的配置老是出问题,采集的按键值不稳定,咨询了网友跟公司的同事,也搜索了一下关于GD32芯片ADC转换的资料,但是还是没能采集到唯一精准值,因此不得不转而换原来在学习做的单片机最小系统板,采用gpio口的方式实现按键,但是由于板子按键生锈了,按下键加了消抖处理,还是不怎么灵敏。所以后面想到了用串口代替键盘输入,而且能够实现远程设置时间和闹钟的开启关闭。其实如果有一个蓝牙模块,通过串口采用一样的原理就能实现远程控制挂在墙上的数码闹钟。本来考虑换用红外遥控来实现功能的,但时间仓促,因此就只好采用通过电脑串口工具,发送指定的字符命令串,加之设定日期时间的容错处理。经过实测,时钟跑的非常精准,设置闹钟精确到某月某日某时某分,方便快捷。

系统框图:

 

硬件总体框图.png

简介各部分模块的实现功能:

        PC端负责替代键盘输入功能,可以设置校准时间,闹钟开启与关闭。该功能需要借助串口工具,下发的数据经过串口发送给GD32E231MCU,然后经过GD32E231进行判断,是设置时钟方式,则通过GPIO模拟与DS1302模块通讯,执行写入设定时钟命令;如果是设置闹钟方式,则将数据存储在MCU中,不间断的读取DS1302的实时时钟,一旦满足当前的实时时钟与设定的闹钟数相同,则开启蜂鸣器,同时OLED屏幕上提示闹铃图示,响铃30秒。如果设置不符合指定合法的格式,则会报错,并OLED显示。由于GD32E231板间提供电池供电接口,采用板间上的四盏灯循环显示,与OLED上的电池图标相互映衬。

下面是几张如何正确设定校准时间,设置开启关闭闹钟。

 

输入正确格式示例.png

设置闹钟晚上10:30响起.png

设置闹钟晚上10:30关闭.png

 

关于DS1302的控制指令,如下图所总结的:

DS1302控制指令.png

心得体会:

        本次参赛看到许多网友都能快速将预设的项目功能做出来,本人实感羡慕。论坛里的网友很热心,自主学习的人有许多,我得向他们学习。本次活动中不中奖倒不是很重要,但在此活动中学到了不少开发实用的东西,包括处理问题上的逻辑性锻炼。通过参加这次活动,我深刻认识到与其它网友的差距,希望今后能够在此平台上,与大伙积极交流,抽出多点的时间来扩展一下自己的编程能力。

 

工程源码:

GD32E231.zip (505.01 KB)
(下载次数: 20, 2019-6-23 23:05 上传)

 

演示的视频:

https://v.youku.com/v_show/id_XNDI0MDY0NjMwOA==.html?spm=a2h3j.8428770.3416059.1

 

本帖最后由 yin_wu_qing 于 2019-6-24 11:02 编辑

回复评论 (1)

感谢分享。

点赞  2019-8-9 14:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复