Відмінності між версіями «Модуль датчика Холла»

(Створення статті)
 
(Підключення цифрового датчика Холла)
 
(Не показані 3 проміжні версії цього користувача)
Рядок 2: Рядок 2:
  
 
5 - Джерело струму]]
 
5 - Джерело струму]]
Датчик Холла - це датчик магнітного поля. Він був так названий завдяки принципу своєї роботи - ефекту Холла: якщо в магнітне поле помістити пластину через яку протікає струмо, то електрони в пластині будуть відхилятися в напрямку, перпендикулярному напрямку струму. У яку саме сторону будуть відхилятися електрони, залежить від полярності магнітного поля.
+
Датчик Холла - це датчик магнітного поля. Він був так названий завдяки принципу своєї роботи - ефекту Холла: якщо в магнітне поле помістити пластину через яку протікає струм, то електрони в пластині будуть відхилятися в напрямку, перпендикулярному напрямку струму. У яку саме сторону будуть відхилятися електрони, залежить від полярності магнітного поля.
  
 
Різна щільність електронів на сторонах пластини створює різницю потенціалів, яку можна посилити і виміряти, що датчики Холла і роблять.
 
Різна щільність електронів на сторонах пластини створює різницю потенціалів, яку можна посилити і виміряти, що датчики Холла і роблять.
Рядок 9: Рядок 9:
 
[[Файл:Модуль датчика Холла.jpg|міні|200x200пкс|Рис. 2. Модуль датчика Холла]]
 
[[Файл:Модуль датчика Холла.jpg|міні|200x200пкс|Рис. 2. Модуль датчика Холла]]
 
Датчики Холла (далі просто ДХ) бувають аналоговими і цифровими. Аналоговий перетворює індукцію магнітного поля в напругу, знак і величина якої будуть залежати від полярності і сили поля. Цифровий же видає лише факт наявності / відсутності поля, і зазвичай має два порога: включення - коли значення індукції вище порога, датчик видає логічну одиницю; і виключення - коли значення нижче порога, датчик видає логічний нуль. Наявність зони нечутливості між порогами називається гістерезисом і служить для виключення помилкового спрацьовування датчика на всілякі перешкоди - аналогічно працює цифрова електроніка з логічними рівнями напруги. Цифрові ДХ діляться ще на уніполярні і біполярні: перші включаються магнітним полем певної полярності і вимикаються при зниженні індукції поля; біполярні ж включаються полем однієї полярності, а вимикаються полем протилежної полярності.
 
Датчики Холла (далі просто ДХ) бувають аналоговими і цифровими. Аналоговий перетворює індукцію магнітного поля в напругу, знак і величина якої будуть залежати від полярності і сили поля. Цифровий же видає лише факт наявності / відсутності поля, і зазвичай має два порога: включення - коли значення індукції вище порога, датчик видає логічну одиницю; і виключення - коли значення нижче порога, датчик видає логічний нуль. Наявність зони нечутливості між порогами називається гістерезисом і служить для виключення помилкового спрацьовування датчика на всілякі перешкоди - аналогічно працює цифрова електроніка з логічними рівнями напруги. Цифрові ДХ діляться ще на уніполярні і біполярні: перші включаються магнітним полем певної полярності і вимикаються при зниженні індукції поля; біполярні ж включаються полем однієї полярності, а вимикаються полем протилежної полярності.
 +
 +
Вони сумісні з ПЗ Arduino версії 1.0.5 і вище.
  
 
==== Виводи датчика ====
 
==== Виводи датчика ====
Вивід; Призначення; Вивід Arduino
+
Вивід; ''Призначення''; Вивід Arduino
  
* G; Земля; GND;
+
* G; ''Земля''; GND;
  
* +; Живлення + 2,3 ... 10 В; 5V;
+
* +; ''Живлення'' + 2,3 ... 10 В; 5V;
  
