Problema con alimentazione con Batteria da 9 Volt

Ciao a tutti, ho creato questo topic perchè ho un problema, Io sto cercando di creare un robottino controllato da una scheda Arduino Uno Rev 3, e si muove grazie a due micro servimotori che ruotano di 180 gradi, fino a quando lo alimentavo da usb andava alla perfezione, fino a quando ho deciso di alimentarlo da una Batteria da 9 volt, collegandola all' apposito adattore per breadboard e connettendo il cavo rosso al pin "vin" e il cavo nero al secondo pin "gnd", all'inizio andava bene fino a quando dopo 20 secondi inizia a riavviarsi.
Lo sketch del robot è questo:

#include <Servo.h>
Servo DX;
Servo SX;
int dspin = 11;
int sensibility = 7; // Sensibilità degli ostacoli 0 = nulla 12 = alta
int sspin = 10;
int prevBrightness;
int startValue;
int op;
int next;
void setup(){
  pinMode(13, OUTPUT);
  // Incominicia qui il setup
     //Calibrazione dei sensori
     startValue = analogRead(A0);
     prevBrightness = startValue;
  Serial.begin(9600);
  DX.attach(dspin);
  SX.attach(sspin);
  DX.write(0);
  SX.write(0);
  // Finisce qui il setup
  digitalWrite(13, HIGH);
}
void loop(){
  next = analogRead(A0);
  if (next - sensibility < prevBrightness)
  {
    op = op + 1;
    indietro();
  }
  else
  {
  op = 0;
  giraSX();
  delay(1000);
  indietro();
  delay(1000);
  giraDX();
  delay(1000);
  indietro();
  delay(1000);
  avanti();
  delay(1000);
  indietro();
  delay(1000);
  }
}
static void giraSX()
{
  Serial.println("SX");
  DX.write(180);
  SX.write(0);
}
static void giraDX()
{
  Serial.println("DX");
  DX.write(0);
  SX.write(180);
}
static void avanti()
{
  Serial.println("AV");
  DX.write(180);
  SX.write(180);
}
static void indietro()
{
  Serial.println("IN");
  DX.write(0);
  SX.write(0);
}
static void customDir(int dxoooo, int sxoooo)
{
  DX.write(dxoooo);
  SX.write(sxoooo);
}

e il circuito su breadboard è questo:

Spero di essere stato chiaro a spiegare il mio problema.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Prova ad alimentare tutto il circuito con la batteria, mentre Arduino lo alimenti da USB. Metti il GND in comune.
Vedi se così funziona. Di solito io uso 2 batterie, una per Arduino e una per i motori/servo (con GND in comune).
Inoltre per Arduino collego la batteria non su VIN ma preferisco usare il connettore nero tramite jack.
Tipo questo: ![](http://i.ebayimg.com/00/s/MTMyWDE2MA==/$T2eC16NHJGwFFZR(uhsJBR7WcWu,uQ~~60_35.JPG)

Il codice devi racchiuderlo nei tab code, vedi sezione 7 del regolamento, spiega bene come fare.

Ok, adesso farò la presentazione sul forum. Comunque preferivo non usare il jack per alimentazione per problemi di spazio, adesso il robot è grande 15 cm x 15 con Arduino posizionato sotto la breadboard, aggiungendo il jack si estenderebbe a 20 - 22 cm.

Una batteria da 9V può erogare al massimo 200mA continui e per poco tempo, mentre la USB a 5V può erogare sino a 500mA.
Se a questo aggiungi la caduta di tensione del regolatore interno, l'assorbimento di Arduino e l'assorbimento dei due servo, comprendi bene perché dopo 20 secondi non funziona più.
Per superare il problema e contenere il peso, potresti usare un pacco di 6 batterie alcaline da 1.5V in serie oppure 6 NiMH ricaricabili da 1.2V.