I've been buying 3 volt dc gearmotors for about three years from China, they've screwed up my order and now my motors are rotating at twice the RPM from 24 to 48. How do I drop the the voltage properly to get the correct RPM for my application ? Shipping them back would be what I would do if it wouldn't cost me $500 back and forth and of course I have deadlines
You don't want to use a resistor to control the speed of a DC motor, because that reduces the torque and the speed becomes dependent on the load. What you need is a pulse width modulator (PWM). I am attaching a drawing of an elegant circuit I designed many years ago that has worked well. The output frequency is around 200 Hz and the duty cycle can be varied from near 0% to near 100%. Be sure to use a LMC555, not a LM555. The drive transistor can be any kind that will handle the motor current. A reverse diode around the motor as shown is a good idea to keep inductive spikes from damaging the transistor.
You can also pick up pre-built PWM circuits online for cheap if you are looking for a quick install.
If the motor is the same as the original except the reduction gear has been changed, the torque is already 1/2 of the original. Some experimentation with resistor values is in order. A starting value for the series resistor can be found by the motor voltage divided by the motor current. For example, if the motor draws 100 mA at 3 V the resistor value to begin with is 3V/100mA = 30 ohms. For safety and reliability the resistor power dissipation rating should be at least equal to 3 volts dropped across the resistor. For example, if the resistor is 30 ohms its dissipation rating should be at least (3^2)/30 = 9/30 = 300 mW. A 1/2 watt resistor would be sufficient.
I know you asked this 2 years ago, but hopefully I can help you or some other person solve this issue on the cheap, with none of the more advanced understanding these other guys seem to have. I had exactly the same problem as the OP. Got all my motors (3v 3amp, 15rpm) from china thru ebay. 4 different suppliers since I kept buying them out. The first batch was perfect. The last three were around 75rpm instead of 15rpm. I have as much electrical engineering knowledge as the average guy who's forgotten nearly everything I learned in high school 20 years ago. Little to none.
The cheap solution I found was to use a Potentiometer. I went to Radioshack with my motor and battery pack and they let me test out resistors and diodes. None of that worked.
They handed me several potentiometers to try to dial down the rpm's and that did the trick. Most were too big for the tiny space I have to work with, but they had a tiny volume control 10K ohm wheel potentiometer. Like the kind you'd find on an older portable radio. (Less than $2 a piece which is great since I have to use up 42 motors to get rid of them.) It's the size of a dime and has 5 pins. That was confusing to me since I know nothing about this stuff, but I just tried turning the wheel all the way in both directions and testing different pin combos with my two wires. This worked! From left to right, pin 1 and pin 4 were the connections that worked for me. Then I dialed down the speed to a crawl. Perfect.
This does reduce your torque significantly, but these motors are over torqued as it is. I'm using them upright to spin about 2 pounds of weight on a 3 inch lazy susan bearing. I created my account here to answer this one question. Hope this helps someone as unfamiliar with electronics as me. Good luck.