반응형

ESP32 에는 자기장을 감지하는 홀센서(Hall Sensor) 가 내장되어 있다. 홀센서는 미국의 물리학자인 홀이 발견한 홀효과(Hall Effect)를 이용한 센서이다. 홀효과는 도체가 자기장 속에 놓여 있을 때 그 자기장에 직각방향으로 전류를 흘려주면 자기장과 전류 모두에 수직인 방향으로 전위차가 발생하는 현상이다. 홀효과에 대한 자세한 사항은 여기를 참고한다.


ESP32 아두이노 개발환경을 설치하는 방법은 지난 번 포스팅을 참고한다.




■ 스케치

소스는 간단하다. 자기장이 감지되면 ESP32 개발보드에 내장된 LED를 켜고 나이면 끈다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int LED_BUILTIN=2;
 
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
}
 
void loop() {
    int measurement = 0;
    measurement = hallRead();
    Serial.print("Hall sensor measurement: ");
    Serial.println(measurement);
    if (measurement >= 20) {
      digitalWrite(LED_BUILTIN, HIGH); 
    } else {
      digitalWrite(LED_BUILTIN, LOW); 
    }
    delay(500);
}
cs




시리얼모니터 상에서 평상시에는 20을 넘지 않아 자기장 감지의 기준을 20으로 정했다. 감도는 정해진 것이 아니므로 감지할 자기장의 세기에 따라 감도값을 조절하면 될 것이다.




막대자석을 ESP32칩 부분에 가까이 가져가면 자기장을 감지해서 LED가 켜지고 아니면 꺼지는 것을 볼 수 있다.


이걸 어떤 곳에 이용할 수 있을까? 일반적으로 홀센서는 모터의 회전속도를 감지하는데 많이 쓰인다고 하는데 ESP32의 경우 블루투스나 인터넷 통신이 가능하므로 자기장 감지 시 스마트폰 같은 장치로 알려주는 기능도 만들 수 있을 것이다.  아무튼 이번에는 ESP32에 내장된 센서를 테스트 해 봤다는 데에 의의를 두어본다.

반응형

+ Recent posts