* AO; Аналоговий вихід - значення напруженості магнітного поля; A0
+
* AO; ''Аналоговий вихід - значення напруженості магнітного поля''; A0
* DO; Цифровий вихід - індикатор перевищення напруженості магнітного поля заданого порогу; 12
+
* DO; ''Цифровий вихід - індикатор перевищення напруженості магнітного поля заданого порогу''; 12
  
 
=== Аналогові датчики Холла ===
 
=== Аналогові датчики Холла ===
 
[[Файл:Аналоговий датчик Холла.jpg|міні|200x200пкс|Рис. 3. Аналоговий датчик Холла]]
 
[[Файл:Аналоговий датчик Холла.jpg|міні|200x200пкс|Рис. 3. Аналоговий датчик Холла]]
Розмір - 4х3 мм і він має 3 виводи (рис.3).
+
Розмір - 4х3 мм, є 3 виводи (рис.3).
  
 
Живлення датчику потрібно біполярне - тоді на південний полюс магніту датчик реагуватиме позитивним рівнем на виході, на північний - негативним, а на відсутність поля - нульовим. Однак можна обійтися однополярним живленням - в цьому випадку рівень на виході (Vo) в половину напруги живлення (Vdc / 2) буде означати відсутність магнітного поля, Vo> Vdc / 2 - південний полюс, Vo <Vdc / 2 - північний.
 
Живлення датчику потрібно біполярне - тоді на південний полюс магніту датчик реагуватиме позитивним рівнем на виході, на північний - негативним, а на відсутність поля - нульовим. Однак можна обійтися однополярним живленням - в цьому випадку рівень на виході (Vo) в половину напруги живлення (Vdc / 2) буде означати відсутність магнітного поля, Vo> Vdc / 2 - південний полюс, Vo <Vdc / 2 - північний.
Рядок 49: Рядок 51:
 
Виглядає він точно так само, як і аналоговий, навіть виводи розташовані так само (рис. 5).  
 
Виглядає він точно так само, як і аналоговий, навіть виводи розташовані так само (рис. 5).  
  
Біполярний він тільки в магнітному сенсі, а живлення йому можна подавати звичайне, однополярне. До слова, живлення цей датчик приймає в досить широкому діапазоні - від 3.8 до 24 В, а струм може віддавати до 100 мА, що дозволяє безпосередньо від нього живити керовані ним пристрої (наприклад, реле). Чутливість у нього майже така сама, як у аналогового SS49E: від -600 Гс до -1000 Гс (північний полюс магніту) і від 600 Гс до 1000 Гс.
+
Біполярний він тільки в магнітному сенсі, а живлення йому можна подавати звичайне, однополярне. Живлення цей датчик приймає в досить широкому діапазоні - від 3.8 до 24 В, а струм може віддавати до 100 мА, що дозволяє безпосередньо від нього живити керовані ним пристрої (наприклад, реле). Чутливість у нього майже така сама, як у аналогового SS49E: від -600 Гс до -1000 Гс (північний полюс магніту) і від 600 Гс до 1000 Гс.
  
 
==== Підключення цифрового датчика Холла ====
 
==== Підключення цифрового датчика Холла ====
Підключається цифровий датчик Холла трохи складніше, ніж аналоговий: вихід датчика Q потрібно підтягнути до живлення резистором в 10 кому, так як вихід у нього з відкритим колектором (рис. 6).
+
Приклад підключення (Рис.6). Вихід Q підключений до цифрового піну 2, решта - як у аналоговому.
[[Файл:Схема підключення цифрового датчика Холла.jpg|центр|міні|392x392пкс|Рис. 6. Схема підключення цифрового датчика Холла]]
+
[[Файл:Підключення цифрового датчика Холла.jpg|центр|міні|350x350пкс|Рис. 6. Підключення цифрового датчика Холла]]
Приклад підключення (Рис.7). Вихід Q підключений до цифрового піну 2, решта - як у аналоговому.
 
[[Файл:Підключення цифрового датчика Холла.jpg|центр|міні|350x350пкс|Рис. 7. Підключення цифрового датчика Холла]]
 
  
 
== Застосування ==
 
== Застосування ==
 
Датчики Холла використовуються в якості безконтактних вимикачів, як заміна герконів, а також:
 
