8431 rpm Fidget spinner

8431 RPM Fidget Spinner – Arduino Tachometer

This was a fun experiment measuring the rotational speed (rpm) of a fidget spinner using an Arduino Uno, a hall effect sensor and a neodymium magnet. Then seeing just how fast I could make the spinner spin with a shop vac!

Measuring Spinner RPM every Revolution with a Hall Effect Sensor and Neodymium Magnet

The Hall effect sensor output was connected to the Arduino Uno digital input pin 2. TheĀ  neodymium magnet was glued to a section of 8mm wooden dowel and pushed into one of the outer bearings on the fidget spinner.

Fidget spinner rpm Arduino tachometer

3144 Hall effect switch datasheet

Measuring the Spinner RPM once every second

The following sketch uses a timer 1 interrupt and a hardware interrupt to measure the RPM over a one second period.


How fast can the spinner spin with a shop vac?

Spinner RPM shop vac nozzle 99999 RPM fidget spinner with a shop vac

To test the Arduino tachometer at higher rpm values, I used a shop vac. The bottom of a drinks bottle was cut off and then the bottle inserted into the shop vac blower output. I also added a small nozzle to increase the air speed.

Measuring the Spinner RPM with the timer input capture unit

It is also possible to make the Arduino timer do most of the work.

Arduino Tachometer Timer 1 Input Capture with Hall Effect Sensor - Spinner 9999 RPM Spinner 9999 RPM measurement with Arduino Tachometer

The hall effect sensor is connected to pin 8.

The timer counts the prescaled clock and then stores the count when the magnet passes over the hall effect sensor. An interrupt is generated and this then retrieves the stored count and uses it calculate the rpm value.

The prescaler is used to reduce the clock frequency.


Measuring Spinner RPM with a Light Dependent Resistor (LDR)

Measuring the spinner speed is also possible using a light source along with a photo transistor or a light dependent resistor (LDR) as a receiver.

The fidget spinner breaks the light beam and the Arduino measures the resulting pulse.

In this case I have used an LDR and a 1K resistor connected as a potential divider, with the output connected to pin 8.

The sketch takes account of the number of arms on the fidget spinner and once again uses the input capture interrupt.



Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.