霍爾傳感器是在與磁場接觸時在其輸出端產生電信號的傳感器。傳感器輸出端電信號的模擬值是磁場強度的函數。如今,霍爾傳感器無處不在,它們出于不同的原因被用于從手機到開關的各種設備中,用于測量汽車和其他汽車行業產品中的速度、位置和距離。霍爾傳感器的多功能性使其成為制造商和電氣工程師的必備品,這就是為什么今天,我將向我們展示如何在基于 Raspberry Pi 的項目中使用霍爾傳感器。
必需組件
構建此項目需要以下組件/部件;
樹莓派 2 或 3
SD 卡(最低 8GB)
霍爾效應傳感器
跳線
面包板
局域網電纜
可以使用的一些可選部件包括:
監控
鍵盤和鼠標
高清連接線
無線網絡加密狗
本教程將基于 Raspbian stretch OS,因此要像往常一樣進行,我假設您熟悉使用 Raspbian stretch OS 設置 Raspberry Pi,并且您知道如何使用 putty 等終端軟件 SSH 進入 Raspberry Pi。如果您對此有任何問題,本網站上有大量的樹莓派教程可以提供幫助。
對于那些將首次安裝Raspbian stretch OS的人來說,我發現的一個問題,大多數人都有,是通過ssh進入Raspberry Pi。應該注意的是,ssh 最初在操作系統上是禁用的,您需要一個顯示器來啟用它,或者在樹莓派的配置選項下,或者您使用 Windows 或 Linux 計算機創建一個名為 ssh 的空白文件并將空白文件復制到 SD 卡的根目錄。您需要將SD推車插入計算機的SDd卡插槽才能復制到其中。
使用第二種方法更適合那些在無頭模式下運行 pi 的人。準備好所有零件后,我們就可以繼續構建了。
電路圖:
要將霍爾效應傳感器與樹莓派一起使用,請按照以下原理圖連接組件。
本教程中使用的霍爾傳感器可以在輸出端提供模擬和數字值。但為了簡化教程,我決定使用數字值,因為使用模擬輸出需要將ADC連接到Raspberry Pi。
Python 代碼和工作說明:
這個霍爾傳感器項目的 Python 代碼非常簡單,我們需要做的就是讀取霍爾傳感器的輸出,并相應地打開或關閉 LED。如果檢測到磁鐵,則 LED 將打開,否則將關閉。
打開樹莓派的電源并使用膩子(如果像我一樣以無頭模式連接)將其連接到其中。像往常一樣,我的大多數項目都在主目錄中創建了一個目錄,其中存儲了有關每個項目的所有內容,因此對于這個項目,我們將創建一個名為 hall 的目錄。請注意,這只是保持井井有條的個人偏好。
使用創建目錄;
mkdir hallsensor
將目錄更改為剛剛創建的新目錄,然后打開編輯器以使用創建python腳本;
cd hallsensor
其次;
nano hallsensorcode.py
編輯器打開后,我們輸入項目代碼。我將對代碼進行簡要分解以顯示關鍵概念,之后將提供完整的 python 代碼。
我們通過導入 RPI 開始代碼。GPIO 庫,允許我們編寫 python 腳本與 Raspberry pi GPIO 引腳進行交互。
import RPi.GPIO as gpio
接下來,我們為要使用的 RPI 的 GPIO 設置編號配置,并禁用 GPIO 警告以允許代碼的自由流執行。
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
然后,我們根據所選的 BCM 編號設置聲明 LED 和霍爾傳感器的數字輸出連接到的GPIO 引腳。
hallpin = 2
ledpin = 3
接下來,我們將GPIO 引腳設置為輸入或輸出。連接 LED 的引腳設置為輸出,霍爾傳感器連接的引腳設置為輸入。
gpio.setup( hallpin, gpio.IN)
gpio.setup(ledpin, gpio.OUT)
完成后,我們編寫代碼的主要部分,這是一個while循環,它不斷評估霍爾傳感器的輸出,如果檢測到磁鐵,則打開LED,并在未檢測到磁鐵時關閉LED。
while True:
if(gpio.input(hallpin) == False):
gpio.output(ledpin, True)
print("magnet detected")
else:
gpio.output(ledpin, False)
print("magnetic field not detected")
帶有演示視頻的完整python代碼在項目結束時給出。
復制并保存代碼,并在使用中鍵入后退出編輯器;
按 CTRL + X后跟y。
保存后,再次檢查您的連接并使用以下命令運行 python 腳本;
sudo python hallsensorcode.py
腳本運行時,每當磁鐵或任何磁性物體靠近霍爾傳感器時,LED 就會亮起,如下圖所示。
從智能家居的干簧開關到自行車的速度表,有幾個超級酷的東西可以用本教程在基礎構建。
import RPi.GPIO as gpio
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
hallpin = 2
ledpin = 3
gpio.setup( hallpin, gpio.IN)
gpio.setup(ledpin, gpio.OUT)
gpio.output(ledpin, False)
while True:
if(gpio.input(hallpin) == False):
gpio.output(ledpin, True)
print("magnet detected")
else:
gpio.output(ledpin, False)
print("magnetic field not detected")
-
傳感器
+關注
關注
2562文章
52524瀏覽量
763571 -
霍爾傳感器
+關注
關注
28文章
752瀏覽量
64103
發布評論請先 登錄
【Embedded Pi申請】基于Embedded PI + Raspberry開發板的智能家居系統
Raspberry Pi機器人制作實例 用PYTHON、LINUX和傳感器搭建智能小車
基于raspberry pi pico的EPS系統
如何在Raspberry Pi Pico中使用OLED顯示器

在Raspberry Pi上模擬Commodore Amiga

基于Raspberry Pi的DIY面部識別功能

在汽車 HMI 應用中使用霍爾效應傳感器和電感式傳感器應用說明

評論