i want to be able to switch the direction the motor is running too... so my question is there a way to change current with out having to use two digital outputs on microcontroller, and having two use two different transistors going to the power source per motor
An H-bridge is an H-bridge is an H-bridge (but not a rose), so no
, but you can
control both the direction and speed of a motor by a single (signal) line (+ power and ground). You need a motor controller which is the functional equivalent of a servo, changing speed instead of angle.
If you just don't wanna shell out for 4 power MOSFETs, a single and relay will go a long way (with the associated "glue" circuitry) and it will need 2 signal lines, one for PWM and one for direction. This circuit
shows how that can be done.
Some people (a lot of them in fact) dislikes the relay, but it keeps you from snuffing 4 power MOSFETs in a single moment of distraction while writing your code and you shouldn't ever go directly from forward to reverse at any speed above idle anyway, unless your bridge are designed for serious over voltage (and current), as power braking will give.
That aside, a relay makes the circuit much simpler as well (it can be simpler than the one in the schematic if it isn't going to handle much power).