

The N20 motor with a Hall sensor is a compact, high-performance DC motor equipped with an integrated Hall-effect sensor for precise speed and position feedback. This motor is widely used in robotics, automation systems, and small-scale mechatronics projects due to its small size, efficiency, and ability to provide real-time feedback.








| Parameter | Value |
|---|---|
| Operating Voltage | 3V to 12V |
| Rated Voltage | 6V |
| No-Load Speed | 30 to 1000 RPM (varies by model) |
| Stall Current | ~1.2A (at 6V) |
| Gear Ratio | 1:10 to 1:1000 (varies by model) |
| Shaft Diameter | 3mm |
| Motor Dimensions | 12mm x 10mm x 15mm |
| Parameter | Value |
|---|---|
| Sensor Type | Hall-effect |
| Output Signal | Digital (Square Wave) |
| Operating Voltage | 3.3V to 5V |
| Pulses per Revolution | 2 pulses per motor shaft revolution |
| Output Frequency | Depends on motor speed |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | Motor + | Positive terminal of the motor |
| 2 | Motor - | Negative terminal of the motor |
| 3 | VCC | Power supply for the Hall sensor (3.3V-5V) |
| 4 | GND | Ground for the Hall sensor |
| 5 | Signal | Digital output signal from the Hall sensor |
Motor + and Motor - pins to a motor driver or power supply. Ensure the voltage matches the motor's rated voltage.VCC pin to a 3.3V or 5V power source and the GND pin to the ground.Signal pin to a microcontroller's digital input pin to read the Hall sensor's output.Signal pin to an Arduino UNO's digital pin (e.g., D2).The following code demonstrates how to read the Hall sensor's output and calculate the motor's speed in RPM.
// Define pin for Hall sensor signal
const int hallSensorPin = 2;
// Variables to store pulse count and time
volatile int pulseCount = 0;
unsigned long lastTime = 0;
float rpm = 0;
// Interrupt service routine for counting pulses
void countPulses() {
pulseCount++;
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Set Hall sensor pin as input
pinMode(hallSensorPin, INPUT);
// Attach interrupt to the Hall sensor pin
attachInterrupt(digitalPinToInterrupt(hallSensorPin), countPulses, RISING);
// Initialize timing
lastTime = millis();
}
void loop() {
// Calculate RPM every second
unsigned long currentTime = millis();
if (currentTime - lastTime >= 1000) {
// Calculate RPM: (pulses per second) * (60 seconds per minute) / (pulses per revolution)
rpm = (pulseCount * 60.0) / 2.0; // 2 pulses per revolution
pulseCount = 0; // Reset pulse count
lastTime = currentTime; // Update time
// Print RPM to serial monitor
Serial.print("Motor RPM: ");
Serial.println(rpm);
}
}
Motor Not Spinning
No Signal from Hall Sensor
VCC and GND pins are properly connected and the Signal pin is connected to the microcontroller.Inaccurate RPM Readings
Can the N20 motor run without the Hall sensor?
What is the maximum RPM the Hall sensor can measure?
Can I use the Hall sensor with a 3.3V microcontroller?
By following this documentation, you can effectively integrate the N20 motor with Hall sensor into your projects for precise motor control and feedback.