Problema de alimentacion con Arduino Uno

Estoy haciendo un auto que se controla por Bluetooth. El auto tiene los siguientes componentes:

  1. Placa Arduino Uno.
  2. Shield bluetooth hc-05.
  3. Servomotor.
  4. Integrado L293D(puente H).

El problema es el siguiente:
Cuando establezco la comunicación entre el modulo y un programa hecho en java no surge ningún problema. Pero cuando quiero usar el servo, la placa Arduino se resetea por ende la comunicación con el programa. Esto sucede cuando tengo la placa Arduino conectada a una batería de 9v. Cuando la placa está conectada por usb puedo utilizar el servo sin problema.
Yo pienso que es la alimentación.
¿Cómo puedo solucionarlo? Soy muy novato con esto. Espero haber hecho esta consulta en el lugar correcto ya que es mi primera vez que lo hago. Si no lo es discúlpenme.