The SMC02B is a great little motor controller, but unfortunately it doesn’t have any feedback mechanism, so you can’t do precision speed control (i.e. this command=this many RPM) with it alone.
You can think of it sort of like driving a car with your eyes closed (on a HUGE empty parking lot lets say, for safety’s sake). You would be able to drive in forward or reverse, and come to a stop by hitting the brakes, but you wouldn’t have precise control over your speed. You could go a little faster by pushing down on the gas, or a little slower by letting up. Holding the gas pedal steady wouldn’t guarantee that you would keep going at the same speed, since the car might have to work harder to go up a hill. Finally, if you hopped in another car and held the gas pedal down in exactly the same position you could end up going a totally different speed.
This motor controller simply modulates the output voltage sent to your motor, as a fraction of the input voltage (like how far you press the gas pedal down). Ideally, the voltage you apply to a motor is proportional to the torque it outputs, not the speed, so the motor speed for a given voltage will depend on the load the motor is pushing against (driving uphill for example). Furthermore, every motor is different, and even two motors of the exact same model will perform slightly differently as they wear over time. The final kicker is that the controller outputs a fraction of the input voltage, so if you’re using a battery for power, the motor torque for a given command will decrease as the battery voltage drops. Yikes!
If you need to do precise speed control you’ll need some sort of feedback mechanism, like opening your eyes while driving your car and looking at the road and the speedometer. Cruise control is actually a great example of this. It doesn’t just hold the throttle steady, it looks at the wheel RPMs, and if they drop off it opens the throttle a little more. On some older cars with cruise control you can actually feel the gas pedal move a little as it works to maintain your speed.
Now, all that being said, you can do a lot with “open loop” (non feedback) control. If your voltage source is pretty constant, and your motors are only lightly loaded, you can establish a relationship between speed commands and motor RPMs. If you need precision speed control though, you need a feedback speed controller (Pololu makes some), your own feedback speed control system, or a different kind of motor all together (a stepper motor for example).
-Adam