Arduino+servi comportamento strano....

Allora, stavo incominciando a pilotare il mio robot (2 servi+sfera) e sono incappato in comportamenti assai strani di arduino...

Premesso che i collegamenti sono fatti bene, che io faccia muovere uno o tutti e 2 i servi, dopo un pò tutto si ferma... spiego meglio

ho creato il seguente sketch per far muovere il robot avanti->fermo->indietro->fermo in modo tale che ritorni in posizione

#include <Servo.h>

Servo servoS;
Servo servoD;

int posS = 0;
int posD = 0;

void setup()
{
servoS.attach(9);
servoD.attach(8);
}

void loop() {

posD=0;
posS=180;
servoD.write(posD);
servoS.write(posS);
delay(1000);

posD=90;
posS=90;
servoD.write(posD);
servoS.write(posS);
delay(1000);

posD=180;
posS=0;
servoD.write(posD);
servoS.write(posS);
delay(1000);

posD=90;
posS=90;
servoD.write(posD);
servoS.write(posS);
delay(1000);
}

allora, con questo e altri sketch simili, arduino li esegue in loop, e dopo un pò, a random si ferma e non esegue più niente(i servi si fermano) e emettono il ronzio come se gli dessi 90° (cioè fermo)... dopo un pò, quando gli gira riparte con l' esecuzione...

altra cosa con quello sketch, lui lo esegue, e una volta si e una no, al posto di fermare la ruota destra dopo essere andato avanti la lascia girare, non facendo ovviamente tornare il robot in posizione...

SOLUZIONI???

mi sono accorto che l' 8 non ha il pwm... l' ho messo sul 10 e fa comunque lo scherzetto, ma meno...

non capisco comunque perchè ogni tanto si ferma pe ri fatti suoi...

La libreria Servo non usa i PWM; puoi usare 12 Servo su 12 dei 20 pin di Arduino.
Come alimenti i Servo?
Ciao Uwe

si... hai ragione... altrimenti non sarebbe mai dovuto partire quando era nell' altro pin.....

ora sto alimentando tutto con l' usb... e regge, perchè prima usavo un altro servo che assorbiva troppo sotto sforzo, ora ho questi che dovrebbero essere ok...

ma come mai smette di ripetere???

ho risolto il problema del servo che faceva quel cavolo che voleva (servo malfunzionante)

mi rimane il problema, che dopo circa 5min che il servo va su e giù, si blocca, per non ripartire a meno che non faccio il reset della board, o ricarico il programma.... soluzioni???

hai provato di alimentare i Servo con un alimentatore esterno e non dalla USB?
Ciao Uwe

uwefed:
hai provato di alimentare i Servo con un alimentatore esterno e non dalla USB?
Ciao Uwe

eh si... stavo facendo varie prove, e penso che il problema sia l' alimentazione... già passando dall' usb del pc a quella di un carica cell da 1A si vede un pò la differenza...

ma se il 7805 on board butta fuori 500mA, mi conviene prendere un altro 7805 non smd e usare delle batterie unendo le masse dei due circuiti... almeno così non ho problemi di alimentazione...

ora come ora, mi da mille problemi, dato che stavo facendo delle prove con un sensore di contatto, e da i numeri... :frowning:

Una precisazione: l'arduino non monta un 7805.
Non ti conviene alimentare i servi separatamente magari con un pacco batterie dedicato visto che stai facendo un robot?
In questo modo eviti i regolatori di tensione e sfrutti tutta la corrente senza disperderla in calore

Pelletta:
Una precisazione: l'arduino non monta un 7805.
Non ti conviene alimentare i servi separatamente magari con un pacco batterie dedicato visto che stai facendo un robot?
In questo modo eviti i regolatori di tensione e sfrutti tutta la corrente senza disperderla in calore

i servi però posso alimentarli al max a 6V...
che regolatore usa arduino??? quale è la tensione min e max???

Con 5 stilo ricaricabili o con 4 stilo normali hai 6V precisi.
La 2009 usa un MC33269, accetta in ingresso al massimo 20V e eroga 800 mA massimi (datasheet).
Questi sono i valori massimi, quelli consigliati sono 12V in ingresso e 500mA di assorbimento.
Il calore del regolatore dipende non solo dalla differenza tra tensione in ingresso e tensione di uscita ma anche da quanta corrente deve erogare. Nel tuo caso avendo due servi non ne chiederesti poca, valuta bene se usare i regolatori: ad esempio metti che azionando insieme i servomotori hai un picco di 2.5A un solo regolatore non riesce a stargli dietro (neanche un LM78S05)

Pelletta:
Con 5 stilo ricaricabili o con 4 stilo normali hai 6V precisi.
La 2009 usa un MC33269, accetta in ingresso al massimo 20V e eroga 800 mA massimi (datasheet).
Questi sono i valori massimi, quelli consigliati sono 12V in ingresso e 500mA di assorbimento.
Il calore del regolatore dipende non solo dalla differenza tra tensione in ingresso e tensione di uscita ma anche da quanta corrente deve erogare. Nel tuo caso avendo due servi non ne chiederesti poca, valuta bene se usare i regolatori: ad esempio metti che azionando insieme i servomotori hai un picco di 2.5A un solo regolatore non riesce a stargli dietro (neanche un LM78S05)

si, conosco i regolatori...

se deve dare 5V in uscita devo dargli almeno 7V in entrata... a questo punto penso convenga avere 1 pacco per alimentare l' ardu e tutti i sensori, e uno per alimentare i servi...

Certo, è sempre preferibile alimentare i servi a parte.
In questo modo eviti anche dei disturbi generati dai servi (mi è successo in passato con dei led pilotati in pwm)

ok... grazie a tutti...