5072浏览
查看: 5072|回复: 0

[项目] 【一起DIY】抢十秒器

[复制链接]
本帖最后由 hockel 于 2021-1-5 19:56 编辑

【一起DIY】抢十秒器

前言

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

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

准备阶段

设计抢十秒器图纸

1、打开LaserMaker-→ 选择"一键造物"功能-→选择“圆角盒子”具体设置如下:
2、将一些传感器的开口预留一下。如下图所示:

3:进行激光切割

电路连接

作品搭建


①:组装TM1637和数字按钮(这里的TM1637的针脚可能会挡住,我用焊烙铁将针脚反置了一下。)
②:组装主控板

③:按照我们的电路连接图进行传感器的接线

④:完成组装

程序设计

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

主程序编写:


代码:

/*!
 * 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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail