1 Star 1 Fork 1

翘楚 / 电子钟_eclock

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

电子钟

项目中文名:电子钟 项目英文名:eclock 作者:WonderBoy 关键词:电子钟 | DIY | Arduino 概要:一款基于Arduino单片机的低成本多功能DIY电子钟 源作者仓库:https://gitee.com/xzqiaochu/eclock/ 开源协议:GUN V2.0

本文大纲 [toc]

1

1. 项目简介

近年来,工业化大生产使得市面上的小商品越来越同质化。与此同时,各种小工具、DIY元件也大量涌现,鼓励人们自己设计并制作独特的作品。

钟表,作为人们日常生活中不可获取的一员,早已在步入机械化大生产的队伍,在数量上满足了人们的需求。但市面上的常见钟表功能单一,一般只具备显示时间的功能。虽然市场上也出现了多功能钟表,但其价格往往令人望而却步。

因此,我决定自己DIY一款多功能电子钟

2. 设计方案

2.1 材料选择

主控板:Arduino Nano 作为风靡全球的单片机,Arduino提供简易、稳定的开发环境,而且网络上也有众多资料供参考。最重要的一点是,Arduino单片机的价格十分便宜。这次我选择的是Arduino系列的Nano版本,这款单片机体积小巧。

3

显示屏:OLED 我购买了带有SSD1306的OLED显示屏,这款只有四根接线,采用IIC与主控通讯,大大简化了接线。

1

时钟模块:DS3231 为了保证电子钟在断电的情况下仍能保证时间的准确性,需要加装外接时钟模块。这款时钟模块上装有一节纽扣电池。

4

2.2 电路设计

我使用立创EDA平台绘制了电路草图。

0

2.3 加工工艺

为了保证接线的牢固性,所有的接线均使用电烙铁焊接。

模块之间采用泡沫胶粘合。

3. 制作过程

3.1 硬件部分

首先我用面包线将各模块连接起来,并使用Arduino IDE下载相关示例程序,检查各模块的运行情况。(示例程序见:/arduino/examples/

测试无误后,我使用电烙铁将接线焊接到各模块上。 这里我遇到了一个小困难。OLED显示屏和时钟模块都是采用IIC与主控通讯的,而在一个焊点上焊接两个针脚并不方便。随后我发现,时钟模块上有两组IIC引脚,这就好办了。我边将这两组引脚分别与主控和OLED屏相连接。

2

3.2 软件部分

3.2.1 日期时间显示

首先,要显示钟表最基本的功能:显示时间。

我使用了RTC库文件,该库封装了对DS3231模块的操作。只需要调用以下函数边和轻松获取到时间日期。

RTC.getYear();
RTC.getMonth();
RTC.getDay();
RTC.getHours();
RTC.getMinutes();
RTC.getSeconds();

需要注意的是,DS3231模块在使用前需要初始化时间。方法也非常简单,只需要上传一个示例程序即可。(程序见:/arduino/examples/DS3231_Adjust/

3.2.2 温度显示

在看示例程序的过程中,我看到了获取温度的函数。

RTC.getTemp();

这是因为时钟模块的晶振会受温度的影响,为了保证时间的准确性,模块内置了一个温度传感器为晶振提供“补偿”。

而且,实际测试发现,得到的温度数据并不准确。大概是因为模块在工作的过程中会发热。

显示日期的温度的程序见:/arduino/time/

3.2.3 高考倒计时

完成了基本功能之后,我想让电子钟显示高考倒计时。

这就需要进行日期做差了,于是我使用DEV C++编写相关函数,在本地进行调试。(程序见:/cpp/)本地调试省去了费时的上传过程,大大提高了编程效率。

在电脑上调试好日期计算函数后,我将其移植到单片机上,执行正常。

4. 测试

我进行了如下测试,结果均正常:

  • 断电一天后重新上电,时间显示正常。
  • 强制指定一些特殊的时间点,高考倒计时计算正确。

5. 说明书

使用USB口供电即可使用,注意防尘防水。

5

6. 评价及反思

6.1 一些可取之处

  1. 价格便宜,成本20~30元左右。
  2. 扩展性强,实现的功能只受限于想象。
  3. 功耗低,整机功耗约为10mA。

6.2 目前存在的bug

高考倒计时小鼠点后第六位时钟为0,即使改成double类型也是如此。

6.3 不足及改进方案

  1. 没有外壳;以后可以采用3D打印外壳,或者环氧树脂密封。
  2. 时间的准确性依赖于纽扣电池;以后可以改用ESP8266ESP32模块,该模块支持接入WIFI同步网络时间,而且CPU频率更高,价格便宜。

About

No description expand collapse
C++
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
C++
1
https://gitee.com/xzqiaochu/eclock.git
git@gitee.com:xzqiaochu/eclock.git
xzqiaochu
eclock
电子钟_eclock
master

Search

10d9f8b4 4838521 8bde8327 4838521