Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use Polulu N20 Motor: Examples, Pinouts, and Specs

Image of Polulu N20 MotorDesign with Polulu N20 Motor in Cirkit Designer

Introduction

The Polulu N20 Motor is a small, high-torque DC motor designed for robotics and automation applications. Its compact size and availability in various gear ratios make it a versatile choice for projects requiring precise control of speed and torque. This motor is widely used in robotics, small vehicles, and other applications where space is limited but reliable performance is essential.

Explore Projects Built with Polulu N20 Motor

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 WiFi-Controlled Basket-Carrying Robot with GPS and GSM Notification: A project utilizing Polulu N20 Motor in a practical application
WiFi-Controlled Basket-Carrying Robot with GPS and GSM Notification

This circuit is designed for a 4-wheeled WiFi-controlled car with a basket, which uses an ESP8266 NodeMCU microcontroller for logic control. It features an IR sensor for basket full detection, a GPS module for location tracking, and a GSM module (Sim800l) for sending SMS notifications. The L298N motor driver controls four DC gearmotors for movement, and the system is powered by a Li-ion battery with a 7805 voltage regulator providing stable power to the GSM module.

Open Project in Cirkit Designer
Image of Self-Balancing Scooter with MPU-6050 and STM32 Nucleo: A project utilizing Polulu N20 Motor in a practical application
Self-Balancing Scooter with MPU-6050 and STM32 Nucleo

This circuit is a self-balancing scooter system that uses an MPU-6050 sensor to detect tilt and control two DC motors via PWM motor controllers to maintain balance. The STM32 Nucleo F303RE microcontroller processes the sensor data and adjusts the motor speeds accordingly. Additional components include a potentiometer, LEDs for status indication, and a load cell interface for potential weight measurement.

Open Project in Cirkit Designer

Common Applications

Technical Specifications

Below are the key technical details for the Polulu N20 Motor. Note that specific values may vary depending on the gear ratio and model variant.

General Specifications

Pin Configuration and Descriptions

The Polulu N20 Motor has two terminals for electrical connections. These terminals are not polarized, meaning the motor's direction of rotation depends on the polarity of the applied voltage.

Pin Description
Pin 1 Positive terminal (V+)
Pin 2 Negative terminal (GND)

Usage Instructions

How to Use the Polulu N20 Motor in a Circuit

  1. Power Supply: Connect the motor to a DC power source within the operating voltage range (3V to 12V). A 6V power supply is recommended for optimal performance.
  2. Polarity Control: To control the direction of rotation, reverse the polarity of the voltage applied to the motor terminals.
  3. Motor Driver: For precise control (e.g., speed and direction), use an H-bridge motor driver such as the L298N or L293D. These drivers allow you to interface the motor with microcontrollers like Arduino.
  4. PWM Control: Use Pulse Width Modulation (PWM) to control the motor's speed. This can be achieved by connecting the motor driver to a microcontroller's PWM-capable pin.

Example: Connecting the Polulu N20 Motor to an Arduino UNO

Below is an example of how to control the Polulu N20 Motor using an Arduino UNO and an L298N motor driver.

Circuit Connections

Arduino Code

// Define motor control pins
const int motorPin1 = 9; // IN1 on L298N
const int motorPin2 = 10; // IN2 on L298N
const int enablePin = 5; // ENA on L298N (PWM pin)

void setup() {
  // Set motor control pins as outputs
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(enablePin, OUTPUT);
}

void loop() {
  // Rotate motor forward
  digitalWrite(motorPin1, HIGH); // Set IN1 high
  digitalWrite(motorPin2, LOW);  // Set IN2 low
  analogWrite(enablePin, 128);   // Set speed (0-255)

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

  // Rotate motor backward
  digitalWrite(motorPin1, LOW);  // Set IN1 low
  digitalWrite(motorPin2, HIGH); // Set IN2 high
  analogWrite(enablePin, 128);   // Set speed (0-255)

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

  // Stop motor
  digitalWrite(motorPin1, LOW);  // Set IN1 low
  digitalWrite(motorPin2, LOW);  // Set IN2 low
  analogWrite(enablePin, 0);     // Set speed to 0

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

Important Considerations

Troubleshooting and FAQs

Common Issues

  1. Motor Does Not Spin

    • Cause: Insufficient voltage or loose connections.
    • Solution: Verify the power supply voltage and ensure all connections are secure.
  2. Motor Spins in the Wrong Direction

    • Cause: Incorrect polarity of the applied voltage.
    • Solution: Reverse the connections to the motor terminals.
  3. Motor Overheats

    • Cause: Prolonged operation at high loads or stall conditions.
    • Solution: Reduce the load or allow the motor to cool periodically.
  4. Motor Vibrates but Does Not Rotate

    • Cause: Gearbox damage or obstruction.
    • Solution: Inspect the gearbox for debris or damage and clean/replace as needed.

FAQs