За допомогою датчика Холла можна вимірювати швидкість обертання.
RPM (Revolutions per minute) - кількість оборотів в хвилину. Обороти в хвилину - одиниця вимірювання частоти обертання: кількість повних обертів, скоєних тілом (валом, колесом, шківом т.д.) навколо фіксованої осі. Використовується для характеристики швидкості обертання механічних компонентів в механізмах і машинах.
Підключення датчика Холла в Arduino наведено на малюнку 1 (S (дані) -> pin 2, GND -> Arduino GND, VCC -> Arduino + 5V, резистор 1 кОм).
Малюнок 1 - поключенія цифрового датчика Холла до Arduino
Для вимірювання швидкості обертання на диску повинен бути закріплений магніт, який буде впливати на датчик Холла після кожного повного обороту диска. Таким чином, після кожного обороту диска отримуємо імпульс, який можемо трактувати як один оборот.
Програма для Arduino, яка зчитує показання датчика Холла і вважає кількість оборотів в хвилину і частоту обертання. При наявності магнітного поля включається світлодіод.
void setup () Serial.begin (9600);
attachInterrupt (0, rpm_fan, FALLING); // interrupt cero (0) is on pin two (2).
>
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
>
>