Датчики Холла використовуються в якості безконтактних вимикачів, як заміна герконів, а також:
  
* як датчики швидкості обертання - широко використовуються в автомобілебудуванні і всюди, де потрібно визначити швидкість обертання колеса або іншого обертового об'єкта; сенсори на основі ефекту Холла прийшли на заміну механічних Геркон;
+
* як датчики швидкості обертання - широко використовуються в автомобілебудуванні і всюди, де потрібно визначити швидкість обертання колеса або іншого обертового об'єкта;  
  
* як датчики наближення; типовий приклад - розкладний чохол на вашому смартфоні, який включає підсвічування екрану при відкритті;
+
* як датчики наближення;
  
 
* вимір кута повороту;
 
* вимір кута повороту;
Рядок 71: Рядок 71:
 
* вимір сили струму (змінного і постійного);
 
* вимір сили струму (змінного і постійного);
 
* вимір повітряних зазорів, рівня рідини тощо.
 
* вимір повітряних зазорів, рівня рідини тощо.
 +
 +
== Приклад вимірювання швидкості обертання ==
 +
За допомогою датчика Холла можна вимірювати швидкість обертання.
 +
 +
RPM (Revolutions per minute) - кількість оборотів в хвилину. Оберти в хвилину - одиниця вимірювання частоти обертання: кількість повних обертів, здійснених тілом (валом, колесом, шківом тощо) навколо фіксованої осі. Використовується для характеристики швидкості обертання механічних компонентів в механізмах і машинах.
 +
 +
Для вимірювання швидкості обертання на диску повинен бути закріплений магніт, який буде впливати на датчик Холла після кожного повного оберту диска. Таким чином, після кожного оберту диска отримуємо імпульс, який можемо трактувати як один оберт.
 +
 +
Програма для Arduino, яка зчитує показання датчика Холла і рахує кількість обертів в хвилину і частоту обертання. При наявності магнітного поля включається світлодіод.
 +
 +
<code>// ''read RPM''</code>
 +
 +
<code>''volatile int rpmcount = 0;//see <nowiki>http://arduino.cc/en/Reference/Volatile</nowiki>''</code>
 +
 +
<code>''int rpm = 0;''</code>
 +
 +
<code>''unsigned long lastmillis = 0;''</code>
 +
 +
<code>''void setup(){''</code>
 +
 +
<code>''Serial.begin(9600);''</code>
 +
 +
<code>''attachInterrupt(0, rpm_fan, FALLING);//interrupt cero (0) is on pin two(2).''</code>
 +
 +
<code>''}''</code>
 +
 +
<code>''void loop(){''</code>
 +
 +
<code>''if (millis() - lastmillis == 1000){ /*Uptade every one second, this will be equal to reading frecuency (Hz).*/''</code>
 +
 +
<code>''detachInterrupt(0); //Disable interrupt when calculating''</code>
 +
 +
<code>''rpm = rpmcount * 60; /* Convert frecuency to RPM, note: this works for one interruption per full rotation. For two interrups per full rotation use rpmcount * 30.*/''</code>
 +
 +
<code>''Serial.print("RPM =\t"); //print the word "RPM" and tab.''</code>
 +
 +
<code>''Serial.print(rpm); // print the rpm value.''</code>
 +
 +
<code>''Serial.print("\t Hz=\t"); //print the word "Hz".''</code>
 +
 +
<code>''Serial.println(rpmcount); /*print revolutions per second or Hz. And print new line or enter.*/''</code>
 +
 +
<code>''rpmcount = 0; // Restart the RPM counter''</code>
 +
 +
<code>''lastmillis = millis(); // Uptade lasmillis''</code>
 +
 +
<code>''attachInterrupt(0, rpm_fan, FALLING); //enable interrupt''</code>
 +
 +
<code>''}''</code>
 +
 +
<code>''}''</code>
 +
 +
<code>''void rpm_fan(){ /* this code will be executed every time the interrupt 0 (pin2) gets low.*/''</code>
 +
 +
<code>''rpmcount++;''</code>
 +
 +
<code>''}''</code>
 +
