You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 years ago | |
---|---|---|
docs | 5 years ago | |
pic | 5 years ago | |
CNAME | 5 years ago | |
LICENSE | 5 years ago | |
README.md | 5 years ago | |
_config.yml | 5 years ago | |
digital-clock.ino | 5 years ago | |
digital-screen.h | 5 years ago | |
ovo.h | 5 years ago | |
switch.h | 5 years ago |
README.md
digital-clock
本项目旨在帮助同学们快速完成EEE116数字时钟的代码开发。
先觉条件(非常重要!!任何一条不满足你的代码就无法运行)
- 新版Arduino可能无法运行,请使用1.8.5版本(下载地址:win / mac)
- 下载并解压代码到本地(代码下载戳这里)
- 请务必先解压,否则代码无法运行
- 请保证包含代码文件的文件夹名称为
digital-clock
相关资料
效果图
电路实物图
Arduino Nano推荐连法
译码器连法
译码器与显示器连法(由番茄树同学提供)
更多资料请查看附录译码器电路示意图
开关电路说明
快速开始
- 用Arduino IDE打开digital-clock.ino文件
- 根据需求编辑代码第22-50行的
定义初始参数
部分,比如修改小组组号。具体见参数说明 - 请不要使用Arduino Nano的D0,D1,D2端口!!
- 代码其它部分如不明白请不要改动
- 之后正常编译上传即可。如果编译或上传失败,请到下文Q&A中寻找自己的问题!
- 如果上传后你的时钟正常运行,那么恭喜你。否则,请参考下文错误排查方法。
错误排查
- 去掉代码开头
//#define DEBUG_MODE
的注释,编译并上传,进入debug模式 - 检查你的两个数字屏是否同时按照0-9的顺序循环跳动。如果出现个别数字是乱码,请检查译码器到数字屏的线路。参考:译码器连法,译码器电路示意图, 数字屏电路示意图
- 分别长按两个按钮开关,观察arduino板最左边的板载led是否亮起。如果板载led常亮,请检查你的两个开关线路,保证当开关按下时,输出为高电平。
- 如果上述测试均通过,请重新注释
#define DEBUG_MODE
,编译并上传 - 如果你的问题仍无法解决,请参考下文Q&A
参数说明
代码注释比较详细,我直接copy过来如下
/*** 定义初始参数 ****/
//小组组号
#define GROUP_ID 22 //计时器增大到此值将重新从零开始
//例如此处我的组号是22
//时钟变换时间间隔 (毫秒)
#define INTERVAL_TIME 1000 //默认是1秒
//pin口 - 接译码器1 (显示个位)
#define DIG_1_1 9 //A
#define DIG_1_2 10 //B
#define DIG_1_3 11 //C
#define DIG_1_4 12 //D
//pin口 - 接译码器2 (显示十位)
#define DIG_2_1 5 //A
#define DIG_2_2 6 //B
#define DIG_2_3 7 //C
#define DIG_2_4 8 //D
//pin口 - 接开关
#define SWI_OFF 3
//pin口 - 接reset键
#define SWI_RESET 4
Q&A
代码编译出现错误找不到ovo.h等
答:请保证压缩包中所有文件均在一个名为digital-clock
的文件夹中!!之后通过arduino打开此文件夹中的digital-clock.ino即可。
编译错误中出现关键词auto
答:请确保你的arduino为1.8.5版本!!(下载地址:win / mac)
上传错误avrdude: ser_open(): can't open device
答:请在上方栏工具中选择指定端口。
上传错误avrdude: stk500_recv(): programmer is not responding
答:此错误由先前对端口的非正常操作引起。请尝试重启系统或更换电脑解决。
数字时钟显示乱码
答:请先检查译码器与arduino的线路连接是否正确!!(大部分同学问题都出在这里)
请务必保证译码器的 A,B,C,D脚(参考:译码器连法,译码器电路示意图, 数字屏电路示意图)正确地连接到代码中你自定义的pin脚(默认为9,10,11,12和5,6,7,8)
使用debug模式排查线路连接问题!
暂停键没有反应
答:请使用debug模式,观察按下开关时arduino板载led是否亮。详情见上文错误排查部分。
显示屏个位与十位错位
答:两个译码器接反了。换过来即可。
已知bug
- 部分按钮开关需要长按才能识别
- reset键不灵敏
更新日志
2019/4/9
- 修复reset按钮不灵敏的bug
- 修复时钟显示问题
- 添加debug模式
背景资料
自豪地引用ovo.h搭建非阻塞Arduino程序框架!
我要参与
如果你认为本项目对你有帮助,请到本页最上方star本项目
如果你希望和我们一起完善本代码,请通过邮箱联系我!
开源协议
本项目使用GNU General Public License v3.0开源协议!