Für diese Anwendung wird idR. eine H-Brücke verwendet. Gibt es auch schon häufig als ICs, L298 wäre zB ein Baustein mit 2 H-Brücken, eigentlich für Schrittmotoren gedacht, lässt sich aber auch mit normalen Motoren verwenden. An einen solchen Baustein bekommst du dann 2 Motoren. Jede Brücke hat 2 digitale Eingänge, sind beide Zustände gleich passiert nichts, sind beide unterschiedlich liegt je nachdem die Motorspannung an den Ausgängen in einer anderen Richtung an. Meinetwegen In1=High und In2=Low, dann wäre Out1=+Vs und Out2=Gnd, ansonsten andersherum. Wenn du nun vor meinetwegen bei In2 das invertierte Signal von In1 an und In4 das invertierte von In3 anlegst und jeweils dann eine PWM anlegst, kannst du den Motor in Geschwindigkeit und Richtung steuern. Das würde dann so aussehen:
Tastverhältnis 50%: Stillstand
Tastverhältnis 0%: Volle Power links/rechts (je nach Anschluss)
Tastverhältnis 100%: Volle Power rechts/links (also die andere Richtung)
Und je nach Zwischenstufe lässt sich das auch feiner einstellen.
Einfach mal nach H-Brücke, H-Bride, Motortreiber oder sowas suchen, da dürftest einiges finden.