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

发布于:2022-10-12 ⋅ 阅读:(701) ⋅ 点赞:(0)

效果图

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

 


网站公告

今日签到

点亮在社区的每一天
去签到