Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Motor Controller: Examples, Pinouts, and Specs

Image of Motor Controller
Cirkit Designer LogoDesign with Motor Controller in Cirkit Designer

Introduction

The FEETECH 2CH Motor Controller is a versatile electronic device designed to regulate the speed, direction, and torque of electric motors by controlling the power supplied to them. This motor controller supports two channels, allowing it to independently control two DC motors. It is ideal for robotics, automation systems, and other applications requiring precise motor control.

Explore Projects Built with Motor Controller

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32 and L298N Motor Driver Controlled Battery-Powered Robotic Car
Image of ESP 32 BT BOT: A project utilizing Motor Controller in a practical application
This circuit is a motor control system powered by a 12V battery, utilizing an L298N motor driver to control four DC gearmotors. An ESP32 microcontroller is used to send control signals to the motor driver, enabling precise control of the motors for applications such as a robotic vehicle.
Cirkit Designer LogoOpen Project in Cirkit Designer
RP2040 Zero-Based Battery-Powered Motor Control System with LCD Display
Image of FYP CIRCUIT DIAGRAM: A project utilizing Motor Controller in a practical application
This circuit is a motor control system using an rp2040 microcontroller to interface with a 16x2 I2C LCD, a keypad, and a potentiometer for user input. It controls a DC motor via an L298N motor driver and monitors current using a 5A current sensor, with additional components like an RC and an EML for extended functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 Controlled Robotics Platform with GPS, IR, and GSM Features
Image of IOT based Trash Collecting Vessel: A project utilizing Motor Controller in a practical application
This is a microcontroller-based control system designed for a mobile robotic platform with environmental sensing, location tracking, and GSM communication capabilities. It includes motor control for actuation, various sensors for data acquisition, and a battery for power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560-Controlled Robotic Actuators with Joystick and Pushbutton Interface
Image of Wheelchair: A project utilizing Motor Controller in a practical application
This is a motor control system featuring an Arduino Mega 2560 microcontroller that interfaces with L298N and BTS7960 motor drivers to control multiple DC motors and actuators. User inputs are provided through pushbuttons and a joystick, while power management is handled by 12V batteries and a buck converter, with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Motor Controller

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of ESP 32 BT BOT: A project utilizing Motor Controller in a practical application
ESP32 and L298N Motor Driver Controlled Battery-Powered Robotic Car
This circuit is a motor control system powered by a 12V battery, utilizing an L298N motor driver to control four DC gearmotors. An ESP32 microcontroller is used to send control signals to the motor driver, enabling precise control of the motors for applications such as a robotic vehicle.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of FYP CIRCUIT DIAGRAM: A project utilizing Motor Controller in a practical application
RP2040 Zero-Based Battery-Powered Motor Control System with LCD Display
This circuit is a motor control system using an rp2040 microcontroller to interface with a 16x2 I2C LCD, a keypad, and a potentiometer for user input. It controls a DC motor via an L298N motor driver and monitors current using a 5A current sensor, with additional components like an RC and an EML for extended functionality.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IOT based Trash Collecting Vessel: A project utilizing Motor Controller in a practical application
ESP8266 Controlled Robotics Platform with GPS, IR, and GSM Features
This is a microcontroller-based control system designed for a mobile robotic platform with environmental sensing, location tracking, and GSM communication capabilities. It includes motor control for actuation, various sensors for data acquisition, and a battery for power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Wheelchair: A project utilizing Motor Controller in a practical application
Arduino Mega 2560-Controlled Robotic Actuators with Joystick and Pushbutton Interface
This is a motor control system featuring an Arduino Mega 2560 microcontroller that interfaces with L298N and BTS7960 motor drivers to control multiple DC motors and actuators. User inputs are provided through pushbuttons and a joystick, while power management is handled by 12V batteries and a buck converter, with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Robotics: Controlling the movement of robot wheels or arms.
  • Automation: Driving conveyor belts or automated systems.
  • Remote-controlled vehicles: Managing speed and direction.
  • DIY projects: Building motorized systems for hobbyist applications.

Technical Specifications

The following table outlines the key technical details of the FEETECH 2CH Motor Controller:

Specification Value
Manufacturer FEETECH
Part ID 2CH-motor-controller
Number of Channels 2
Input Voltage Range 6V to 24V
Maximum Output Current 10A per channel
Control Interface PWM (Pulse Width Modulation)
Logic Voltage 3.3V or 5V compatible
Operating Temperature -20°C to 85°C
Dimensions 60mm x 40mm x 15mm
Weight 30g

Pin Configuration and Descriptions

The motor controller has the following pin layout:

