센서는 항상 모든 프로젝트에서 중요한 구성 요소였습니다. 이들은 실시간 환경 데이터를 디지털 / 변수 데이터로 변환하여 전자 장치로 처리 할 수 있도록하는 것입니다. 시장에는 다양한 유형의 센서가 있으며 요구 사항에 따라 하나를 선택할 수 있습니다. 이 프로젝트에서는 Arduino와 함께 Hall 센서, 즉 Hall Effect 센서를 사용하는 방법을 배웁니다. 이 센서는 자석과 자석의 극을 감지 할 수 있습니다.
왜 자석을 감지합니까?, 물어볼 수 있습니다. 실제로 홀 효과 센서를 사용하는 많은 응용 프로그램이 있으며 우리는 결코 눈치 채지 못했을 것입니다. 이 센서의 일반적인 용도 중 하나는 자전거 또는 회전 기계의 속도를 측정하는 것입니다. 이 센서는 BLDC 모터에서도 로터 자석의 위치를 감지하고 그에 따라 고정자 코일을 트리거하는 데 사용됩니다. 응용 프로그램은 끝이 없으므로우리의 무기고에 또 다른 도구를 추가하기위해 인터페이스 홀 효과 센서 Arduino 를배우십시오. 다음은 홀 센서를 사용한 몇 가지 프로젝트입니다.
- Arduino 및 Processing Android App을 사용하는 DIY 속도계
- PIC 마이크로 컨트롤러를 사용하는 디지털 속도계 및 주행 거리계 회로
- Arduino 및 프로세싱을 사용하는 가상 현실
- Arduino를 사용한 자기장 강도 측정
이 튜토리얼에서는 Arduino의 인터럽트 기능을 사용하여 홀 센서 근처의 자석을 감지하고 LED를 켭니다. 대부분의 경우 홀 센서는 높은 읽기 및 실행 속도가 필요한 응용 프로그램으로 인해 인터럽트와 함께 만 사용되므로 자습서에서도 인터럽트를 사용하겠습니다.
필요한 재료:
- 홀 효과 센서 (모든 디지털 버전)
- Arduino (모든 버전)
- 10k 옴 및 1K 옴 저항
- LED
- 전선 연결
홀 효과 센서:
연결에 대해 알아보기 전에 홀 효과 센서에 대해 알아야 할 몇 가지 중요한 사항이 있습니다. 실제로 두 가지 유형의 홀 센서가 있습니다. 하나 는 디지털 홀 센서이고 다른 하나는 아날로그 홀 센서 입니다. 디지털 홀 센서는 자석이 있는지 여부 (0 또는 1) 만 감지 할 수 있지만 아날로그 홀 센서의 출력은 자석이 얼마나 강한 지 또는 얼마나 멀리 있는지 감지 할 수있는 자석 주변의 자기장에 따라 달라집니다. 이 프로젝트에서는 가장 일반적으로 사용되는 디지털 홀 센서만을 목표로합니다.
이름에서 알 수 있듯이 홀 효과 센서 는 "홀 효과"원리로 작동합니다 . 이 법칙에 따르면 "한 방향으로 전류가 흐르는 도체 또는 반도체가 자기장에 수직으로 도입되면 전류 경로에 직각으로 전압을 측정 할 수 있습니다". 이 기술을 사용하여 홀 센서는 주변에 자석의 존재를 감지 할 수 있습니다. 이론이 충분 해 하드웨어에 대해 알아 보겠습니다.
회로도 및 설명:
Arduino와 홀 센서 를 연결 하기위한 전체 회로 다이어그램은 아래에서 찾을 수 있습니다.
보시다시피 홀 효과 센서 arduino 회로도 는 매우 간단합니다. 그러나 우리가 흔히 실수하는 곳은 홀 센서의 핀 번호를 알아내는 것입니다. 판독 값을 자신을 향하게 배치하고 왼쪽의 첫 번째 핀은 각각 Vcc와 접지 및 신호입니다.
앞서 말했듯이 인터럽트를 사용할 것이므로 홀 센서의 출력 핀이 Arduino의 핀 2에 연결됩니다. 핀은 자석이 감지되면 켜지는 LED에 연결됩니다. 나는 단순히 브레드 보드에 연결을했고 완료되면 아래와 같이 다소 보였습니다.
홀 효과 센서 Arduino 코드:
전체 아두 이노 코드는 단지 몇 줄과 그것을 직접 아두 이노 보드에 업로드 할 수있는이 페이지 하단에서 확인할 수 있습니다. 프로그램이 어떻게 작동하는지 알고 싶다면 더 읽어보십시오.
센서 인 입력과 LED 인 출력이 있습니다. 센서는 인터럽트 입력으로 연결되어야합니다. 따라서 설정 기능 내에서 이러한 핀을 초기화하고 핀 2가 인터럽트로 작동하도록합니다. 여기서 핀 2를 Hall_sensor 라고 하고 핀 3을 LED 라고 합니다.
void setup () {pinMode (LED, OUTPUT); // LED는 출력 핀입니다. pinMode (Hall_sensor, INPUT_PULLUP); // 홀 센서는 입력 핀입니다. attachInterrupt (digitalPinToInterrupt (Hall_sensor), toggle, CHANGE); // 핀 2는 토글 기능을 호출 할 인터럽트 핀입니다.}
있을 때 , 인터럽트가 검출 된 상기 광고에 언급 된 바와 같이, 전환 기능이 호출된다. Toggle , Change, Rise, Fall 등과 같은 많은 인터럽트 매개 변수가 있지만이 튜토리얼에서는 홀 센서의 출력 변화를 감지합니다.
이제 toggle 함수 내에서 " state " 라는 변수를 사용합니다.이 변수 는 상태가 이미 1이면 0으로, 이미 0이면 1로 변경됩니다. 이렇게하면 LED를 켜거나 끌 수 있습니다.
void toggle () {상태 =! 상태; }
마지막으로 루프 기능 내 에서 LED를 제어하기 만하면됩니다. 변수 상태는 자석이 감지 될 때마다 변경되므로이를 사용하여 LED를 켜거나 끌지 여부를 결정합니다.
void loop () {digitalWrite (LED, state); }
Arduino 홀 효과 센서 작동:
하드웨어 및 코드가 준비되면 코드를 Arduino에 업로드하기 만하면됩니다. 9V 배터리를 사용하여 전체 설정에 전원을 공급했으며 원하는 전원을 사용할 수 있습니다. 이제 자석을 센서에 가까이 가져 가면 LED가 빛나고 제거하면 꺼집니다.
참고: 홀 센서는 극에 민감합니다. 즉, 센서의 한쪽이 북극 만 감지하거나 남극 만 감지하고 둘 다 감지 할 수는 없습니다. 따라서 남극을 북쪽 감지 표면에 가까이 가져 가면 LED가 켜지지 않습니다.
실제로 내부에서 일어나는 일은 자석을 센서에 가까이 가져 가면 센서가 상태를 변경한다는 것입니다. 이 변경은 변수 "상태"를 0에서 1로 변경하는 토글 기능을 호출하는 인터럽트 핀에 의해 감지됩니다. 따라서 LED가 켜집니다. 이제 자석을 센서에서 멀어지게하면 센서의 출력이 다시 변경됩니다. 이 변경은 인터럽트 문에 의해 다시 확인되므로 변수 "상태"는 1에서 0으로 변경됩니다. 따라서 꺼지면 LED가 켜집니다. 자석을 센서에 가까이 가져갈 때마다 동일한 과정이 반복됩니다.
프로젝트 의 전체 작업 비디오 는 아래에서 찾을 수 있습니다. 프로젝트를 이해하고 새로운 것을 만드는 것을 즐겼기를 바랍니다. 그렇지 않으면 친절하게 아래 댓글 섹션이나 포럼을 사용하여 도움을 받으십시오.