[[Файл:Результат вимірювання швидкості обертання .jpg|без|міні]]
  
 
== Перелік посилань ==
 
== Перелік посилань ==

Поточна версія на 17:28, 29 травня 2018

Рис. 1. Ефект Холла.1 - Електрони 2 - Пластина 3 - Магніти 4 - Магнітне поле 5 - Джерело струму

Датчик Холла - це датчик магнітного поля. Він був так названий завдяки принципу своєї роботи - ефекту Холла: якщо в магнітне поле помістити пластину через яку протікає струм, то електрони в пластині будуть відхилятися в напрямку, перпендикулярному напрямку струму. У яку саме сторону будуть відхилятися електрони, залежить від полярності магнітного поля.

Різна щільність електронів на сторонах пластини створює різницю потенціалів, яку можна посилити і виміряти, що датчики Холла і роблять.

Аналогові та цифрові датчики Холла

Рис. 2. Модуль датчика Холла

Датчики Холла (далі просто ДХ) бувають аналоговими і цифровими. Аналоговий перетворює індукцію магнітного поля в напругу, знак і величина якої будуть залежати від полярності і сили поля. Цифровий же видає лише факт наявності / відсутності поля, і зазвичай має два порога: включення - коли значення індукції вище порога, датчик видає логічну одиницю; і виключення - коли значення нижче порога, датчик видає логічний нуль. Наявність зони нечутливості між порогами називається гістерезисом і служить для виключення помилкового спрацьовування датчика на всілякі перешкоди - аналогічно працює цифрова електроніка з логічними рівнями напруги. Цифрові ДХ діляться ще на уніполярні і біполярні: перші включаються магнітним полем певної полярності і вимикаються при зниженні індукції поля; біполярні ж включаються полем однієї полярності, а вимикаються полем протилежної полярності.

Вони сумісні з ПЗ Arduino версії 1.0.5 і вище.

Виводи датчика

Вивід; Призначення; Вивід Arduino

  • G; Земля; GND;
  • +; Живлення + 2,3 ... 10 В; 5V;
  • AO; Аналоговий вихід - значення напруженості магнітного поля; A0
  • DO; Цифровий вихід - індикатор перевищення напруженості магнітного поля заданого порогу; 12

Аналогові датчики Холла

Рис. 3. Аналоговий датчик Холла

Розмір - 4х3 мм, є 3 виводи (рис.3).

Живлення датчику потрібно біполярне - тоді на південний полюс магніту датчик реагуватиме позитивним рівнем на виході, на північний - негативним, а на відсутність поля - нульовим. Однак можна обійтися однополярним живленням - в цьому випадку рівень на виході (Vo) в половину напруги живлення (Vdc / 2) буде означати відсутність магнітного поля, Vo> Vdc / 2 - південний полюс, Vo <Vdc / 2 - північний.

Характеристики при однополярному живленні 5 В і температурі від -40 до 85 ° C:

  • Струм: від 6 до 10 мА
  • Вихідний струм: від 1.0 до 1.5 мА
  • Вихідна напруга: від 1.0 до 1.75 мВ / Гс, в середньому 1.4 мВ / Гс (мілівольт на гаус)
  • Нульова точка: від 2.25 до 2.75 В, в середньому 2.5 В
  • Магнітний діапазон: від ± 650 Гс до ± 1000Гс
  • Час відгуку: 3 мс

З цих даних випливає, що при стандартному живленні від Arduino (+ 5V, GND) при 25 ° C датчик за відсутності магнітного поля буде видавати 2.5 В, а на поле силою 1000 Гс - 2.5 ± 1.4 В. Відповідно, якщо скористатися АЦП, розкид значень буде приблизно в діапазоні від 280 до 800 з нульовою точкою в 512.

Підключення аналогового датчика Холла

Підключаємо вивід "+" до 5V Arduino, вивід "-" до GND, останній вивід - до Analog 0 (рис. 4).

Рис. 4. Підключення аналогового датчика Холла до Arduino

Цифровий біполярний датчик Холла

