PWM frequency shifting
Many micro controllers have a PWM function built into their hardware that can be used to control the speed of motors or be filtered to create an analog output. Unfortunately I find their frequency range to be too high to drive small DC motors with good torque. I believe this is because their inductive reactance increases with frequency. Large motors don't seem to be affected as badly as they have lower inductance values. I found that most hobby servos use a frequency of about 100-200Hz and this gave good torque at low speeds.Unfortunately the hardware of many micros cannot go this low. For example the pic processors used for picaxe chips cannot produce frequencies lower than their clock/1024.
I stand correct, many processors can work at lower PWM frequencies. It may even be possible to do this with picaxe but I cannot test this at this point. For this reason I have modified the PWM circuit I used for my beam bot to translate PWM frequencies.
This is a very simple circuit using a cheap LM324 quad op-amp. Basically it takes the PWM outputs from your microcontroller and converts them to analog outputs using RC filtering. These analog voltages are compared with a triangular wave form at a much lower frequency (about 190Hz) to generate new PWM outputs. The frequency can be adjusted by changing the resistor value of R4 or the capacitor C1.
As Telefox pointed out, since op-amp (d) was not performing a critical function it could also be used for a third channel as shown in the schematic bellow.
Because op-amp (d) is now being used as a comparator there is more load on the output of op-amp(a). I have reduced the value of R4 and increased C1 to help compensate for this.