홀 효과 센서
홀 효과 센서는 자기장의 존재를 감지하고 감지 될 때 출력 전압을 생성 할 수 있습니다. 홀 효과 센서와 함께 사용할 때선형 액추에이터, 일반적으로 자기 디스크와 함께 액추에이터의 기어 박스 내부에 배치됩니다. 선형 액추에이터가 연장되거나 철회함에 따라,이 디스크는 홀 효과 센서를 회전시켜 센서가 전압 펄스 형태로 디지털 출력을 생성합니다. 이 펄스를 계산하여 액추에이터가 얼마나 멀리 이동했는지를 결정하는 데 사용할 수 있습니다.
홀 효과 센서의 위치 피드백
위치 피드백에 홀 효과 센서를 사용하는 단점은 절대 위치를 측정하지 않는다는 것입니다. 대신 액추에이터가 얼마나 멀리 움직 였는지를 결정하기 위해 계산할 수있는 펄스를 생성합니다. 위치 피드백을 위해이 펄스를 사용하려면 마이크로 컨트롤러 생산 된 펄스를 계산합니다. 이를 위해서는 이러한 펄스가 발생할 때 마이크로 컨트롤러의 외부 인터럽트 핀을 사용해야합니다. 외부 인터럽트는 전압의 변화를 감지하는 핀이며, 우리의 경우 홀 효과 센서의 전압 펄스를 감지하는 데 사용될 수 있습니다. 마이크로 컨트롤러의 데이터 시트와 상담하여 인터럽트 핀으로 사용할 수있는 마이크로 컨트롤러의 핀을 확인해야합니다. 사용 Arduino Uno 예를 들어, 핀 2와 3은 외부 인터럽트에 사용할 수 있습니다. 적절한 인터럽트 핀을 선택한 후에는 홀 효과 센서 출력의 와이어를 해당 핀에 연결하고 입력 전압을 5V에 연결하고 접지 핀에 연결할 수 있습니다.
아래 코드 예제는 전압 펄스의 상승 가장자리에서 인터럽트가 트리거되는 Arduino IDE에서 인터럽트를 설정하는 방법을 보여줍니다. 전압 변경에서 다른 지점에서 트리거되도록 인터럽트를 설정하고 마이크로 컨트롤러의 데이터 시트를 참조하여 사용 가능한 옵션을 결정해야합니다. 인터럽트를 설정하기 위해해야 할 마지막 측면은 인터럽트 서비스 루틴을 작성하는 것입니다. 이는 인터럽트가 트리거 될 때마다 코드가 실행되는 기능입니다. 이 기능은 짧아야하며 홀 효과 센서의 펄스 수를 계산하는 것과 같은 간단한 작업 만 수행해야합니다. 아래 코드 예제의 함수 countsteps ()는 홀 효과 센서의 펄스 수를 계산하는 데 사용됩니다.
이 펄스를 사용하여 위치 값을 결정하려면 선형 액추에이터의 이전 위치와 선형 액추에이터가 이동하는 방향을 알아야합니다. 마이크로 컨트롤러는 이미 선형 액추에이터를 운전하는 방법을 이미 알고 있습니다. 따라서 코드에서 액추에이터의 방향을 추적하기 위해 변수를 설정하여 이전 위치에서 펄스를 추가하거나 빼도록하는 데 사용됩니다. 위치를 업데이트 한 후에는 계산 된 펄스를 0으로 재설정해야합니다. 아래 코드 예제는 계산 된 펄스 수에 따라 위치를 업데이트하는 기능을 보여줍니다. 펄스 측면에서 위치가 있으면 선형 액추에이터의 인치당 펄스를 사용하여 인치로 변환 할 수 있습니다. 아래 코드 샘플에서 인치당 펄스는 3500입니다.
선형 액추에이터를 귀환합니다
홀 효과 센서의 위치 피드백을 정확하게 활용하려면 항상 선형 액추에이터의 시작 위치를 알아야합니다. 시스템을 처음 켜면 마이크로 컨트롤러가 액추에이터가 확장되었는지 여부를 알 수 없습니다. 이를 위해서는 선형 액추에이터를 알려진 위치로 집으로 집으로 가져 가야합니다. 선형 액추에이터를 집으로 가져 가려면 완전히 철회 된 것처럼 알려진 위치로 운전해야합니다. 당신은 또한 사용할 수 있습니다 외부 한계 스위치 알려진 위치를 완전히 확장되거나 철회하는 것 외에는 알려진 위치를 설정합니다. 아래의 Arduino 코드를 예로 사용하면 선형 액추에이터를 알려진 위치를 향해 유도하는 while 루프를 설정 하여이 경우 완전히 철회 할 것입니다. 홀 효과 센서의 인터럽트가 트리거되지 않기 때문에 우리는 당신이 알려진 위치에 있다는 것을 알고 있습니다. 이 경우 단계 변수가 변경되었는지 여부를 확인하여 인터럽트가 트리거되었는지 확인합니다. 또한 인터럽트가 트리거 될 것으로 기대하기에 충분한 시간이 통과되어야합니다.이를 위해 코드가 시작된 이후 밀리 초로 시간을 출력하는 millis () 함수를 사용하고 이전 시간 스탬프와 비교합니다. . 선형 액추에이터가 홈 위치에 있다고 판단하면 액추에이터 구동을 중단하고 단계 변수를 재설정하고 while 루프를 종료합니다.
거짓 트리거를 다루는 것
홀 효과 센서는 전위차계만큼 전기 노이즈에 민감하지 않지만 전기 노이즈는 여전히 출력 신호에 영향을 줄 수 있습니다. 스위치 바운싱은 또한 홀 효과 센서의 문제가 될 수있는 오 탐지를 계산할 수있는 문제가 될 수 있으며, 이는 마이크로 컨트롤러가 선형 액추에이터가 움직 였다고 생각하는 것에 영향을 미칩니다. 몇 개의 추가 펄스는 인치당 1000 개의 펄스가 있기 때문에 포지셔닝에 큰 영향을 미치지 않지만 시간이 지남에 따라 더 큰 문제가 될 수 있습니다. 내부 타이머를 사용하여 허위 트리거를 걸러 내면 이러한 문제를 해결할 수 있습니다. 새로운 펄스가 얼마나 자주 감지 될지 확인할 수 있으므로, 소음으로 인해 인터럽트가 트리거되면 걸러 내릴 수 있습니다. 아래 코드 샘플에서 Trig-Delay는 각 펄스 사이의 시간 지연입니다. 이 지연 전에 인터럽트가 트리거되면 펄스는 계산되지 않습니다.
이 지연 시간은 응용 프로그램에 따라 다르지만 너무 짧은 경우 노이즈를 제대로 걸러 내지 않으며 너무 길면 선형 액추에이터에서 실제 펄스를 놓치게됩니다. 선형 액추에이터의 속도 도이 지연에 영향을 미치며 속도를 조정하려면이 변수가 예상되는 펄스의 새로운 주파수에 조정하려면 변경해야 할 수도 있습니다. 각 펄스 사이의 정확한 지연을 정확하게 결정하려면 로직 분석기를 사용하여 홀 효과 센서에서 실제 신호를 볼 수 있습니다. 대부분의 응용 프로그램에서는 필요하지 않지만 정확한 위치를 매우 정확하게 필요한 경우 정확한 지연을 결정할 수 있습니다.
허위 트리거와 싸우는 또 다른 방법은 액추에이터가 알려진 위치에 도달 할 때마다 위치 값을 수정하는 것입니다. 선형 액추에이터를 귀환하는 것과 같이, 선형 액추에이터를 완전히 철회되거나 확장 된 위치로 또는 사용하는 경우 외부 한계 스위치액추에이터가 얼마나 멀리 움직 였는지 알 수 있습니다. 홀 효과 센서가 알려진 위치에 도달하기 위해 전송되어야하는 단계의 수를 알고 있으므로, 우리가 도달 할 때 값을 수정할 수 있습니다. 아래 코드 샘플에서 이는 완전히 확장되고 완전히 철회 된 위치에 대해 수행됩니다. 액추에이터가 해당 위치 중 하나에 도달하면 움직이지 않기 때문에 액추에이터를 구동하려고 시도하고 위치 값이 변경되지 않으면 한계에 있음을 알고 있습니다. 이 방법은 특히 작동 중 어느 시점에서 액추에이터를 완전히 철회하거나 완전히 확장하는 경우 위치 가치가 정확하게 유지되는 실용적인 솔루션을 제공합니다. 위치 값의 정확도를 유지하는 데 도움이되는 위에서 설명한 방법과 함께이 방법을 사용할 수 있습니다.
요약
위치 피드백을 위해 홀 효과 센서를 사용하면 전위차계의 피드백에 비해 훨씬 더 큰 해상도를 제공합니다. 운동 인치당 1000 개의 펄스가있을 수 있으므로 Hall Effect 센서는 선형 액추에이터를 배치 할 때 정밀도와 신뢰성을 제공합니다. 홀 효과 센서는 또한 펄스 수가 전위차계의 변화하는 전압보다 더 정확하기 때문에 다수의 선형 액추에이터가 동시에 함께 움직일 수 있도록 더 큰 능력을 제공합니다. 우리를 활용합니다 FA-Sync-X 액추에이터 컨트롤러, 액추에이터가 부하에 관계없이 일제로 이동하도록 할 수도 있습니다. DIYERS의 경우 Arduino를 사용하여 액추에이터가 어떻게 움직이는 지 확인할 수 있습니다. 여기.
아래는이 블로그에서 사용 된 전체 샘플 코드이며 14 인치 스트로크 길이를 제어하도록 만들어졌습니다. 총알 시리즈 36 Cal. 선형 액추에이터. 선형 액추에이터는 a를 사용하여 구동됩니다 모터 드라이버설정 방법을 배울 수 있습니다 여기.
[1] Monari, G. (2013 년 6 월) 광학 및 자기 인코더의 해상도 이해. 검색 : : https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders