¿Necesitas específicamente (o quieres) usar una batería de 9V? No son buenas opciones para cosas que estén bajo mucha carga, como motores. No almacenan tanta carga y, por lo tanto, se agotarán muy rápido. Independientemente de lo que hagas, asegúrate de tener capacitores de desacople en el pin de alimentación de cada IC en uso, y tener un par de capacitores de almacenamiento en la alimentación de energía para los motores para ayudar con la demanda inmediata. A veces, cuando un motor se enciende, puede caer lo suficiente la tensión de línea como para que el resto del circuito se reinicie. ¡Esto, por supuesto, es indeseable!
Opción 1 - Baterías Dobles
Podrías usar dos bancos de baterías: una de 9V para el circuito y otra de 3V (2 x 1.5V alcalinas o 3 x 1.2V baterías recargables). Si usas las baterías recargables, ten en cuenta que 3 en serie producirán al menos 3.6V, así que deberías usar un máximo de un 80% de deber ciclo en un controlador de velocidad PWM, para que el voltaje promedio máximo sea alrededor de 3V.
Usar dos bancos de baterías es bastante común en robótica, pero no es ideal ya que tendrás que preocuparte de dos niveles de carga diferentes. Para que todo funcione correctamente, los terminales de tierra de las dos baterías (y cualquier componente de potencia) deberían ser compartidos.
Opción 2 - Regulación de Voltaje para los Motores
Lo más común que se hace en esta situación es regular los 9V a 3V para su uso con los motores. Esto se puede hacer con un regulador lineal, pero sería muy ineficiente ya que la mayor parte de la potencia se desperdiciaría:
Potencia Desperdiciada = (V_Fuente - V_Motor) * (I_Motor(es) + I_Regulador)
Usar un regulador conmutado es una mejor opción, pero aún así va a desperdiciar al menos un 10% de la potencia de la batería.
Opción 3 - Aumentar el Voltaje para el Circuito
Recomendaría usar una fuente de alimentación más pequeña adecuada para los motores (alrededor de 3V DC) y luego aumentar ese nivel de voltaje con un regulador conmutado para alimentar el Arduino y cualquier otro circuito. Se desperdiciará mucha menos potencia porque el circuito estará consumiendo mucha menos corriente que los motores.
Además, es posible que el circuito en sí pueda funcionar con una fuente de voltaje más baja, como 3V DC. El Arduino tiene un regulador de voltaje integrado para crear un nivel estable de 5V para el microcontrolador y otras partes, pero el chip AVR funcionará bien a 3V DC si se omite el regulador integrado. No sé qué otros componentes hay en la placa de Arduino o qué otros circuitos/sensores planeas usar que realmente necesiten esos 5V para funcionar.
Editar: Descuidé el hecho de que esta placa de Arduino basada en AVR está usando un cristal externo de 16MHz que requiere el voltaje más alto (5V) para funcionar. El chip AVR solo funcionará hasta 10MHz con menos de 4.5V.
Opción 4 - Usar Motores de 5V
Si consigues motores diferentes que funcionen con un voltaje más alto, podrías usar un paquete de baterías de 5V (o 4.8V). Con esto, podrías obviar el regulador de voltaje en la placa de Arduino, como mencioné al final de la Opción 3. En realidad, los motores de 3V podrían estar bien con este voltaje de todos modos, siempre y cuando no excedas un ciclo de trabajo PWM del 60% al conducirlos.