亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Raspberry Pi 光传感器:简单的 LDR 教程

在这个 Raspberry Pi 光传感器教程中,我向您展示了如何将光电阻传感器正确连接到 GPIO 引脚。最后,我将向您展示如何在一个简单的 Python 脚本中使用它,以便您能够从中收集和使用数据。

这是我将考虑纳入未来项目的另一个传感器,例如光激活闹钟。

我将在这个电路中使用的每个部分进一步解释一下。如果您需要有关这些的更多信息,请务必仔细阅读。重要的是要注意本教程,我只是使用一个简单的光电传感器,虽然这些传感器非常适合某些任务,但它们可能不像您希望的那样准确。

如果您想一步步直观地了解如何设置光传感器电路和代码,请务必查看设备列表下方的视频。

设备:

您将需要以下设备才能完成此 Raspberry Pi 光传感器教程。您可以在没有任何面包板设备的情况下完成此操作,但如果您计划进行大量电路工作,我强烈建议您投资一些。

推荐:

树莓派

8 GB SD 卡或微型 SD 卡,如果您使用的是 Raspberry Pi 2 或 B+

以太网线或 Wifi 加密狗

光传感器(LDR Sensor)

1个1uF电容

可选:

树莓派案例

USB键盘

USB鼠标

GPIO 分线套件

面包板

面包板线

视频

该视频几乎包含了本教程的文本版本所做的所有内容。如果您更喜欢以视觉方式查看完成的事情,那就太完美了。完成后,您还将了解电路的性能。

您可以在视频下方找到文字说明和信息。

树莓派光传感器电路

我们将为本教程制作的电路非常简单,非常适合任何刚开始使用电路的人。

光敏电阻器或也称为 LDR 传感器是我们电路中最重要的设备(显然)。没有它,我们将无法检测它是黑暗还是光明。在光线下,该传感器的电阻只有几百欧姆,而在黑暗中,它的电阻可以达到几兆欧。

我们电路中的电容器就在那里,因此我们能够测量 LDR 传感器的电阻。电容器本质上就像电池在接收电力时充电,然后在不再接收电力时放电。将其与 LD​​R 串联使用,我们可以计算出 LDR 发出的阻力有多大,因此无论是亮的还是暗的。

要正确构建光传感器电路,请按照以下步骤操作或查看步骤正下方的电路图。在以下步骤中,我指的是引脚的物理编号(逻辑顺序)。

  1. 首先将引脚 #1 (3v3) 连接到面包板上的正极导轨。
  2. 接下来将引脚 #6(接地)连接到面包板上的接地导轨。
  3. 现在将 LDR 传感器放在电路板上,并从一端连接到正极导轨。
  4. 在 LDR 传感器的另一侧放置一根连接到 Raspberry Pi 的电线。把它挂在#7 上。
  5. 最后将电容器从电线放置到面包板上的负极导轨。确保电容器的负极引脚位于负极导轨中。

我们现在准备开始使用 Python 代码,如果您对电路有任何问题,请参阅下图。

代码

这个项目的代码非常简单,它会大致告诉我们它是亮的、阴暗的还是完全黑暗的。

我们在这个电路中面临的最大问题是 Pi 没有任何模拟引脚。它们都是数字的,因此我们无法准确测量输入电阻的变化。在运动传感器教程中,缺少模拟引脚不是问题,因为它的输出要么高要么低(数字)。相反,我们将测量电容器充电并将引脚发送到高电平所需的时间。这种方法是一种简单但不准确的方法来判断它是亮还是暗。

我将简要解释树莓派光传感器代码,以及它的作用,如果你想要代码,你可以复制粘贴在下面或者从我的 GitHub 下载。

首先,我们导入我们需要的 GPIO 包,以便我们可以与 GPIO 引脚进行通信。我们还导入了 time 包,因此我们可以在需要时让脚本进入睡眠状态。

#!/usr/local/bin/pythonimport RPi.GPIO 作为 GPIO 导入时间 

