【一起DIY】抢十秒器

【跟着hockel一起DIY】抢十秒器

在这里插入图片描述

前言

我们在逛商场的时候,有没有发现:有一些商家买了一台“挑战10秒”的机器,如果你来本店消费,正好按到10秒,就算挑战成功了,只要有一个人挑战成功,那同行的全部免单。在某宝搜了一下价格,不搜不知道,一搜吓一跳!这个小小的“挑战10秒”机器,最便宜的机器也要180大洋。
在这里插入图片描述

今天呢,陶老师就致敬经典,把‘挑战十秒’机器的价格打下来!让我们一起DIY一个抢十秒机器。

准备阶段

设计抢十秒器图纸

1、打开LaserMaker-→ 选择”一键造物”功能-→选择“圆角盒子”具体设置如下:
在这里插入图片描述

2、将一些传感器的开口预留一下。如下图所示:

在这里插入图片描述

3:进行激光切割
在这里插入图片描述

电路连接

在这里插入图片描述

作品搭建

在这里插入图片描述

①:组装TM1637和数字按钮(这里的TM1637的针脚可能会挡住,我用焊烙铁将针脚反置了一下。)
在这里插入图片描述

②:组装主控板
在这里插入图片描述

③:按照我们的电路连接图进行传感器的接线
在这里插入图片描述

④:完成组装
在这里插入图片描述

程序设计

我们这里需要用到TM1637模块,mind+中内置的积木块中没有,我们需要进行用户库的添加。选择主控板–“arduino nano ”,选择”用户库”搜索“TM1637”加载即可。具体操作如下:
在这里插入图片描述

主程序编写:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*!
* 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);
}
}

作品演示:
在这里插入图片描述

声明一下:这里为了减少动图大小,把视频转成GIF图时,减少了一些帧数。原视频中:4位数码的显示还是很流畅的

总结

好了,到这里我们的抢十秒机器就制作完成了,是不是很简单呢?更多项目制作教程欢迎浏览个人博客:www.hockel.club