Project in progress
Copy Of Fidget Spinner RPM Counter

Copy Of Fidget Spinner RPM Counter © GPL3+

Arduino Project: How to make a Fidget Spinner RPM counter with Hall-effect sensor.

  • 3,158 views
  • 2 comments
  • 5 respects

Components and supplies

Apps and online services

About this project

Parts Required:

  • Fidget Spinner
  • neodyimium magnet(strong)
  • Arduino Uno
  • LED + resistor 220 Ohm
  • Hall-Effect Sensor - a3144
  • Single Turn Potentiometer
  • Jumper Wires
  • Breadboard
  • LCD 1602

2: Hall-Effect Sensor

Using Hall-Effect Sensor we can measure the speed of rotation. I used Hall-Effect Sensor - a3144. I use two of it to make it easier to detect

RPM (Revolutions per minute) – the number of revolutions per minute. Revolutions per minute – a unit of measurement of rotational speed: the number of complete rotations made by the body (fidget spinner, wheel etc.) around a fixed axis. Used to describe the speed of rotation of the mechanical components in the mechanisms and machines.

3: How does it work?

To measure the speed of rotation on the Fidget Spinner must be mounted a part of neodyimium magnet that affect the Hall sensor after each complete turn of the Spinner.

4: Indication

The presence of a magnetic field is indicated on the LED. Left and Right LED is keep shinning for some visual imporvement. LED in the middle will only light up when magnet detected by hall-effect sensor.

LCD 1602 indicates current RPM, maximum RPM and tachometr bar (from 0 up to 1260rpm). 1020 rpm is my personal record.

Code

codeArduino
#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
const int hallSensorPin = 2;                      // connect the hall effect sensor on pin 2
const unsigned long sampleTime = 1000;
const int maxRPM = 1260;                  // maximum RPM for LCD Bar
int rpmMaximum = 0;

void setup() 
{
  pinMode(hallSensorPin,INPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("Initializing");
  delay(1000);
  lcd.clear();
  lcd.print("Welcome to Fidget Spinner RPM Counter");
  for (int positionCounter = 0; positionCounter < 21; positionCounter++) {
    lcd.scrollDisplayLeft();
    delay(350);
  }
  delay(1000);
  lcd.clear();
}

void loop() 
{
  delay(100);
  int rpm = getRPM();
  if (rpm > rpmMaximum) rpmMaximum = rpm;
  lcd.clear();
  displayRPM(rpm);
  displayBar(rpm);
  
}
 
int getRPM()
{
  int count = 0;
  boolean countFlag = LOW;
  unsigned long currentTime = 0;
  unsigned long startTime = millis();
  while (currentTime <= sampleTime)
  {
    if (digitalRead(hallSensorPin) == HIGH)
    {
      countFlag = HIGH;
    }
    if (digitalRead(hallSensorPin) == LOW && countFlag == HIGH)
    {
      count++;
      countFlag=LOW;
    }
    currentTime = millis() - startTime;
  }
  int countRpm = int(60000/float(sampleTime))*count;
  return countRpm;
}
    
void displayRPM(int rpm) 
{
  lcd.clear();
  lcd.setCursor(0, 0); 
  lcd.print(rpm,DEC);
  lcd.setCursor(7,0);
  lcd.print(rpmMaximum, DEC);
  lcd.setCursor(13,0);
  lcd.print("MAX");
  Serial.print("RPM = ");
  Serial.print(rpm);
  Serial.print("  MAX RPM = ");
  Serial.println(rpmMaximum);
}

void displayBar(int rpm)
{
  int numOfBars=map(rpm,0,maxRPM,0,15);
  lcd.setCursor(0,1);
  if (rpm!=0)
  {
  for (int i=0; i<=numOfBars; i++)
   {
        lcd.setCursor(i,1);
        lcd.write(1023);
      }
  }
} 

Schematics

Fidget Spinner RPM Counter Circuit Diagram
Spinner schematics d8vlcjmqir

Comments

Similar projects you might like

Fidget Spinner RPM Counter

by Andriy Baranov

  • 38,705 views
  • 29 comments
  • 101 respects

Arduino Piano

Project in progress by Teo Zhi Yi

  • 2,570 views
  • 0 comments
  • 7 respects

Hall effect sensor with Arduino

Project tutorial by AMAL NS

  • 9,420 views
  • 1 comment
  • 22 respects

The Magnetic Field and RGB Tester

Project tutorial by Kutluhan Aktar

  • 3,530 views
  • 0 comments
  • 14 respects

Arduino Frequency Counter with 16×2 LCD Display

Project in progress by jasir

  • 19,103 views
  • 6 comments
  • 17 respects

Create a People Counter Controlled by an Android App

Project tutorial by Kutluhan Aktar

  • 3,064 views
  • 2 comments
  • 7 respects
Add projectSign up / Login