【一起DIY】抢十秒器
本帖最后由 hockel 于 2021-1-5 19:56 编辑# 【一起DIY】抢十秒器
![](data/attachment/album/202101/03/192726e1p19frf32ip33hn.jpg)
## 前言
我们在逛商场的时候,有没有发现:有一些商家买了一台“挑战10秒”的机器,如果你来本店消费,正好按到10秒,就算挑战成功了,只要有一个人挑战成功,那同行的全部免单。在某宝搜了一下价格,不搜不知道,一搜吓一跳!这个小小的“挑战10秒”机器,最便宜的机器也要180大洋。
![](data/attachment/album/202101/03/192924t8l4eej04fewm27b.png)
今天呢,陶老师就致敬经典,把‘挑战十秒’机器的价格打下来!让我们一起DIY一个抢十秒机器。
## 准备阶段
- (https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22712549697.9.a94c546eun5yuh&id=40636065878)
- (https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22712549697.15.a94c546eun5yuh&id=42008287852)
- [数字大按钮(红色、黄色)*2 ](https://www.dfrobot.com.cn/goods-78.html)
- (https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22712549697.9.6d67546evyxwct&id=40127496123)
- 杜邦线 若干
- 抢十秒激光切割外壳
## 设计抢十秒器图纸
1、打开LaserMaker-→ 选择"一键造物"功能-→选择“圆角盒子”具体设置如下:![](data/attachment/album/202101/03/193349ooo663ig3mnuu3u0.png)
2、将一些传感器的开口预留一下。如下图所示:
![](data/attachment/album/202101/03/193418xlmdjpr6dv71ix7m.png)
3:进行激光切割![](data/attachment/album/202101/03/193432izxyijx0fy0x532j.jpg)
## 电路连接
![](data/attachment/album/202101/03/193504p7n8i3ep6v5hevup.png)
## 作品搭建
![](data/attachment/album/202101/03/193523fpp2czp2q2zjybyp.jpg)
①:组装TM1637和数字按钮(这里的TM1637的针脚可能会挡住,我用焊烙铁将针脚反置了一下。)![](data/attachment/album/202101/03/193541o0rrppk656inxnrk.jpg)
②:组装主控板
![](data/attachment/album/202101/03/193559qdknq1lpz2ddd9an.jpg)
③:按照我们的电路连接图进行传感器的接线
![](data/attachment/album/202101/03/193634tr09c2ur0u3r222d.jpg)
④:完成组装
![](data/attachment/album/202101/03/193655mwo077d7ekd7iwok.jpg)
## 程序设计
我们这里需要用到TM1637模块,mind+中内置的积木块中没有,我们需要进行用户库的添加。选择主控板--“arduino nano ”,选择"用户库"搜索“TM1637”加载即可。具体操作如下:
![](data/attachment/album/202101/03/193725ysnpupnfyo8ky4yp.png)
**主程序编写:**
![](data/attachment/album/202101/03/193748m1tms1xys01995c7.png)
![](data/attachment/album/202101/03/193754o1n64ldex6evdexv.png)
![](data/attachment/album/202101/03/193802xdvzc7cjep83j9k9.png)
**代码:**
```
/*!
* MindPlus
* nano
*
*/
#include <SevenSegmentTM1637.h>
#include <SevenSegmentExtended.h>
// 动态变量
volatile float mind_n__1, mind_n_flag, mind_n__2;
// 函数声明
void DF_KaiShiJiShi();
void DF_TingZhiJiShi();
void DF_XianShiJieGuo();
// 创建对象
SevenSegmentExtended tm1637(9,8);
// 主程序开始
void setup() {
tm1637.begin();
}
void loop() {
if (digitalRead(2)) {
DF_KaiShiJiShi();
}
if (digitalRead(3)) {
DF_TingZhiJiShi();
}
DF_XianShiJieGuo();
}
// 自定义函数
void DF_KaiShiJiShi() {
tm1637.printTime(0,0,0);
mind_n__1 = millis();
mind_n_flag = 1;
}
void DF_TingZhiJiShi() {
if ((mind_n_flag==1)) {
mind_n__2 = millis();
mind_n_flag = 2;
}
}
void DF_XianShiJieGuo() {
if ((mind_n_flag==1)) {
tm1637.printTime(((millis() - mind_n__1) / 1000),((((int)(millis() - mind_n__1)) % ((int)1000)) / 10),0);
}
else {
tm1637.printTime(((mind_n__2 - mind_n__1) / 1000),((((int)(mind_n__2 - mind_n__1)) % ((int)1000)) / 10),0);
}
}
```
**作品演示:**
![](data/attachment/album/202101/03/193920eikff55iylel5v5e.gif)
**声明一下:**这里为了减少动图大小,把视频转成GIF图时,减少了一些帧数。原视频中:4位数码的显示还是很流畅的
## 总结
好了,到这里我们的抢十秒机器就制作完成了,是不是很简单呢?更多项目制作教程欢迎浏览个人博客:(http://www.hockel.club/)
页:
[1]