【科技小作品】Arduino计数储蓄罐的制作教程

2023-05-16

效果图

38c6b4ac3f9e447e8fb369fdb290d9d4.jpg

 


1.材料准备

  • 母头杜邦线若干
  • 测速传感器模块(槽型光耦)一个
  • 四位数码管模块(x1)
  • arduino R3主板(x1)
  • 电池盒(x1)
  • USB 方口打印数据连接线(x1)
  • 硬纸板一张,厚度自定(尺寸:45x35)
  • 热胶枪(x1)
  • 热熔胶若干
  • 美工刀

虽然材料看起来很多,但是请别害怕。其实上诉的电子元件是能在淘宝上买到的,而且价格也不高。至于大纸板,从不要的纸箱上裁下来就好。


2.接线教程

测速传感器:

VCC——>接5V

GND——>接GND

DO——>接arduino信号端口

四位数码管模块:

VCC——>接5V

GND——>接GND

CLK(时钟线)——>接信号端口

DIO(数据线)——>接信号端口

这是作者接的:

46e326f201934a9890d11f40b14ddd93.jpg


3.开始编程

因为作者本人的学习重点是python,而不是c语言,另外为了照顾一些编程基础薄弱的读者,所以本项目使用mixly进行演示(结尾有c语言代码)

安装驱动以及如何打开就不用说了吧,直接跳到原理讲解部分。

首先创建一个变量,用于存储硬币的数量值(变量命名规则应该都懂,不懂的请自行百度)

其次是四位数码管模块的初始化,把CLK和DIO的管脚填一下就行(填你接的对应的信号端口)

然后直接写一个if结构,如果DO引脚检测到高电平,就将变量值加一,并在数码管上显示。

最核心的部分来了,这里涉及一个叫"权位"的概念,他也是让多位数码管显示不固定量的关键技术。

如果要具体去讲它的概念的话,会抽象得很难说清楚。所以,在这个项目里,你只需要知道它的计算方式就好了。

权位的计算方法,大概可以总结成六个字:

先整除,后取余

数值/1,或往后面添0组成的数%10

这样就能得到一个数值里每一位数的权位。

举个例子:

1111

(1/1)%10

(1/10)%10

(1/100)%10

(1/1000)%10

最后将权位其运用到代码中,就可以显示变量值了。

参考代码(图形化版):

63c00ef85e994130b8987f3f325ed829.png

fc56548512ab4608b6382f4ec6b4936c.png 

 参考代码(C语言版):

70ac6fc4669c435ea7a02401c8e2e2e6.png

 

4b228ddcc0b642d1b5e8f10362d5ea10.png

 


4.硬件封装

把你准备好的硬纸板拿出来,按照图例用美工刀进行裁剪:

8f8bc6b836b14058bc0f2d1f9e8a72cb.jpg

左右比上下低仅仅只是为了美观,你也可以对尺寸进行适当地修改。

0e14c4546df04ce4817f4cca98a11c76.jpg

 这里需要补充的是,记得切割一个小口用来引出电池盒的线,不然一会没法封装。

然后用热胶枪把电子元件粘在纸板上:

b60e22cc37de45cbaf25a9c06aba3c41.jpg

 为了增加储币空间,进行完这一步之后,最好用胶带或者热熔胶把杜邦线也固定到纸板上:

0fcd1076b5204b4da54fff1310ab49f3.jpg

 最后再用热胶枪把每个部分都连接上,并把电池盒放置在适当位置,这个作品就算是完成了:

27844aa72bbe415588b05abcd0c426de.jpg

 


选做步骤:

如果你嫌它实在是太单调的话,那么可以给储蓄罐加上你自己喜欢的图案,或是装饰。

譬如说文章开头的那张效果图,也许它可以给你一些参考。

那么接下来,就要靠你自己无穷的创作力和想象力了。


感谢你观看我的教程。

by:苍悬(tulius)

