[RISOLTO] Servo multipli braccio robotico

Va in una posizione e poi non si muove più

Così come tutti gli altri tranne quello a cui dico di muoversi

Adesso faccio due scommesse

1 se tu per i servo che si muovono da soli fai una servo.read() otterrai sempre lo stesso valore, anche se spegni e riaccendi e ripeti, trovi sempre lo stesso valore per tutti i servo che si muovono da soli

2 le prime prove, quelle che andavano bene, le hai fatte coi servo smontati dal braccio, adesso sono montati

Con la prima hai indovinato...
In effetti il servo.read() di tutti i servo che si muovono da soli da come risultato 93

Con la seconda io i servo li ho provati singolarmente prima di montare il braccio ma poi una volta montato gli ho fatto eseguire un programma in cui facevo muovere tutti i servo contemporaneamente e funzionavano. ma ora che ci penso li ho fatti muovere CONTEMPORANEAMENTE e non SINGOLARMENTE...
Tutto ció utilizzando peró l'alimentazione di Arduino col cavetto USB.

Spiegato tutto

E la risposta sarebbe?..
Potresti darmi anche a me la spiegazione :slight_smile:

Sì...

Una sola cosa da dire:
Quando faccio delle domande non è mai per 'perverso piacere'
Ma perché mi servono delle info

Come sospettavo per i servo inizializzati ma non ancora comandati la libreria li muove al suo valore di default, che evidentemente è 93

E i servo se ne starebbero fermi all'infinito in quella posizione
Se non fosse che quando spegni o comunque de-energizzi il peso del braccio li tira giù

E alla successiva accensione ritornano a 93

Dopo ancora

Ok grazie per la spiegazione, ora è tutto chiaro

Ma mi chiedevo: non esiste allora una libreria per controllare i servo che non abbia questo problema?
Un modo magari per risolvere questo problema da software?
Grazie

Non credo

All'accensione i servo possono essere in qualunque posizione, e non vi è modo per conoscerla

Quindi il primo movimento, quando gli dai la prima posizione, è fatto alla cieca

Da qui consegue tutto il resto

O metti a mano (e ce li tieni) tutti gli assi a 93 prima di dare corrente

Oppure il primo movimento è fatto alla cieca, e se sbatti.... sbatti!

Ok forse ho trovato il modo e sembrerebbe funzionare :

Se nel setup dico a ogni servo a che posizione andare e nel loop ne faccio muovere uno o anche più di uno, gli altri rimangono alla posizione indicata nel setup in modo che non vadano a sbattere contro qualcosa. Basta trovare una posizione ragionevole da dare a ogni servo nel setup...

Grazie comunque