如何用红外反射传感器构建一个简单的转速计

描述

本文将介绍如何使用光学反射传感器非接触式测量主轴转速。

目的

我想在更换电机并安装 PWM 变速驱动器后测量我的铣床的主轴转速。

第一次尝试

我用红外反射传感器构建了一个简单的转速计。在实验室的桌子上一切正常。但在铣床上进行测试后,转速表显示出波动值和不正确的速度。造成这种故障的原因是我的车间里有很多电噪声和地线上奇怪的高频杂散电流。我将毛刺的部分原因确定为开关时的接触器和低成本的开关电源。但是一些其他方面的问题仍然无法识别。

我尝试使用 LC 低通滤波器来抑制高频毛刺。但只是收效甚微。

如何解决

我用了一个新的转速计在光反射传感器和 arduino 之间建立了光隔离。 DC/DC 转换器为传感器和放大器级提供电流。然后信号通过光耦合器传输到 arduino。

在传感器区域和 Arduino 区域之间,电容应保持尽可能低。因此隔离距离应尽可能好,避免走线靠近。

转速表

我用的是 SFH900 作为传感器。但任何其他反射式光学传感器,像是 TCRT5000(尚未测试)也可以担当这项工作。从 PS2 鼠标回收的电缆从传感器连接到电路板。

我还测试了传感器 ITR20001,以及 RPR220 和 ST188 。这三个传感器都运作良好。传感器与反射标记之间的距离应增加(6 至 12 毫米,具体取决于传感器)。在对 RV2 进行微调后,所有三个都可以测量高达 20,000 rpm 的转速,车轮上每转一个白色标记。

传感器的 LED 由隔离式 DC/DC 转换器的 R1 供电。C3 提供了一个低阻抗路径,以缩短电线上可能出现的干扰。对于传感器的输出,C4 和 R2+RV2 在大约 530Hz(RV2 为 0Ω)至 120Hz(RV2 为 10KΩ)实现低通滤波。这为测量至少 7200RPM 留下了空间。该信号由 PNP 晶体管 Q6 放大。然后光耦合器 U4 将信号传输到 arduino 的 D2 引脚(中断输入)。在那里的输入端,一个 530 Hz 低通 RC 滤波器 (R12-C13) 消除了剩余的振荡。速度显示在 0.91 英寸 I2C OLED(128x32 点)上。

隔离式 DC/DC 转换器

它围绕 Q4、Q5、C5、C6、C7 和一个自制变压器。它们在 120kHz 左右作为对称振荡器工作。输出通过肖特基二极管桥进行整流,以尽可能少地损失电压。

如果输出电压为给定值,U3 (TL431) 让电流流过光耦合器 (U2) 的 LED。光耦合器输出晶体管将 Q3 栅极短路到 GND,然后停止为振荡器供电。

变压器

变压器围绕从旧 PC 电源回收的黄色 + 红色环形线圈(13 x 6.6 mm - 7.2 mm 孔)构建。测得的 AL 值约为 25-26 nH/N²。一个 2 毫米厚的 PVC 绝缘壁在环形磁芯中用氰基丙烯酸酯胶合。初级绕组用 2 根线缠绕。然后将次级绕组绕在自由孔中。绝缘壁最突出的部分粘在一块穿孔板上,电线连接到引脚上。缠绕时,一点胶带可以帮助将电线固定到位。

将电线焊接到穿孔板上的引脚后,用绝缘漆固定铜线圈。

DC/DC转换器

环形:黄色 + 红色(13 x 6.6 毫米 - 7.2 毫米孔)

初级:2 x 24 匝量规 31 (Ø 0.22mm) (≈ 16 µH)

次级:70 圈规格 32 (Ø 0.20mm) (≈ 138 µH)

保温墙:PVC片,2mm厚

DC/DC转换器

DC/DC转换器

DC/DC转换器

注意,如果您想在穿孔板上建造它,请小心尊重绝缘屏障。就我而言,我在 CNC 3018 上铣削了 PCB。MOS、双极晶体管和光耦合器并不重要。您只需要确保封装和引脚排列相同。请注意,电阻和电容几乎都在 0805 SMD 外壳中。除了钽电容和 1206 SMD 机箱中的 R1 和 C3 外,为轨道在下方运行留出了足够的空间。只要外壳适合占位面积,钽电容器的值并不重要。但如果可能,它们的电压应为 10V(最低 6.3V)。

安装在铣床上

滑轮与 SFH900 传感器之间的最终安装距离应约为 2-3mm。这就是为什么我将一个小的 PVC 楔子加工成合适的距离。

DC/DC转换器

用丙酮清洗后,主轴皮带轮底部先涂上哑光黑漆。花足够的时间完全干燥这种黑色油漆。模板是从自粘卡片纸上剪下来的。它位于最佳的中心位置。白色标记是通过模板绘制的。注意黑色部分至少是白色标记的两倍,你必须选择每转是否需要一个或多个反光条。

DC/DC转换器

需要在“#define nbrPulsePerTurn”行的“Tachymetre.ino”中正确插入皮带轮上的反射标记数量

由于“timeOut”为2s,反射标记的数量决定了可以显示的最小速度,例如:

1 个反光标记 — 30 RPM

2 个反光标记 — 15 RPM

4 个反射标记 — 8 RPM

10 个反射标记 — 3 RPM

但是那里的标记越多,最大速度就越低。例如,使用 1 个标记,您应该能够达到 7000 或 8000 RPM,而无需精确设置。通过使用示波器显示 arduinos 引脚 2 上的脉冲并精确微调 RV2,我可以达到 20, 0000RPM。要走得更高,你有几个杠杆。首先,使用具有最佳反射效果的单一标记。镜面级胶带是我能测试的最好的。其次,您可以增加传感器 LED 中的电流(减小 R1 的值)。第三,您可以增加低通滤波的截止频率(减小 C4 的值)。每次,将 RV2 设置为可能的最低值,以便在 arduino 的 D2 输入端获得信号。

设置程序

随着主轴缓慢旋转(100-300 rpm 就可以了),调整 RV2 电位器,使 Arduino 上的“LED_BUILTIN”在白色反光条经过传感器时稳定地打开或关闭。尝试通过顺时针和逆时针旋转 RV2 来找到极限。如果超出限制,LED 会疯狂闪烁或保持常亮或熄灭。尝试将其设置在靠近中心的位置,或者逆时针方向。通过这个基本设置,我的转速表可以测量每转反射标记超过 10000 rpm 的速度或每转 4 个反射标记超过 2500 rpm 的速度。

如果您可以使用示波器,请在 arduino 引脚 D2 上显示信号。在更快的主轴速度下,您可以非常精确地调整它以测量尽可能高的速度。无需修改低通 RC 滤波器即可达到 20, 000 - 22, 000 rpm。

可能的扩展

如果需要测量更高的速度,可以从以下几点着手:

获得比白色油漆更具反射性的条带

通过降低 R1 来增加传感器 LED 中的电流。注意不要超过最大额定值(例如,对于 SFH900,最大 LED 电流为 50mA。保持在 30-40mA 以下是安全的。到目前为止我测试过的所有传感器的推荐工作电流通常为 20mA)

通过减小 C4 和 C13 的值来提高 RC 滤波器的截止频率。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分