2022.10.12

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【科技小作品】Arduino计数储蓄罐的制作教程 的相关文章

  • GitLab -- 创建新用户

    登录GitLab xff0c 点击最上面的扳手图标 xff0c 进入 管理区域 页面 xff0c 点击 新建用户 进入新建用户页面 xff0c 输入对应信息 信息确认后 xff0c 点击 创建用户 用户创建成功后 xff0c 点击 编辑 按
  • debian技能大赛 笔记 (一)静态IP 网卡重启

    一 Debian静态IP 1 使用vim打开 etc network interfaces配置文件 vim etc network interfaces 2 在配置文件里添加 auto 网卡号 allow hotplug 网卡号 iface
  • Debian技能大赛笔记(二)service 、systemctl等命令消失不见解决办法

    二 service systemctl等命令消失不见解决办法 1 使用命令进入root模式 wt 64 Rserver su root Password root 64 Rserver home wt 2 使用vim 使用vi或者nano都
  • debian技能大赛笔记(八)创建DISK RAID5 自动挂载

    一 问题 1 在虚拟机上添加四个1g的硬盘 2 创建raid5 其中一个作为热备盘 设备名为 md0 3 将md0设置为LVM 设备名为md0 4 格式化为ext4 文件系统 5 开机自动挂载到 data目录 添加硬盘 添加完几个硬盘虚拟机
  • Debian大赛笔记(十)修改系统语言

    1 在root用户下输入 dpkg reconfigure locales 选择ZH CN xff08 简体中文 xff09 按空格键选择 xff0c 选择成功后重启系统语言便会修改成功
  • Debian技能大赛笔记(11)欢迎信息内容配置 删除欢迎信息

    技能大赛里都有一个差不多的题就是做一个欢迎信息 大致就像下图 那怎么配置呢 1 进入配置文件 vim etc update motd d 10 uname 在配置文件里加入 uname snrvm printf n printf 2s Ch
  • 上班摸鱼看小说的最佳软件

    这个软件几乎满足了我对上班摸鱼的所有担忧 xff0c 比如上班的时候打开网页看下说 xff0c 那太明显了 xff0c 不说摄像头 xff0c 后台看一下浏览器历史记录就暴露的特别明显 xff0c 这合适吗 xff1f 老板来到你身后远远的
  • iOS-UI-导航控制器-导航栏

    文章目录 导航控制器导航控制器的基本创建方法导航控制器的基本框架如下图所示添加单个按钮 x1f518 添加多个按钮 x1f518 创建按钮数组导航控制器效果 导航控制器的切换VcRoot界面切换事件函数 导航控制器 导航控制器 xff1a
  • 【iOS开发】-UIViewController加载过程和生命周期

    文章目录 前言ViewController执行过程的探讨ViewControllerOne 函数介绍顺序引入ViewControllerSecond引入 ViewControllerOne点击执行到ViewControllerSecond的
  • 【C语言】魔方阵的实现(最全)

    魔方阵的实现 xff08 最全 xff09 一 什么是魔方阵 xff1f 魔方矩阵 xff0c 又称幻方 xff0c 是具有相同的行数和列数 xff0c 并在每行每列 对角线上的和都相等的矩阵 N阶幻方 xff0c 即将自然数1到排成N行N
  • 四种求最大公约数的算法 C / C++

    文章目录 前言一 辗转相除法1 算法简介2 算法描述3 代码及复杂度 二 穷举法 xff08 枚举法 xff09 1 算法简介2 算法描述3 代码及复杂度 三 更相减损法1 算法简介2 算法描述3 代码及复杂度 四 Stein算法 xff0
  • 安装使用supervisor来启动服务

    supervisor 使用方法 supervisor 官网 是一个unix的系统进程管理软件 xff0c 可以用它来管理apache nginx等服务 xff0c 若服务挂了可以让它们自动重启 当然也可以用来实现golang的守护进程 学完
  • 超详细讲解实现拓扑排序、关键路径

    今天 xff0c 小编带着大家来学习图中非常重要的一环 xff0c 拓扑排序和关键路径 xff01 目录 一 绪论 实际应用 二 拓扑排序 xff08 一 xff09 含义 xff08 二 xff09 实现原理 xff08 三 xff09
  • getline函数介绍

    今天 xff0c 小编将为大家讲解有关getline函数的相关知识 目录 一 cin getline char s streamsize n char delim 二 getline istream amp is string amp st
  • C++语法——详解运算符重载

    运算符重载是C 43 43 的一个重要特性 有了运算符重载 xff0c 在代码编写时能更好的实现封装 目录 一 运算符重载介绍 二 运算符重载形式 xff08 一 xff09 参数 xff08 二 xff09 返回值 xff08 三 xff
  • linux—常用gdb调试命令汇总

    目录 一 准备工作 二 调试命令 xff08 一 xff09 查看代码内容 xff08 l xff08 二 xff09 开始调试 xff08 r xff09 xff08 三 xff09 查看当前调试位置 xff08 where xff09
  • Linux——详细模拟实现shell(进程控制综合运用)

    在运行linux时 xff0c 我们总免不了需要输入各种指令让shell进行解析 xff0c 从而与系统进行交互 那么我们有没有可能自己自制一个简易的shell呢 xff1f 答案是当然没问题 目录 一 大体思路 二 具体实现 xff08
  • C++语法——详解虚继承

    目录 一 什么是虚继承 二 虚继承原理 三 虚继承使用注意事项 一 什么是虚继承 所谓虚继承 xff08 virtual xff09 就是子类中只有一份间接父类的数据 该技术用于解决多继承中的父类为非虚基类时出现的数据冗余问题 xff0c
  • Qt——基本介绍、详解对象树

    目录 一 基本介绍 二 对象树 一 基本介绍 创建qt项目是 xff0c 如果选择空窗口QWidget xff0c 那么mian函数中会有如下代码 xff1a include 34 myWindow h 34 include lt QApp
  • 项目:手把手实现高并发内存池

    一 前言 xff08 一 xff09 项目简介 高并发内存池 xff08 ConCurrentMemoryPool xff09 xff0c 其原型是google的开源项目tcmalloc 全称是t hread c ache malloc x

