Supporto su servo motore

Salve a tutti,

da un po di tempo desideravo avvicinarmi alla robotica e finalmente con arduino sto realizzando il mio sogno.

Dopo vari studi e letture di diversi libri sull'argomento ho iniziato alla realizzazione di un braccio robotico con l'ausilio di alcuni servo.

Infatti ho acquistato dalla germania un kit di servo motori tower pro MG945R e mi sto accingendo al loro testing.

Ho notato un comportamento anomalo e per descriverlo meglio ho realizzato un video su youtube

Per il testing dei motori ho usato il seguente skech:

#include <Servo.h>
 
Servo myservo;  // create servo object
 
int grado = 0;
int minGrad = 0;
int maxGrad = 180;
int pinServo = 10;
int prev = A1;
int next = A0;
 
void setup()
{
  myservo.attach( pinServo );
  myservo.write( grado );
 
  pinMode( prev, INPUT );
  pinMode( next, INPUT );
}
 
void loop()
{
  if ( analogRead( prev ) > 1000 ) { grado--; }
  if ( analogRead( next ) > 1000 ) { grado++; }
 
  if ( grado > maxGrad ) { grado = maxGrad; }
  if ( grado < minGrad ) { grado = minGrad; }
 
  myservo.write( grado );
  delay(15);
}

In pratica un bottone incrementa l'angolo del servo mentre l'altro lo decrementa.

Il circuito e arduino sono alimentati da un alimentatore esterno con i seguenti valori: 5V e l'amperaggio massimo erogabile è 5A.

Ho notato che alimentando il circuito, arduino si riavvi continuamente provocando il problema al servo.

Potete darmi qualche consiglio.

Grazie mille.

Il servo da te utilizzato è piuttosto potente e richiede una alimentazione adeguata.

E' evidente che il tuo alimentatore non supporta lo spunto di corrente richiesto (2A per servo): la tensione sia abbassa un po' e quindi Arduino si resetta.

Ti consiglio di separare le due alimentazioni: usa pure l'alimentatore in tuo possesso per i servo, ma per Arduino usa il classico alimentatore da 9-12V.

Anche i collegamenti su bread board non supportano alte correnti: evita di far passare le alimentazioni dei servo su si essa.

Grazie per la spiegazione,

domani provo a separare le alimentazioni e spostare i collegamenti dei servo su connessioni dirette.