Speed Controlling of DC Motor Using MOSFET

by Rithik0 in Circuits > Arduino

229 Views, 0 Favorites, 0 Comments

Speed Controlling of DC Motor Using MOSFET

circuit-assemble-image.jpg
circuit-diagram-of-dc-motor-controller.jpg

DC motors power everything from toothbrushes to robots. Controlling their speed and direction is crucial. In this project, we'll use an Arduino, a potentiometer, and a MOSFET transistor to control a DC motor. Our versatile, low-cost design can also control LEDs and heating elements. It's easy to build with adjustable speed and power settings. Let's get started!

Supplies

FK3UDNQLWOZCLSW.jpg
  1. Arduino UNO 
  2. IRLZ44N 
  3. 1k Ohm Resistor
  4. 10K Ohm Potentiometer
  5. Bread Board 
  6. USB A to USB B Cable
  7. 12V Power Source
  8. Jumper Wires

Circuit Diagram of Speed Control of DC Motor Using MOSFET

F9LV04ALWOZCLT7.jpg

Here's the simple circuit diagram for controlling a DC motor's speed using an Arduino and a MOSFET. This minimal-component design is easy to understand. For direction control, check out our L293D project.

Circuit Diagram Overview:

  • Components: Arduino UNO, MOSFET, 1k Ohm resistor, 10k Ohm potentiometer, diode, 12V power supply.
  • Connections:
  • MOSFET connects the Arduino to the motor, acting as a driver.
  • The 9th pin of the Arduino (PWM capable) controls the MOSFET.
  • The potentiometer connects to 5V, ground, and A0 for variable voltage input.
  • A diode protects against reverse EMF from the motor.

Let's move to the components assembly.

Component Assembly of Speed Control of DC Motor Using MOSFET

FK3UDNQLWOZCLSW.jpg

We used a breadboard to assemble the simple circuit, a power bank for the Arduino UNO, and a 4S Li-ion battery pack for the motor. The connections follow the previously discussed diagram.

Ensure the breadboard is in good condition to avoid connection issues.

Now, let's get into the code explanation.

Let's Code the Arduino

The code declares the 9th pin as `motorPin` and sets it as an OUTPUT in `setup()`.

In the `loop()`, it reads the potentiometer value and uses `map()` to scale the 10-bit ADC value (0-1023) to the 8-bit PWM range (0-255) for `analogWrite()`. This ensures accurate motor speed control.

Next, let's move to the simulation part of the project.

For the Code Visit the Git Repo Arduino DC Motor Speed Control Using MOSFET

Conclution

How to Control Speed of DC Motor using Arduino, MOSFET and Potetniometer?

As expected, the working of the project was verified. If you need to know more about this project, visit the official article explaining Arduino DC Motor Speed Control using a MOSFET transistor. Topics such as how to choose the right MOSFET for the project, simulations, and more are covered.