Geared DC Motor with Magnetic Encoder Outputs - 7 VDC 1:20 Ratio

Product ID: 4416
Qty Discount
1-9 $13.50
10-99 $12.15
100+ $10.80


The first step in a robotics project is to get a motor spinning. Once you've done that, you quickly learn that not all motors go the same speed, even if they are the same part number! There are always variations that relate to voltage, environment, and manufacturing changes. So, the second step is to figure out how fast it's going! Turns out that's not so easy, but the best way to get started is to add an encoder wheel and an optical or magnetic counter. As the motor turns, the attached encoder wheel spins, causing the counter to detect each passing spoke, and that lets your microcontroller count and determine speed.

If you want to do one better, add a second counter, and now you can tell direction as well as speed! All this wiring is kind of a pain, so that's why this motor is really nice! It has a magnetic wheel and two hall effect sensors already attached. Using this motor is a breeze, and it's a nice strong motor as well

Provide 7V DC nominal to the brown and yellow wires - these connect to your motor driver and can be PWM'd for speed adjustment and direction by using an H-bridge.

Connect the black wire to your microcontroller ground pin and the red wire to 3-5VDC (we tried both, works fine). Then you can read the hall effect outputs on the white and green wires. We have an example sketch here for Arduino; it can be adapted to other languages - basically, you just want to interrupt on one of the encoder pins, use count the time since the last interrupt, and multiply the count time by 14-counts-per-revolution and the approximate 20.4:1 gear ratio (for extra credit, the exact ratio is 244904:12000 or 30613:1500).

Play video: New Products 12/11/19 Featuring #Adafruit #PyPortal Pynt - #CircuitPython Powered Internet Display!

Technical Details

Revision History:

  • As of May 9, 2023 - The encoder backing section has changed slightly in looks but is functionally the same.


Sometimes the lowest speed of your robot just isn't slow enough.