Arduino 制造简易金属探测器

结构无比简单的金属探测器,实用又好做

Cherry

喜欢

340
浏览
1
喜欢

> 更多图片

项目状态:已完成
开放度:公开
所属分类:电子
发布时间:2020-12-07
最近更新:2020-12-08

详细说明

金属探测器,听上去有点高端,下面我们只用一个 Arduino、10 米长的铜丝线、一个 100 欧电阻和一个无源蜂鸣器来制造它。

可以根据需要将探测器设计成各种尺寸和形状,不同之处在于线圈的制作。虽然这款金属探测器还没有达到寻宝的需求,但做成小型手持探测棒,用于日常检查金属物品还是很有用的。不仅可以帮你找到硬币之类的小东西,还可以用来探测家具拼接处、墙面装修所用的金属螺丝或钉子来帮助了解结构。

https://v.qq.com/x/page/m3210el46pq.html

链接表


文件库

metal_detector.ino
[7393 Bytes at 2020-12-08, 27 次下载]



教程

组件清单
  • Arduino Nano × 1
  • 细铜丝 × 一匝
  • 9V 电池 × 1
  • 100 欧电阻 × 1
  • 开关 × 1
  • 按键 × 1
  • 无源蜂鸣器 × 1
  • 10 muF 电容 × 1
  • 2 烤串用的木棍 × 1
  • 7 根 8cm 电线 × 1
  • 热缩管 × 若干
  • 电烙铁 × 1
  • 热熔胶枪 × 1

制作线圈


简易制作一个至少 20 圈的铜丝线圈,50 圈以上更佳。绕的越多探测效果会越好。探测器对大于线圈直径十分之一的物体比较灵敏。因此线圈越小,其灵敏度越高。最终制成的线圈总阻值不能大于 10 欧姆。

我这里用的是 AWG26 漆包线,直径 0.4 毫米。每米电阻 0.13 欧姆。缠绕了 60 匝,圈内直径 6.3 厘米。用去了约 12 米漆包线,电阻为 1.5 欧姆。

制作原型

下载本项目的代码文件到 Arduino。代码文件在项目文件库中下载。
https://make.quwj.com/project/344

将线圈两头的引线分别接到 Arduino 的引脚 8 和引脚 10。
在引脚 8 和 GND 之间接上一个 100 欧姆电阻。
在 GND 和引脚 12 之间串联一个无源蜂鸣器和 10 微法电容。

试试看!当把金属物件放到线圈附近时,Arduino 上内置的 LED 会开始闪烁,蜂鸣器也以相同的频率响起。

如果没有效果,可以通过 LED 的闪烁模式来排查问题:
只闪一次——探针上没有脉冲,需要检查连线是否有问题。
双重闪烁——延时过短,需要增加线圈匝数。
三重闪烁——延时过长,需要减少线圈匝数。
四重闪烁——无稳定脉冲,需要确认线圈的电阻是否符合要求。

为了更细致的排错,还可以将代码中的 debug false 修改成 debug true。可以看到串口监视器反馈的延时数值。建议调节线圈让数值在 5 ~ 20 之间。

原理说明

金属探测器由两部分组成,检测线圈和滤波电路。其中检测线圈为核心部分。线圈通电后会产生磁场,有金属进入磁场,就是引起磁场变化,由此判断有金属杂质。

这里的挑战在于脉冲延迟非常短:RL电路的特征时间为 tau = L/R,其中 L 表示亨利,R 表示欧姆。我们使用的线圈电感约为 300 微亨,因此对于 R = 100 欧姆,tau = 3 微秒。我们要寻找 1/5000 的电感变化。因此需要以优于 1 纳秒的精度来测量时间。

Arduino 的时钟速度为 16 MHz,这样的测量是不够精确的。但是可以通过组合大量的检测数据来提高精度。

但是,仅仅重复的测量是不够的,因为量化误差始终是相同的:如果延迟从 3.03 微秒变为 3.02 微秒,则延迟始终为 48 个时钟周期。为了克服这个问题,我们测量了一个短脉冲的下降沿的时序,并在此脉冲长度的 3 到 5 倍(最初发现的延迟值)之间进行扫描。

该代码旨在每秒测量 100 次电感,以便快速检测。对于 25 个时钟周期的脉冲延迟,将定时器设置为每 215 个时钟周期重复一次,因此在 10ms 内,可以重复扫描 50 个脉冲长度的 15 次,而 750 个脉冲的总延迟可以提供测量结果,延迟时间的分辨率为10^-4。

在启动时,将第一个测量值作为参考值。每当测量值相差超过预定义的阈值时,相位计数器就会开始递增。当相位计数器超过最大值时,将产生 1ms 的 LED 脉冲,并且蜂鸣器会同时发声。

制作手柄

按照图中所示焊接好电路,找一个大小合适的盒子,将电池和设备都放置进去。打孔并装上按钮即。

将探测棒用热熔胶粘接在手柄上,完成!