micro:bit 板作为光传感器并调整光 -检测阈值

时间:2024-11-21

  图 3 提供了电路原理图的特写视图。

  原始手册中的亮度警报示意图。
  图 3.原始手册中的亮度警报原理图。图片由 Don Wilcher 提供
  此版本的亮度警报包括五个电子子电路:
  硫化镉光传感器 (I4)。
  50 kΩ 电位器。
  达林顿电路(Q1 和 Q2)。
  非稳态多谐振荡器(Q3、Q4 和 RC 负载)。
  晶体管驱动压电蜂鸣器电路(Q5 和压电晶体)。
  经典项目使用硫化镉 (CdS) 光敏电阻来检测光。 CdS 光电管根据照射到其上的光强度改变其电阻。通过手动调节电位器来控制光检测器的灵敏度。

  达林顿电路、不稳定多谐振荡器和压电蜂鸣器电路均出现在该项目的经典版本和混音版本中。我们将在本文后面讨论它们的操作。然而,亮度警报的重新组合用 micro:bit 微处理器板取代了 CdS 电池和 50 kΩ 电位计。此功能将经典的亮度警报升级为可编程光传感器,能够记录光级数据并以数字方式调整检测阈值。

  混合亮度警报:设计和操作

  图 4 说明了重新混合亮度警报的各个部分如何协同工作。除 BBC micro:bit 外,所示的所有部件均包含在传感器机器人套件中。

  说明重新混合亮度警报项目概念的框图。
  图 4.重新混合的亮度警报框图。图片由 Don Wilcher 提供
  micro:bit 既充当光传感器又充当设备的大脑。当它检测到环境光水平超过编程阈值时,它会偏置达林顿电路。达林顿电路激活基于晶体管的压电蜂鸣器,从而发出警报音。该音调的频率由非稳态多谐振荡器决定。
  正如我们已经提到的,光检测阈值是在 micro:bit 的代码中设置的,可以根据项目要求进行调整。一旦我们完成了物理电路的组装,我们将在本文后面讨论编程过程。不过,在此之前,让我们先检查一下亮度警报的各个子电路的运行情况。

  Micro:bit 微处理器板

  图 5 显示了版本 2 BBC micro:bit 的布局。
  BBC micro:bit(版本 2)的布局。
  图 5.BBC micro:bit(版本 2)的布局。图片由microbit.org提供
  LED 既可以充当光发射器,也可以充当光探测器。当光线照射到 LED 的 PN 结时,由于光电效应,会产生小电流。此属性允许 micro:bit 使用其 5x5 LED 矩阵作为光传感器。
  为了测量光,micro:bit 会对 LED 进行短暂反向偏置,使它们充当电容器。然后 micro:bit 测量 LED 放电所需的时间。我们可以通过照射 LED 所需的时间来判断有多少光照射到 LED 上——光越亮,放电发生的速度越快。然后将放电时间转换为 0 至 255 范围内的数字值,代表检测到的光强度。
  在完成的器件中,micro:bit 的 P0 引脚连接到达林顿电路的两个 NPN 晶体管中的个。当检测到的光强度大于编程的阈值时,会触发以下事件序列:
  micro:bit 向其 P0 引脚输出 3 V 逻辑高信号,该引脚连接到达林顿电路 (Q1) 的个 NPN 晶体管。
  P0 引脚向 Q1 的基极发送小电流,导致 Q1 导通。
  由于 Q1 导通,达林顿电路 (Q2) 中的第二个晶体管也导通。这样就完成了压电蜂鸣器的电路。
  现在正在运行的压电蜂鸣器会发出声音警报音。
  当光照强度低于编程阈值时,P0 引脚保持逻辑低电平,达林顿电路保持关闭状态,蜂鸣器静音。
  达灵顿电路

  达林顿电路又称达林顿对,由两个串联的NPN晶体管(Q1和Q2)组成。当小电流流入个晶体管的基极时,它会触发第二个晶体管。每个晶体管进一步放大信号,从而显着提高电流增益。

  图 6 显示了典型的达林顿对。
  基本达林顿对。
  图 6.基本达林顿配置。图片由 Don Wilcher 提供
  在混合亮度警报中,达林顿电路是必要的,因为压电蜂鸣器需要的电流超出了 micro:bit 可以直接提供的电流。达林顿对中的个晶体管放大来自 micro:bit 的小信号,而第二个晶体管向蜂鸣器提供电流。放大过程确保即使是的输入信号也足以驱动蜂鸣器。
  这种设计还降低了 micro:bit 的功耗,如果您选择使用电池为微处理器板供电,这会很方便。 micro:bit 可以使用 3 V 电池组或插入个人计算机的标准 USB 电缆供电。
  非稳态多谐振荡器和压电蜂鸣器电路
  亮度报警电路的是一个由两个 NPN 晶体管(Q3 和 Q4)构建的非稳态多谐振荡器。无论外部输入如何,非稳态多谐振荡器都会在两种状态之间连续振荡,从而产生一致的方波信号。振荡频率由亮度警报的电容器(C1 和 C2)和电阻器(R1、R2、R3 和 R4)的值决定。
  非稳态多谐振荡器的输出连接到另一个 NPN 晶体管 (Q5) 的基极。该晶体管充当控制压电蜂鸣器的开关。当非稳态多谐振荡器产生逻辑高输出时,Q5 导通,允许电流流过压电蜂鸣器并产生声音。当亮度水平超过设定阈值时,这种快速切换会产生我们听到的警报音。
  压电蜂鸣器本身是一个传感器,它将来自多谐振荡器的电脉冲转换为机械振动,进而产生声波。
  为了确定非稳态多谐振荡器电路的输出频率,我们使用以下等式:
  $$f~=~ \frac{1.44}{(R_1~+~2R_2)C}$$
  在哪里:
  f = 警报音的频率
  R 1 = 电阻器 R1 的值,也是 R4 的值
  R 2 = 电阻器 R2 的值,也是 R3 的值
  C = 电容器 C1 的值,也是 C2 的值
  对于亮度警报电路,我们将使用以下电阻和电容值:
  R 1 = 1kΩ
  R 2 = 10kΩ
  C = 0.047μF
  如果我们将这些值代入上面的等式,我们会得到:
  $$f~=~ \frac{1.44}{[1~\text{k} \Omega~+~2(10~\text{k} \Omega)]0.047~\mu \text{F}}~= ~1.46~\文本{kHz}$$
  如上式所示,您可以通过选择不同的电阻和电容来调整报警音的频率。
  组装项目硬件
  我们现在准备将所有内容放在一起。图 7 显示了重新混合亮度警报的完整原理图。

  重新混合亮度警报的原理图。

  图 7. [点击放大] 重新混合的亮度警报原理图。图片由 Don Wilcher 提供

  大多数接线说明与项目的经典版本中的相同。您可以在图 2 中找到这些说明。但是,我们仍然需要将 micro:bit 连接到设备的其余部分。这是使用两根带有鳄鱼夹的测试引线来完成的。

  图 8 显示了 micro:bit 和传感器机器人套件之间的两条接线。为了便于参考,我对两条测试引线进行了颜色编码。
  将 micro:bit 连接至传感器机器人套件。
  图 8. micro:bit 通过两根测试引线连接到 Sensor Robot 套件,一根连接到 P0,另一根连接到 GND。图片由 Don Wilcher 提供
  程序如下:
  将红色测试引线的一端连接到 micro:bit 的焊盘 P0,另一端连接到 Sensor Robot 套件的弹簧端子 30。弹簧端子 30 连接到偏置达林顿对的 33 kΩ 串联电阻。
  将黑色测试引线的一端连接至 micro:bit 的 GND 焊盘,另一端连接至套件的弹簧端子 3。弹簧端子 3 是传感器机器人套件 9 V 电池的负极/接地侧。
  对 Micro:bit 进行编程
  现在我们已经组装好了硬件,我们需要将光检测阈值编程到 micro:bit 中。我在 MicroPython 中做到了这一点;我的代码如下所示。
  设置亮度警报的光检测阈值的 MicroPython 代码。
  在上面的代码中,THRESHOLD 变量设置光照级别阈值。您可以根据需要调整阈值以适应不同的环境照明条件。
  MicroPython 代码不断从 micro:bit 的 LED 矩阵读取亮度级别,并将其与阈值进行比较。如果检测到的光强度超过阈值,P0 引脚将设置为逻辑高电平,激活达林顿电路并触发压电蜂鸣器。如果光强度低于阈值,P0 引脚将设置为逻辑低电平,使蜂鸣器静音。
  您可以使用Mu等编程平台轻松地将 MicroPython 代码加载到 micro:bit 中。终的十六进制代码可以闪存编程到 micro:bit。
  编程替代方案
  MicroPython 不是您的选择。您还可以在Microsoft MakeCode micro:bit 编程环境中轻松开发光检测代码(图 9)。可以在此在线编程环境中查看等效的 JavaScript 和 Python 代码。

  图 9. Microsoft MakeCode 模拟会话,其中 micro:bit 显示光级别和端口 P0 输出控制。图片由 Don Wilcher 提供
  或者,您可以使用Blockly代码块对 micro:bit 进行编程。如果您想要添加或更改图形以及模拟 micro:bit 的光感应和控制功能,此方法非常有用。在内置模拟器中,用户可以尝试各种阈值,并立即看到 micro:bit 的 5x5 LED 矩阵上显示的响应。
上一篇:槽型光电开关型号有哪几种?
下一篇:单相和三相负载的变压器选型

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料