霍尔传感器是在与磁场接触时会在其输出端产生电信号的传感器。传感器输出端的电信号的模拟值是磁场强度的函数。如今,霍尔传感器无处不在,出于各种原因,它们被用于从手机到开关的各种设备中,用于测量汽车和其他基于汽车工业的产品的速度,位置和距离。霍尔传感器的这种多功能性使其成为制造商和电气工程师必不可少的,这就是为什么今天,我将向我们展示如何在基于Raspberry Pi的项目中使用霍尔传感器。
您可以随时检查我们其他基于霍尔传感器的项目,包括霍尔传感器与Arduino的接口。
所需组件
构建该项目需要以下组件/部件;
- 树莓派2或3
- SD卡(最低8GB)
- 霍尔效应传感器
- 跳线
- 面包板
- 局域网电缆
- 能量源
可以使用的一些可选部件包括:
- 监控
- 键盘鼠标
- HDMI电缆
- Wi-Fi加密狗
本教程将基于Raspbian Stretch OS,因此,像往常一样继续进行操作,我将假定您熟悉使用Raspbian Stretch OS设置Raspberry Pi的知识,并且您知道如何使用腻子等终端软件通过SSH进入raspberry pi 。如果您对此有任何疑问,此网站上有大量的Raspberry Pi教程可以提供帮助。
对于那些首次安装Raspbian Stretch OS的用户,我发现的一个问题(大多数人都知道)是通过ssh进入Raspberry Pi。应当注意,ssh最初是在操作系统上禁用的,您将需要使用监视器来启用它,或者在raspberry pi的配置选项下启用它,或者使用Windows或Linux计算机创建一个名为 ssh 的空白文件,并将该空白文件复制到SD卡的根目录。您需要将SD购物车插入计算机的SDd卡插槽中,才能复制到其中。
使用第二种方法更适合在无头模式下运行pi的用户。准备好所有零件后,我们便可以开始构建。
电路原理图:
对于使用霍尔效应传感器与树莓裨,根据下面的示意性连接部件。
本教程使用的霍尔传感器可以在输出端提供模拟和数字值。但是为了简化教程,我决定使用数字值,因为使用模拟输出将需要将ADC连接到Raspberry Pi。
Python代码和工作说明:
该霍尔传感器项目的Python代码非常简单,我们需要做的就是读取霍尔传感器的输出,并相应地打开或关闭LED。如果检测到磁铁,则应打开LED,否则应将其关闭。
使用腻子为Raspberry Pi和SSH通电(如果像我一样以无头模式连接)。像往常一样,对于我的大多数项目,我在主目录中创建一个目录,其中存储了每个项目的所有内容,因此对于该项目,我们将创建一个名为 hall 的目录。请注意,这只是个人喜好,可以使事情井井有条。
使用创建目录;
mkdir霍尔传感器
将目录更改为刚创建的新目录,然后打开编辑器以使用创建python脚本;
cd霍尔传感器
其次是;
纳米霍尔传感器
打开编辑器后,我们输入项目代码。我将对代码进行简要分类以显示关键概念,然后将提供完整的python代码。
我们通过导入RPI.GPIO库开始该代码,该库允许我们编写python脚本与树莓派pi GPIO引脚进行交互。
将RPi.GPIO导入为gpio
接下来,我们将设置要使用的Rpi GPIO的编号配置,并禁用GPIO警告以允许代码自由执行。
gpio.setmode(gpio.BCM) gpio.setwarnings(False)
然后,根据所选择的BCM编号,设置声明与LED和霍尔传感器的数字输出连接的GPIO引脚。
哈尔平= 2 ledpin = 3
接下来,我们将GPIO引脚设置为input或output。与LED连接的引脚设置为输出,与霍尔传感器连接的引脚设置为输入。
gpio.setup(hallpin,gpio.IN) gpio.setup(ledpin,gpio.OUT)
完成此操作后,我们编写代码的主要部分,这是一个 while 循环,该循环不断评估霍尔传感器的输出,如果检测到磁体,则打开LED,而当未检测到磁体时,关闭LED。
而True: if(gpio.input(hallpin)== False): gpio.output(ledpin,True) 打印(“检测到磁铁”) else: gpio.output(ledpin,False) 打印(“未检测到磁场”)
项目末尾给出了带有演示视频的完整python代码。
复制并保存代码,并使用输入后退出编辑器;
CTRL + X, 后跟 y 。
保存后,再次检查连接,然后使用运行python脚本;
须藤python hallsensorcode.py
在脚本运行时,只要将磁铁或任何磁性物体靠近霍尔传感器,LED就会点亮,如下图所示。
从智能家居的簧片开关到自行车的速度计,可以在本基础教程中构建一些超酷的东西。欢迎在下面的评论部分中共享您计划构建的任何项目。
所有检查我们以前基于霍尔传感器的项目:
- 使用Arduino和Processing Android App的DIY车速表
- 使用PIC单片机的数字车速表和里程表电路
- 使用Arduino和处理的虚拟现实
- 使用Arduino进行磁场强度测量