Датчик Холла це цифровий однополярний датчик, що працює на ефекті Холла, суть якого полягає в тому, що при при приміщенні в магнітне поле деякого провідника з постійним струмом, в цьому провіднику виникає поперечна різниця потенціалів.
Основні перваги
- Висока температурна стабільність
- На роботу датчика не впливають забруднення чи вологість
- Широкий діапазон робочиг напруг
- Може використовуватись як з мікроконтролерами так і з релейною логікою
Через свої характеристики датчик використовується в баготьх сферах, зокрема в датчиках обертання, енкодерах, датчиках струму також замість герконів в охоронних системах.
Схема підключення
Розглянемо датчик A3144, даний датчик реагує на південне поле магніта.
Код програми
#include <Arduino.h>
#define LED_PIN 13
volatile bool state = false;
void blink()
{
state = !state;
digitalWrite(LED_PIN, state);
}
void setup()
{
pinMode(LED_PIN, OUTPUT);
attachInterrupt(0, blink, FALLING);
}
void loop()
{
delay(10000);
}
При пінесенні магніта південим полюслм до датчика, світлодіод буде перемикати свій стан.
Приклад коду підрахунку обертів двигуна
#include <Arduino.h>
volatile unsigned long count = 0;
int pole = 1;
void hall()
{
count++;
}
void setup()
{
Serial.begin(9600);
attachInterrupt(0, hall, FALLING);
}
void loop()
{
static unsigned long timer = 0;
if ((millis() - timer) >= 1000)
{
unsigned long _count = count;
count = 0;
_count /= pole;
Serial.println("----------");
Serial.print("rps - ");
Serial.println(_count);
Serial.print("rpm - ");
Serial.println(_count * 60);
Serial.print("rph - ");
Serial.println(_count * 3600);
timer = millis();
}
}
Якщо ваш магніт багатополюсний, в змінній ‘pole‘ введіть своє значення.
На вал двигуна закріпляється магніт, для більш точних даних використовують кільцевий багатополюсний постійний магніт. Даний метод використовують в пральних машинах, для керування обертами.
Датчик хола розміщується біля магніта, на відстані декількох міліметрів.
Також приклад використання датчика Холла лічильник рідини або датчик потоку.