Pin Name Type Description
VIN Power Input Connect to the positive terminal of the power supply (6V to 24V).
GND Power Ground Connect to the ground terminal of the power supply.
M1+ Motor Output Positive terminal for Motor 1.
M1- Motor Output Negative terminal for Motor 1.
M2+ Motor Output Positive terminal for Motor 2.
M2- Motor Output Negative terminal for Motor 2.
PWM1 Control Input PWM signal input for Motor 1 speed control.
DIR1 Control Input Direction control input for Motor 1 (HIGH for forward, LOW for reverse).
PWM2 Control Input PWM signal input for Motor 2 speed control.
DIR2 Control Input Direction control input for Motor 2 (HIGH for forward, LOW for reverse).
EN Control Input Enable pin for the motor controller (HIGH to enable, LOW to disable).

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VIN and GND pins to a power source within the specified voltage range (6V to 24V).
  2. Motor Connections: Attach the motors to the M1+/M1- and M2+/M2- terminals.
  3. Control Signals: Use a microcontroller (e.g., Arduino UNO) to send PWM signals to the PWM1 and PWM2 pins for speed control. Use the DIR1 and DIR2 pins to set the direction of each motor.
  4. Enable the Controller: Set the EN pin HIGH to activate the motor controller.

Important Considerations and Best Practices

  • Ensure the power supply voltage matches the motor's operating voltage to avoid damage.
  • Use appropriate heat dissipation methods if operating at high currents for extended periods.
  • Add a flyback diode across the motor terminals to protect the controller from voltage spikes.
  • Verify that the PWM signal frequency is compatible with the motor controller (typically 1kHz to 20kHz).

Example Code for Arduino UNO

Below is an example Arduino sketch to control two motors using the FEETECH 2CH Motor Controller:

// Define motor control pins
const int EN_PIN = 8;      // Enable pin
const int PWM1_PIN = 9;    // PWM pin for Motor 1
const int DIR1_PIN = 7;    // Direction pin for Motor 1
const int PWM2_PIN = 10;   // PWM pin for Motor 2
const int DIR2_PIN = 6;    // Direction pin for Motor 2

void setup() {
  // Set pin modes
  pinMode(EN_PIN, OUTPUT);
  pinMode(PWM1_PIN, OUTPUT);
  pinMode(DIR1_PIN, OUTPUT);
  pinMode(PWM2_PIN, OUTPUT);
  pinMode(DIR2_PIN, OUTPUT);

  // Enable the motor controller
  digitalWrite(EN_PIN, HIGH);
}

void loop() {
  // Motor 1: Forward at 50% speed
  digitalWrite(DIR1_PIN, HIGH);  // Set direction to forward
  analogWrite(PWM1_PIN, 128);    // Set speed (128 = 50% duty cycle)

  // Motor 2: Reverse at 75% speed
  digitalWrite(DIR2_PIN, LOW);   // Set direction to reverse
  analogWrite(PWM2_PIN, 192);    // Set speed (192 = 75% duty cycle)

  delay(2000);  // Run motors for 2 seconds

  // Stop both motors
  analogWrite(PWM1_PIN, 0);      // Stop Motor 1
  analogWrite(PWM2_PIN, 0);      // Stop Motor 2

  delay(2000);  // Wait for 2 seconds before repeating
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors Not Running:

    • Ensure the EN pin is set HIGH to enable the motor controller.
    • Verify that the power supply voltage is within the specified range.
    • Check the motor connections and ensure they are secure.
  2. Motor Running in the Wrong Direction:

    • Reverse the logic level on the DIR1 or DIR2 pin.
    • Swap the motor's M+ and M- connections.
  3. Overheating:

    • Ensure the current draw of the motors does not exceed 10A per channel.
    • Use a heatsink or cooling fan if operating at high currents.
  4. PWM Signal Not Working:

    • Verify that the PWM signal frequency is within the supported range (1kHz to 20kHz).
    • Check the microcontroller's PWM pin configuration.

FAQs

Q: Can I use this motor controller with a 3.3V logic microcontroller?
A: Yes, the controller is compatible with both 3.3V and 5V logic levels.

Q: What type of motors can I use with this controller?
A: The controller is designed for brushed DC motors with a voltage range of 6V to 24V.

Q: How do I control the speed of the motors?
A: Use a PWM signal on the PWM1 and PWM2 pins to adjust the motor speed. The duty cycle of the PWM signal determines the speed.

Q: Can I control only one motor with this controller?
A: Yes, you can use only one channel if needed. Leave the unused channel's pins unconnected.

By following this documentation, you can effectively integrate the FEETECH 2CH Motor Controller into your projects for precise motor control.