I was reading this tutorial and I was confused on how I would control a motor with a 9v battery while powering my arduino with just the USB cable plugged in.
The USB connection provides 5V or 3.3V power for the Arduino. The 9V battery provides power to the H-bridge, which drives the motor. The connection between the two sources is made with the H-bridge chip using transistor driver circuits.
This is a basic H-bridge:
V+ is 9V. The P-channel FETs require ~9V gate drivers to turn off, while the N-channel ones may only require a 5V signal to turn on. In reality, then both likely have similar transistor driver circuits, both of which only require 5V inputs, which the Arduino provides, to fully react.
The parts indicated in the tutorial, SN754410 or L293, are half H-bridges and use BJTs, otherwise known as push-pull drivers. They only have the connection on one side of the classic H-bridge (one NPN, one PNP).
If you have problems with that motor interface just buy one of these kits, which uses two L293D chips. I recently got one, it was very easy to assemble and works very well.