在本指南中,您將學(xué)習(xí)如何設(shè)置Arduino霍爾效應(yīng)傳感器,特別是US1881,以檢測(cè)磁場(chǎng)。這對(duì)于需要查找電機(jī)的轉(zhuǎn)速或機(jī)器中其他運(yùn)動(dòng)的項(xiàng)目非常有用。
所需零件
Arduino的UNO
US1881霍爾效應(yīng)傳感器
10kΩ電阻
4.7nF電容
面包板和跳線
原理圖
將US1881霍爾效應(yīng)傳感器的VDD引腳連接到Arduino上的5V,將GND引腳連接到GND。
該傳感器使用漏極開(kāi)路輸出,這意味著您需要一個(gè)上拉電阻至5V,以便從中讀取任何值。電阻器的值并不重要。1k到100k就可以正常工作了。
輸出兩端的電容可穩(wěn)定輸出,但可以跳過(guò)。
下面是如何將此電路連接到試驗(yàn)板的示例:
Arduino霍爾效應(yīng)傳感器測(cè)試代碼
要測(cè)試霍爾效應(yīng)傳感器,您需要讀取輸出引腳,該引腳連接到Arduino數(shù)字引腳2。所以基本上你只需要代碼級(jí)地讀出值hallSensorState=digitalRead(D2);
下面是用于測(cè)試傳感器的完整代碼:
const int hallSensorPin = 2; // Hall Effect sensor connected to digital pin 2
int hallSensorState; // Variable to store the state of the sensor
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud
pinMode(hallSensorPin, INPUT); // Set the Hall Effect sensor pin as an INPUT
}
void loop() {
hallSensorState = digitalRead(hallSensorPin); // Read the state of the sensor
// Check if the sensor is detecting a magnetic field
if (hallSensorState == HIGH) {
Serial.println("Magnetic field detected!"); // If yes, print this message
} else {
Serial.println("No magnetic field detected."); // If no, print this message
}
delay(1000); // Wait for 1 second before the next read
}
分步說(shuō)明
如上面的試驗(yàn)板布局和原理圖所示組裝電路。
使用USB數(shù)據(jù)線將Arduino連接到您的計(jì)算機(jī)。
打開(kāi)ArduinoIDE并將示例代碼復(fù)制到新草圖中。
將草圖上傳到Arduino板。
打開(kāi)串行監(jiān)視器以查看輸出消息。當(dāng)磁鐵靠近傳感器時(shí),您應(yīng)該會(huì)看到“檢測(cè)到磁場(chǎng)!”,如果沒(méi)有,您應(yīng)該會(huì)看到“未檢測(cè)到磁場(chǎng)”。
確保所有連接都是安全的,并與原理圖相匹配。
如果傳感器始終顯示“HIGH”,請(qǐng)檢查附近是否有任何磁源,包括面包板電源軌內(nèi)的磁鐵。
如果傳感器未檢測(cè)到磁場(chǎng),請(qǐng)確保磁鐵離傳感器足夠近。
結(jié)論
現(xiàn)在您知道如何在Arduino中使用霍爾效應(yīng)傳感器檢測(cè)磁場(chǎng)。此設(shè)置可用作磁性門傳感器,用于RPM計(jì)數(shù),或用于任何需要磁場(chǎng)檢測(cè)的項(xiàng)目。
審核編輯:陳陳
-
Arduino
+關(guān)注
關(guān)注
188文章
6468瀏覽量
186950 -
霍爾效應(yīng)傳感器
+關(guān)注
關(guān)注
1文章
248瀏覽量
15586
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論