Рис. 5. Цифровий датчик Холла

Виглядає він точно так само, як і аналоговий, навіть виводи розташовані так само (рис. 5).

Біполярний він тільки в магнітному сенсі, а живлення йому можна подавати звичайне, однополярне. Живлення цей датчик приймає в досить широкому діапазоні - від 3.8 до 24 В, а струм може віддавати до 100 мА, що дозволяє безпосередньо від нього живити керовані ним пристрої (наприклад, реле). Чутливість у нього майже така сама, як у аналогового SS49E: від -600 Гс до -1000 Гс (північний полюс магніту) і від 600 Гс до 1000 Гс.

Підключення цифрового датчика Холла

Приклад підключення (Рис.6). Вихід Q підключений до цифрового піну 2, решта - як у аналоговому.

Рис. 6. Підключення цифрового датчика Холла

Застосування

Датчики Холла використовуються в якості безконтактних вимикачів, як заміна герконів, а також:

  • як датчики швидкості обертання - широко використовуються в автомобілебудуванні і всюди, де потрібно визначити швидкість обертання колеса або іншого обертового об'єкта;
  • як датчики наближення;
  • вимір кута повороту;
  • вимір величини вібрації;
  • вимір величини магнітного поля - магнітометри і цифрові компаси;
  • вимір сили струму (змінного і постійного);
  • вимір повітряних зазорів, рівня рідини тощо.

Приклад вимірювання швидкості обертання

За допомогою датчика Холла можна вимірювати швидкість обертання.

RPM (Revolutions per minute) - кількість оборотів в хвилину. Оберти в хвилину - одиниця вимірювання частоти обертання: кількість повних обертів, здійснених тілом (валом, колесом, шківом тощо) навколо фіксованої осі. Використовується для характеристики швидкості обертання механічних компонентів в механізмах і машинах.

Для вимірювання швидкості обертання на диску повинен бути закріплений магніт, який буде впливати на датчик Холла після кожного повного оберту диска. Таким чином, після кожного оберту диска отримуємо імпульс, який можемо трактувати як один оберт.

Програма для Arduino, яка зчитує показання датчика Холла і рахує кількість обертів в хвилину і частоту обертання. При наявності магнітного поля включається світлодіод.

// read RPM

volatile int rpmcount = 0;//see http://arduino.cc/en/Reference/Volatile

int rpm = 0;

unsigned long lastmillis = 0;

void setup(){

Serial.begin(9600);

attachInterrupt(0, rpm_fan, FALLING);//interrupt cero (0) is on pin two(2).

}

void loop(){

if (millis() - lastmillis == 1000){ /*Uptade every one second, this will be equal to reading frecuency (Hz).*/

detachInterrupt(0); //Disable interrupt when calculating

rpm = rpmcount * 60; /* Convert frecuency to RPM, note: this works for one interruption per full rotation. For two interrups per full rotation use rpmcount * 30.*/

Serial.print("RPM =\t"); //print the word "RPM" and tab.

Serial.print(rpm); // print the rpm value.

Serial.print("\t Hz=\t"); //print the word "Hz".

Serial.println(rpmcount); /*print revolutions per second or Hz. And print new line or enter.*/

rpmcount = 0; // Restart the RPM counter

lastmillis = millis(); // Uptade lasmillis

attachInterrupt(0, rpm_fan, FALLING); //enable interrupt

}

}

void rpm_fan(){ /* this code will be executed every time the interrupt 0 (pin2) gets low.*/

rpmcount++;

}

Результат вимірювання швидкості обертання .jpg

Перелік посилань

  1. http://robocraft.ru/blog/electronics/594.html
  2. https://ru.wikipedia.org/wiki/Arduino#Периферия
  3. https://uawest.com/datchik-holla-modul-magnitnogo-polya-dlya-arduino.html
  4. https://arduino.ua/prod1203-modyl-datchika-holla-a3144
  5. https://soltau.ru/index.php/arduino/item/491-kak-podklyuchit-datchik-kholla-49e-k-arduino

Назар Паляниця