然后我们将 GPIO 模式设置为 GPIO.BOARD,这意味着我们在此脚本中使用的所有编号都将引用引脚的物理编号。由于我们只有一个输入/输出引脚,因此我们只需要设置一个变量。将此变量设置为用作输入/输出引脚的引脚编号。

GPIO.setmode(GPIO.BOARD)#定义去电路的引脚pin_to_circuit =7 

接下来,我们有一个名为 rc_time 的函数 这需要一个参数,即电路的引脚编号。在此函数中,我们初始化了一个名为 count 的变量,一旦引脚变为高电平,我们将返回该值。

然后我们将引脚设置为输出,然后将其设置为低电平,然后让脚本休眠 10 毫秒。

在此之后,我们然后将引脚设置为输入,然后我们进入一个 while 循环。我们停留在这个循环中,直到引脚变高,此时电容器充电到大约 3/4。一旦它变高,我们将计数值返回给主函数。您可以使用此值来打开和关闭 LED、激活其他东西或记录数据并保留有关任何光线变化的统计信息。

def rc_time (pin_to_circuit):count =0 #Output on the pin for GPIO.setup(pin_to_circuit, GPIO.OUT) GPIO.output(pin_to_circuit, GPIO.LOW) time.sleep(0.1) #更改pin back to input GPIO.setup(pin_to_circuit, GPIO.IN) #Count直到pin变高 while (GPIO.input(pin_to_circuit) ==GPIO.LOW):count +=1 return count#脚本中断时捕获,清理正确尝试:# 主循环 while True:打印 rc_time(pin_to_circuit)except KeyboardInterrupt:passfinally:GPIO.cleanup() 

在 Raspberry Pi 上部署和运行代码

这一步非常简单,但我将快速完成这些步骤,以便您可以尽可能快速、顺利地在您的 Pi 上启动并运行它。就像本网站上的所有教程一样,如果您在安装 Raspbian 方面需要帮助,请查看我的 Raspbian 安装指南。

虽然在某些情况下应该已经安装了所有软件包,但可能没有。如果您想了解有关 GPIO 引脚以及如何更新和安装软件的更多信息,请务必查看我关于在 Raspberry Pi 上设置 GPIO 引脚的教程。

您可以使用 git clone 下载代码。以下命令将完全做到这一点:

git clone https://github.com/pimylifeup/Light_Sensor/cd ./Light_Sensor 

或者,您可以复制并粘贴代码,只需确保文件是 Python 脚本即可。

sudo nano light_sensor.py 

在文件中完成后,只需使用 ctrl x 然后y 保存并退出。

最后,使用以下命令运行代码:

sudo python light_sensor.py 

我希望您现在可以运行脚本,并且您正在接收正确反映传感器上光线变化的数据。如果您遇到问题,请不要犹豫,在下面发表评论。

提高准确性和可能的​​用途

光传感器在电路中有无数用途。我只列举一些我在编写本教程时想到的。

这个很酷的小传感器可以做很多事情,但也要记住,如果你需要比光电管更精确的东西,那么看看像 Adafruit 高动态范围数字光传感器这样的东西。

我希望您能够毫无问题地设置这个 Raspberry Pi 光传感器。如果您确实遇到了问题,需要反馈,我错过了您想说的某些内容或其他任何内容,请随时在下面发表评论。

来源:Raspberry Pi 光传感器:一个简单的 LDR 教程


制造工艺

  1. Raspberry Pi 温度记录器
  2. Python 和 Raspberry Pi 温度传感器
  3. Raspberry Pi 气象站
  4. Raspberry Pi 上的 1 线温度传感器 DS1820(直接 GPIO)
  5. 超声波传感器 (HC-SR04) + Raspberry Pi
  6. 树莓派上的 HA 中的运动传感器、警报、视频录制
  7. 使用 Raspberry Pi 的运动传感器
  8. Raspberry Pi 土壤湿度传感器
  9. JAVA 中的树莓派数字霍尔传感器
  10. Raspberry Pi 温度和光传感器
  11. 太阳能车道灯到 MSP430 无线传感器节点
  12. 盖革计数器 – Raspberry Pi 辐射传感器板教程