Servomotore provoca disconnessione arduino

Salve, ho cercato parecchio sul forum (italiano) e non credo che qualcuno abbia avuto il mio stesso problema. il punto è questo: collego il mio arduino, scrivo il programma per pilotare un servomotore (farlo andare da 0 a 180 con intervalli di un sec) ma quando si avvia il tutto , inizio a sentire dal pc il suono della disconnessione della periferica (arduino) e lo fa costantemente, non credo che il collegamento sia sbagliato visto che ha più o meno gli stessi colori [ collegamento: arancio->pinInteressato, rosso->5v, marrone->gnd ] … il programma che utilizzo è il seguente :

#include <Servo.h>
Servo servo;
boolean statos = false;
void setup()
{
  servo.attach(3);
}
void loop()
{
if (statos == false)
  {
    muoviservo(160);
  }
  else if ( statos == true)
  {
    muoviservo(20);
  }
}
void muoviservo (int v)
{
  delay(1000);
  servo.write(v);  
  statos = !statos ; 
  delay(15);
 
}

… potete dirmi dove sbaglio ? o dov’è il problema ?

Il Servo assorbe troppa corrente e la USB va in protezione o l'arduino si resetta perché va giú la tensione. Alimenta il servo con un'alimentatore separato e collega il negativo con la massa di Arduino. Ciao Uwe

uwefed: Il Servo assorbe troppa corrente e la USB va in protezione o l'arduino si resetta perché va giú la tensione. Alimenta il servo con un'alimentatore separato e collega il negativo con la massa di Arduino. Ciao Uwe

Scusate se mi intrometto, sono interessato ma non mi è chiaro. Uwe, deve collegare il vcc e il gnd del servo ad alimentazione esterna ma anche il gnd di questa alimentazione con massa di Arduino?

nid69ita:

uwefed: Il Servo assorbe troppa corrente e la USB va in protezione o l'arduino si resetta perché va giú la tensione. Alimenta il servo con un'alimentatore separato e collega il negativo con la massa di Arduino. Ciao Uwe

Scusate se mi intrometto, sono interessato ma non mi è chiaro. Uwe, deve collegare il vcc e il gnd del servo ad alimentazione esterna ma anche il gnd di questa alimentazione con massa di Arduino?

sì, la massa deve essere sempre comune.

E per capire meglio: se non metti massa in comune cosa può succedere? Anomalo funzionamento o peggio?

nid69ita: E per capire meglio: se non metti massa in comune cosa può succedere? Anomalo funzionamento o peggio?

Con un servo molto probabilmente non si posiziona come vuoi. Se fosse una seriale non ti arriverebbero i dati corretti, ecc..

cmq non ti costa molto, basta collegare il gnd dell'arduino a quello del servo.

Figurati, non costa nulla, anzi. Mi ero espresso male. La paura di fondo, espressa male nella domanda, era che il non collegare la massa in comune potesse portare a rottura di qualcosa.

nid69ita: Scusate se mi intrometto, sono interessato ma non mi è chiaro. Uwe, deve collegare il vcc e il gnd del servo ad alimentazione esterna ma anche il gnd di questa alimentazione con massa di Arduino?

Sí Perché il segnale sul pin di pilotaggio funzioni serve una massa comune.

Se non colleghi le masse non si rompe niente ma probabilmente non funziona.

Per misurare una tensione serve un potenziale di riferimento. Tu dirrai che é un segnale digitale perché misurarlo? Anche i segnali digitali vengono "misurati" per definire che un certo livello di tensione é HIGH o LOW. Arduino, alimentato con 5V, legge sotto 1,5V LOW e sopra 3V HIGH. Non so dire quali sono i livelli di riferimento del servo ma sará simile.

Ciao Uwe

Scusate ancora, ma sono un programmatore e non un elettronico. Non vorrei farvi perdere tempo, ma non capisco ancora una cosa. Logicamente il segnale di controllo DEVE avere un riferimento al gnd, ma al servo non dò già il gnd dall'alimentazione esterna? Perchè collegare tra loro le masse ? Se la spiegazione è lunga, mi potete dare un link dove venga spiegato (anche in inglese) il motivo ?

nid69ita: ma al servo non dò già il gnd dall'alimentazione esterna?

Il riferimento è il GND di Arduino, se non lo colleghi a quello della alimentazione del servo come fa questo a "leggere" il segnale se non sa a cosa è riferito.

Non vorrei che passase il messagio che se non collego il GND non succede nulla sempre e comunque e con qualsiasi combinazione di Hardware, stiamo parlando solo di arduino e una scheda non di altre cose.

Tanto per sapere, può capitare di avere a che fare con circuiti misti potenza/logica, con il GND in comune, se stacco il GND di potenza e alla scheda di potenza arriva il GND di segnale, può succedere tutto o niente, se l'assorbimento della scheda di potenza e di 10A la pista GND di segnale reggerà al massimo 0.5 A e ovvio che il problema c'è.

Comunque come dice Astro, il segnale di un pin di Arduino è riferito al riferimento GND, se la fonte di alimentazione del servo è diversa da quella di arduino per avere un punto in comune così che entrambe si riferiscano ad un nodo GND devo unire i GND delle due alimentazione.

Ciao.

Ok, ho trovato il mio problema... il mio servo motore funziona benissimo con questo schema... grazie a tutti :-)

chiaramente invece delle 2 batterie da 1.5 V dobbiamo alimentare il tutto con 5V ..

MauroTec: se stacco il GND di potenza e alla scheda di potenza arriva il GND di segnale, può succedere tutto o niente,

Non succede assolutamente nulla perché la parte di potenza non può prelevare corrente dal GND della parte logica, se stacchi il suo GND, e non ci sono altri punti in comune tra le due alimentazioni, semplicemente la parte di potenza non è alimentata. Il gnd non serve, se non come schermatura, solo nel caso di linee differenziali dove la misura avviene tra i due segnali stessi e non rispetto a gnd, comunque anche in questo caso c'è sempre da fare una serie di considerazioni a seconda di come è fatto l'impianto, le cose non sempre sono semplici :)

Quindi lo schema di Barletta non mi sembra giusto, manca il GND di arduino in comune al gnd alimentazione o sbaglio?

nid69ita: Quindi lo schema di Barletta non mi sembra giusto, manca il GND di arduino in comune al gnd alimentazione o sbaglio?

Il gnd comune c'è, passa tramite la breadboard, è il filo blu che parte dall'arduino, ed è sulla stessa striscia di ground comune alla batteria ed al servo.

Minchi@ se sono cecato!!! :astonished: Vero, c'e' non lo avevo visto!