霍爾傳感器是在與磁場接觸時在其輸出端產(chǎn)生電信號的傳感器。傳感器輸出端電信號的模擬值是磁場強(qiáng)度的函數(shù)。如今,霍爾傳感器無處不在,它們出于不同的原因被用于從手機(jī)到開關(guān)的各種設(shè)備中,用于測量汽車和其他汽車行業(yè)產(chǎn)品中的速度、位置和距離?;魻杺鞲衅鞯亩喙δ苄允蛊涑蔀橹圃焐毯?a target="_blank">電氣工程師的必備品,這就是為什么今天,我將向我們展示如何在基于 Raspberry Pi 的項(xiàng)目中使用霍爾傳感器。
必需組件
構(gòu)建此項(xiàng)目需要以下組件/部件;
樹莓派 2 或 3
SD 卡(最低 8GB)
霍爾效應(yīng)傳感器
跳線
面包板
局域網(wǎng)電纜
可以使用的一些可選部件包括:
監(jiān)控
鍵盤和鼠標(biāo)
高清連接線
無線網(wǎng)絡(luò)加密狗
本教程將基于 Raspbian stretch OS,因此要像往常一樣進(jìn)行,我假設(shè)您熟悉使用 Raspbian stretch OS 設(shè)置 Raspberry Pi,并且您知道如何使用 putty 等終端軟件 SSH 進(jìn)入 Raspberry Pi。如果您對此有任何問題,本網(wǎng)站上有大量的樹莓派教程可以提供幫助。
對于那些將首次安裝Raspbian stretch OS的人來說,我發(fā)現(xiàn)的一個問題,大多數(shù)人都有,是通過ssh進(jìn)入Raspberry Pi。應(yīng)該注意的是,ssh 最初在操作系統(tǒng)上是禁用的,您需要一個顯示器來啟用它,或者在樹莓派的配置選項(xiàng)下,或者您使用 Windows 或 Linux 計算機(jī)創(chuàng)建一個名為 ssh 的空白文件并將空白文件復(fù)制到 SD 卡的根目錄。您需要將SD推車插入計算機(jī)的SDd卡插槽才能復(fù)制到其中。
使用第二種方法更適合那些在無頭模式下運(yùn)行 pi 的人。準(zhǔn)備好所有零件后,我們就可以繼續(xù)構(gòu)建了。
電路圖:
要將霍爾效應(yīng)傳感器與樹莓派一起使用,請按照以下原理圖連接組件。
本教程中使用的霍爾傳感器可以在輸出端提供模擬和數(shù)字值。但為了簡化教程,我決定使用數(shù)字值,因?yàn)槭褂媚M輸出需要將ADC連接到Raspberry Pi。
Python 代碼和工作說明:
這個霍爾傳感器項(xiàng)目的 Python 代碼非常簡單,我們需要做的就是讀取霍爾傳感器的輸出,并相應(yīng)地打開或關(guān)閉 LED。如果檢測到磁鐵,則 LED 將打開,否則將關(guān)閉。
打開樹莓派的電源并使用膩?zhàn)樱ㄈ绻裎乙粯右詿o頭模式連接)將其連接到其中。像往常一樣,我的大多數(shù)項(xiàng)目都在主目錄中創(chuàng)建了一個目錄,其中存儲了有關(guān)每個項(xiàng)目的所有內(nèi)容,因此對于這個項(xiàng)目,我們將創(chuàng)建一個名為 hall 的目錄。請注意,這只是保持井井有條的個人偏好。
使用創(chuàng)建目錄;
mkdir hallsensor
將目錄更改為剛剛創(chuàng)建的新目錄,然后打開編輯器以使用創(chuàng)建python腳本;
cd hallsensor
其次;
nano hallsensorcode.py
編輯器打開后,我們輸入項(xiàng)目代碼。我將對代碼進(jìn)行簡要分解以顯示關(guān)鍵概念,之后將提供完整的 python 代碼。
我們通過導(dǎo)入 RPI 開始代碼。GPIO 庫,允許我們編寫 python 腳本與 Raspberry pi GPIO 引腳進(jìn)行交互。
import RPi.GPIO as gpio
接下來,我們?yōu)橐褂玫?RPI 的 GPIO 設(shè)置編號配置,并禁用 GPIO 警告以允許代碼的自由流執(zhí)行。
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
然后,我們根據(jù)所選的 BCM 編號設(shè)置聲明 LED 和霍爾傳感器的數(shù)字輸出連接到的GPIO 引腳。
hallpin = 2
ledpin = 3
接下來,我們將GPIO 引腳設(shè)置為輸入或輸出。連接 LED 的引腳設(shè)置為輸出,霍爾傳感器連接的引腳設(shè)置為輸入。
gpio.setup( hallpin, gpio.IN)
gpio.setup(ledpin, gpio.OUT)
完成后,我們編寫代碼的主要部分,這是一個while循環(huán),它不斷評估霍爾傳感器的輸出,如果檢測到磁鐵,則打開LED,并在未檢測到磁鐵時關(guān)閉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代碼在項(xiàng)目結(jié)束時給出。
復(fù)制并保存代碼,并在使用中鍵入后退出編輯器;
按 CTRL + X后跟y。
保存后,再次檢查您的連接并使用以下命令運(yùn)行 python 腳本;
sudo python hallsensorcode.py
腳本運(yùn)行時,每當(dāng)磁鐵或任何磁性物體靠近霍爾傳感器時,LED 就會亮起,如下圖所示。
從智能家居的干簧開關(guān)到自行車的速度表,有幾個超級酷的東西可以用本教程在基礎(chǔ)構(gòu)建。
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")
-
傳感器
+關(guān)注
關(guān)注
2551文章
51171瀏覽量
754193 -
霍爾傳感器
+關(guān)注
關(guān)注
27文章
724瀏覽量
63226
發(fā)布評論請先 登錄
相關(guān)推薦
評論