随机推荐

  • Linux——TCP协议与相关套接字编程

    一 TCP协议概念 与UDP协议相同 xff0c TCP协议也是应用在传输层 的协议 虽然都是应用在传输层 xff0c 但是使用方式和应用场景上大不一样 TCP协议具有 xff1a 有连接 xff08 可靠 xff09 面向字节流的特点 x
  • C++ Primer笔记——排列算法(next_permutation、prev_permutation、is_permutation)

    目录 概述 next permutation prev permutation is permutation 概述 页数 xff1a P778 xff08 A 2 7 排列算法 xff09 头文件 xff1a lt algorithm gt
  • Ubuntu更改JupyterLab的工作目录

    1 第一步 jph 64 jph opt anaconda3 jupyter lab generate config Writing default config to home jph jupyter jupyter lab config
  • 项目5 创建与使用视图

    1 简单化 视图不仅可以简化用户对数据的理解 xff0c 也可以简化对数据的操作 那些被经常使用的查询定义为视图 xff0c 从而使用户在以后的操作中不必每次都指定全部的条件 2 安全性 通过视图用户只能查询和修改他们所能见到的数据 xff
  • 第五章习题(1)

    int main int k x for k 61 0 x 61 0 k lt 61 9 amp amp x 61 10 k 43 43 x 61 x 43 2 printf 34 d d 34 k x return 0 习题2 int m
  • 数据库表的约束

    单字段主键 create table表名 字段名1数据类型1comment 34 备注信息1 34 primary key 字段名2数据类型2comment 34 备注信息2 34 create table teacher no varch
  • 数据库第三次作业

    如下表新增数据 xff1a 教师表 teacher 指定字段插入数据 教师号 教师姓名 职称 工资 岗位津贴 T1 Anne Professor 5000 2000 T2 Adam 2000 T3 Alan Associate Profes
  • 数据库第七次作业

    更新教师表中所有记录 xff0c 将津贴改为2000 更新教师表中教师号在T5到T8之间的记录 xff0c 将津贴改为1500 更新授课表中周数为8的记录 xff0c 将教师号改为T7 xff0c 课程号改为C1 更新课程表中课时数不在45
  • 第六章总结(创建与使用存储过程)

    一 MySQL的存储过程 xff08 1 存储过程是一组为了完成特定功能的SQL语句块 xff0c 经编译后存储在数据库中 xff0c 用户通过指定存储过程的名称并给定参数 xff08 如果该存储过程带有参数 xff09 来调用并执行它 x
  • 第七章总结(创建与使用触发器)

    定义 xff1a 触发器是特殊的存储过程 xff0c 是一个被指定关联到数据表上的数据库对象 xff0c 可以看作数据表定义的一部分 xff0c 可用于实现数据库中数据的完整性 普通的存储过程通过Call命令调用 xff0c 而触发器的调用
  • 第八章总结(数据库的安全性维护)

    insert语句创建用户 insert into user hostuser passwordssl cipherx509 issuer x509 subject values 34 主机号 34 xff0c 34 用户名 34 xff0c
  • 输入10个数字,找出其中的最大值,最小值,并输出。

    include lt stdio h gt main int i float max min a printf 请输入10个数字 scanf 34 f 34 amp a max 61 min 61 a for i 61 1 i lt 61
  • 项目五总结:创建视图

    视图是一个从或多个表中导出来的表 xff0c 它是一种虚拟存在的表 xff0c 并且表的结构和数据都依赖于基本表 xff0c 通过视图不仅可以看到存放在基本表中的数据 xff0c 还可以像操作基本表一样 xff0c 对视图中存放的数据进行查
  • 如何在macOS上查找和删除重复文件

    电脑用多了文件自然就多了 xff0c 重复文件也多了 xff0c 浪费了很多磁盘空间 xff0c 特别是重复的视频文件更是浪费空间的大户 导致Mac越来越慢 xff0c 那么如何在macOS上查找并删除重复文件 xff0c 就成了人们关注的
  • C++实训练习册(C++之基础语法进阶练习题)

    第1关 xff1a 相同数字不同位数之和 任务描述 本关任务 xff1a 编写一个能计算相同数字不同位数之和 的小程序 编程要求 求s 61 a 43 aa 43 aaa 43 aaaa 43 aa a的值 xff0c 其中a是一个数字 x
  • 百钱买百鸡问题与百钱兑换问题(C与C++)经典编程算法

    百钱兑换问题提供了两种思路 xff0c 最精彩的在最下面的代码 xff0c 供大佬参考 xff0c 优美的代码赏心悦目 xff08 附有详细思路 xff0c 记得点赞 xff01 xff01 xff01 xff09 1 首先 xff0c 让
  • 【C语言典例】——day3:设计魔方阵(数组)

    大家好 xff01 我是同学 森 xff0c 一名计算机爱好者 xff0c 今天让我们进入刷题模式 若有错误 xff0c 请多多指教 x1f44d 点赞 收藏 x1f4dd 留言 都是我创作的最大的动力 xff01 目录 魔方阵 xff08
  • CUDA 11.1+VS2019安装使用

    首先确定自己适配的CUDA版本 win xff0b r 输入 cmd cuda 版本号是11 1 在搜索框输入https developer nvidia cn cuda 11 1 1 download archive 下载好安装包后 再下
  • 【ROS小记】树莓派ubuntu mate20.04换源

    根据网上教程更换软件源时发现报错 错误 8 http ppa launchpad net ubuntu desktop ubuntu make ubuntu focal Release 404 Not Found 以及 仓库 34 34 无
  • 【科技小作品】Arduino计数储蓄罐的制作教程

    效果图 1 材料准备 母头杜邦线若干测速传感器模块 槽型光耦 一个四位数码管模块 x1 arduino R3主板 x1 电池盒 x1 USB 方口打印数据连接线 x1 硬纸板一张 xff0c 厚度自定 尺寸 45x35 热胶枪 x1 热熔胶