Arduino筆記(84):霍爾效應感測器(Hall Sensor)

霍爾效應相關的應用很廣泛,上週到捐血中心捐血,上洗手間時,關門時的門栓就有用到霍爾效應的裝置,一關上門,外面「廁所使用中」的電燈就亮起。另一個應用是我的腳踏車時速表,有一個感應的磁鐵安裝在輪圈內的幅條上,車軸支撐的車架,安裝一個類似無線的發射器的裝置,將感測的結果送給把手上的顯示器,這也是霍爾效應的應用之一。
霍爾效應(Hall effect)是指當固體導體放置在一個磁場內,且有電流通過時,導體內的電荷載子受到洛倫茲力而偏向一邊,繼而產生電壓(霍爾電壓)的現象。電壓所引致的電場力會平衡洛倫茲力。通過霍爾電壓的極性,可證實導體內部的電流是由帶有負電荷的粒子(自由電子)之運動所造成。霍爾效應於1879年由埃德溫·赫伯特·霍爾(Edwin Herbert Hall)發現。[維基百科]

霍爾效應傳感器常用來檢測磁鐵的存在,並製作計數器、轉速計及防盜報警器等應用。以下就來看一下如何實作霍爾效應傳感器的應用。

[材料]

  • Arduino Uno x 1
  • 霍爾效應感測器 x 1
  • LED x1
  • 220歐姆電阻 x1
  • 蜂鳴器 x1
  • 麵包板 x1
  • 排線 N 條

[接線與電路圖]

Arduino接腳霍爾效應感測器其他
+5VVCC-
GNDGND-
D2OUT-
D4-蜂鳴器正極,另一端接地。
D5-紅色LED正極,負極接220歐姆電阻,電阻另一端接地。


[程式]

裝置加上 LED 跟蜂鳴器,當霍爾效應感測模組偵測到磁鐵的磁性效應,發生電位變化為1時,就讓 LED 亮,同時讓蜂鳴器響。
int hallSensorPin = 2;     //霍爾效應感測器接腳
int ledPin=5;
int buzz=4; 
int state = 0;          

void setup() {
  pinMode(ledPin, OUTPUT);      
  pinMode(hallSensorPin, INPUT);     
  pinMode(buzz, OUTPUT);  
  Serial.begin(9600);    
}
void loop(){

  state = digitalRead(hallSensorPin);
  if (state == LOW) {                // 磁鐵靠近,偵測到模組感測值變為低電位時 
  digitalWrite(ledPin, HIGH); 
    digitalWrite(buzz,HIGH);
    Serial.println("Digital value : HIGH");      
  } 
  else {
    digitalWrite(ledPin, LOW); 
    digitalWrite(buzz,LOW);      
    Serial.println("Digital value : LOW");
  }
  delay(100);  
}

[實作結果]



[參考資料]

3 留言

  1. 您好我有關於程式的問題想問 方便給聯絡方式嗎

    回覆刪除
    回覆
    1. 你好,可使用我的Gamil聯絡:atceiling@gmail.com

      刪除
  2. 好厲害學到好多東西🥺🥺🥺

    回覆刪除

張貼留言

較新的 較舊