The Yellow Geared Motor with Encoder (Manufacturer Part ID: FIT0450) by DFRobot Accessories is a compact and versatile motor designed for robotics and automation applications. It combines a gear mechanism for torque amplification and an encoder for precise position and speed feedback. This motor is ideal for projects requiring controlled motion, such as robotic arms, wheeled robots, and conveyor systems.
Below are the key technical details of the Yellow Geared Motor with Encoder:
Parameter | Value |
---|---|
Operating Voltage | 3V - 6V DC |
Rated Voltage | 6V DC |
No-Load Speed | 150 RPM (at 6V) |
Stall Torque | 1.5 kg·cm (at 6V) |
Stall Current | 0.8 A (at 6V) |
Gear Ratio | 1:48 |
Encoder Resolution | 11 pulses per revolution (PPR) |
Shaft Diameter | 5.5 mm |
Motor Dimensions | 70 mm x 22 mm x 18 mm |
Weight | 45 g |
The motor comes with a 4-pin connector for the encoder and two terminals for the motor power. Below is the pinout:
Terminal | Description |
---|---|
+ |
Positive motor terminal |
- |
Negative motor terminal |
Pin | Wire Color | Description |
---|---|---|
VCC |
Red | Power supply for the encoder (3.3V-5V) |
GND |
Black | Ground |
A |
Yellow | Encoder output channel A |
B |
Green | Encoder output channel B |
VCC
and GND
pins of the encoder to a 3.3V or 5V power source.A
and B
pins to the digital input pins of a microcontroller (e.g., Arduino UNO) to read encoder signals.Below is an example of how to connect and use the motor with an Arduino UNO to read encoder signals and control the motor:
VCC
to Arduino 5V
GND
to Arduino GND
A
to Arduino digital pin 2
B
to Arduino digital pin 3
// Define encoder pins
const int encoderPinA = 2; // Channel A connected to digital pin 2
const int encoderPinB = 3; // Channel B connected to digital pin 3
volatile int encoderCount = 0; // Variable to store encoder count
void setup() {
pinMode(encoderPinA, INPUT); // Set encoder pin A as input
pinMode(encoderPinB, INPUT); // Set encoder pin B as input
// Attach interrupt to encoder pin A
attachInterrupt(digitalPinToInterrupt(encoderPinA), encoderISR, CHANGE);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
// Print the encoder count to the Serial Monitor
Serial.print("Encoder Count: ");
Serial.println(encoderCount);
delay(100); // Delay for readability
}
// Interrupt Service Routine (ISR) for encoder
void encoderISR() {
// Read the state of channel B
int stateB = digitalRead(encoderPinB);
// Determine direction based on channel B state
if (stateB == HIGH) {
encoderCount++; // Increment count for forward rotation
} else {
encoderCount--; // Decrement count for reverse rotation
}
}
Motor Not Spinning:
Encoder Not Providing Signals:
VCC
and GND
are connected properly, and check the connections to the microcontroller.Unstable Encoder Readings:
Motor Overheating:
Q: Can I use this motor with a 12V power supply?
A: No, the motor is rated for a maximum of 6V. Using a higher voltage may damage the motor.
Q: How do I calculate the motor's speed using the encoder?
A: Measure the time between encoder pulses and use the gear ratio and encoder resolution to calculate the speed.
Q: Can I use this motor without the encoder?
A: Yes, the motor can be used without the encoder for simple applications where position or speed feedback is not required.