Motor Control

Hi there,
Im brand new to Arduino and Im looking for some guidance in a project im doing.

I need to create a motor control unit.
the 3 main Requirements:
-Control the speed
-Change the direction
-Display the RPM of the motor on a LCD

For the speed control I will use a Potentiometer which should be fine,
Changing the direction i was going to use a L298N and a push button switch.

My main problem is the RPM display. Should i use a sensor to pick the fans rotation or a Stepper motor?

With a Stepper motor would it be slightly easier for getting the RPM than say a hall sensor?

All help would be very much appreciated. Been thrown in the deep end here.

You should start by deciding what the best motor is for the job e.g.
What are the min and max RPMs required?
What torque is required?
Does the motor need to hold position when not rotating (will it have a brake)?

Thank you for such a fast reply.
I would say around 200 RPM would be a good.

The torque is intesting but i am just wanting to use a small plastic fan on it so nothing to serious.

I will need to make an emergancy stop
but i was thinking of just cutting power from the circuit for that, so a brake to hold its position is not
required.

Sometimes applications require motors to be able to hold their position when they are not rotating even though there might be a force on them. Stepper motors are good for holding position without the need for a brake.

There are three types of motor you could use;

  • DC motor
  • Continuous rotating servo
  • Stepper

You still need to decide which is the best type of motor for your your application.

DC motors without gearing will run at several thousand rpm. So if you use one of those you will need gears to get down to 200rpm. They also have no feedback on speed so you would need to add an encoder.

Continuously rotating servos will operate at around the speed you want. The control signal controls the rotation speed so you don't need an encoder.

Stepper motors will also run at the desired speed and it is controlled by the step speed.

For an emergency stop you could bring a servo and a stepper to halt quickly. Without a brake a DC motor is going to spin for a while if you just cut power to it.

From the limited information about what you are doing a servo may be the best bet. Make sure it is continuous rotation and not a positioning servo.

ardly:
Sometimes applications require motors to be able to hold their position when they are not rotating even though there might be a force on them. Stepper motors are good for holding position without the need for a brake.

There are three types of motor you could use;

  • DC motor
  • Continuous rotating servo
  • Stepper

You still need to decide which is the best type of motor for your your application.

DC motors without gearing will run at several thousand rpm. So if you use one of those you will need gears to get down to 200rpm. They also have no feedback on speed so you would need to add an encoder.

Continuously rotating servos will operate at around the speed you want. The control signal controls the rotation speed so you don't need an encoder.

Stepper motors will also run at the desired speed and it is controlled by the step speed.

For an emergency stop you could bring a servo and a stepper to halt quickly. Without a brake a DC motor is going to spin for a while if you just cut power to it.

From the limited information about what you are doing a servo may be the best bet. Make sure it is continuous rotation and not a positioning servo.

Thank you very much i will take a look into that then.

The one thing is how do i get the RPM to display on the LCD?
If I use a servo or stepper motor?

Domanax:
...
The one thing is how do i get the RPM to display on the LCD?
If I use a servo or stepper motor?

If you have not used an LCD before then the first thing to do is just to make a sketch that writes some text to the display.Once that works you calculate what revs your motor is doing and display that text on the LCD.

The way you control a stepper and a continuously rotating servo are fundamentally different.

With a stepper motor each step normally equates to a rotation of 1.8° (there are variations on the this and motors can also be half stepped or micro stepped). The faster the motor is made to make steps the faster it rotates. If I made a motor take 200 steps in 1s it would be rotating at 60rpm.
Here is a tutorial on stepper speed control
https://www.arduino.cc/en/Tutorial/StepperSpeedControl

With a continuously rotating servo you send the motor a Pulse Width Modulated (PWM) signal which controls its speed.
Here is a link to info on servo control

You need to do a bit of reading and try out tutorials.