Grosso problema con i servo

Salve a tutti,
sono un neofito di arduino (meno di un mese) e vorrei utilizzarlo per un piccolo progetto con dei servi normalmente utilizzati con i radiocomandi.
Premetto che prima di aprire questo topic ho fatto un mare di ricerche ma non ne sono venuto a capo.
Ok, detto ciò, ho bisogno di una mano per risolvere un grosso problema: non riesco a far funzionare il servo.
Per agevolare il compito a coloro che mi aiuteranno elenco qui sotto il materiale e tutto quello che ho già provato.

Materiale:

Scheda arduino: arduino uno (compatibile, per intenderci è identica all'originale ma manca la scritta arduino, la scritta uno invece c'è).

Servi utilizzati: n°4 Tower Pro SG90, Micro servo 9g (nuovi), e un'altro servo che avevo già in casa.

Interfaccia ide scaricata dal sito arduino.

Difetto: il servo non si muove, non ronza o vibra tranne per un attimo quando lo alimento a 5V.
Premessa: ho modificato leggermente il software per poter vedere visualizzati i vari step dello stesso nell'interfaccia seriale dell'ide e per compiere all'infinito il movimento avanti e indietro. Il programma gira regolarmente e visualizza continuamente i valori crescendo da 0 a 180 e poi decrescendo da 180 a 0.

Prove effettuate, tutte con esito negativo, e lo stesso identico per tutte:

  1. impostato il movimento con un max di 90 gradi.
  2. ho aumentato il tempo tra uno step e l'altro da 15ms fino a 200ms.
  3. ho collegato l'sg90 direttamente alla scheda madre.
  4. ho collegato l'sg90 ad un'alimentazione a 5V esterna e messo il gnd (massa) in comune con la scheda madre.
  5. ho collegato e testato anche l'altro servo.
  6. ho provato a utilizzare pin diversi della scheda madre

Poi alla fine ho testato tutti i pin della scheda madre con un led impostandoli come out (perfettamente funzionanti) e anche testato i servi i con la propria radio, perfetti.

Ne ho fatte anche altre, ma ora mi sfuggono..
Cmq sono arrivato alla frutta... qualcuno può illuminarmi?
Grz

Come alimenti i Servo? Tramite Arduino e la USB? Non puó dare abbastanza corrente per tutti quei Servo. Devi alimentarli con un alimentatore da ca 3-4A e 5V aparte (collegare il polo negativo a GND di Arduino).
Ciao Uwe

Che programma stai utilizzando?
Ciao,
P.

Tutte le prove le ho fatte con un solo servo collegato, ed ho provato alimentato sia diretto che da un'alimentatore esterno. nulla di fatto, non si muove. Il programma è quello degli esempi della libreria nell'interfacci ide.

Oggi ho fatto altre due prove:

  1. ho utilizzato una resistenza da 10k e messa tra il segnale del servo e la massa, per polarizzare l'out.
  2. ho cambiato pc.
  3. ho utilizzato una diversa libreria al posto della standard, la "VarSpeedServo" e il suo software di esempio.
  4. ho utilizzato il pin 13, quello che ha integrato il led per il monitor dell'out: lanciando il programma il led cambia la luminosità, abbassandosi notevolmente. Ne deduco che sia per il treno di impulsi che arrivano al pin.

....continua a non dare segni di vita

Domani faccio un'altro tentativo; un mio amico ha una scheda arduino uno originale....

Dovresti fare una prova elementare.
Stacca Arduino da tutte le periferiche. Prendi UN SOLO servo SG90. Collega il filo marrone al GND di Arduino, collega il filo rosso al +5V di Arduino, collega il filo giallo al pin 9 di Arduino. Collega Arduino al PC via USB. Carica lo sketch da File->Esempi->Servo->Sweep sull'IDE e caricalo sull'Arduino. Se non funziona, stacca il filo giallo dal pin 9, collega un tester in grado di leggere 1Vcc fra il pin 9 (+ del tester) e GND (- del tester) e dicci cosa segna. Scegli tu la portata del tester, non lasciarlo in automatico.
Ciao,
P.

Signori ho notizie splendide, il servo ora funziona.
Avevo fatto la prova di polarizzare l'out del segnale verso massa con una resistenza ma non funzionò.
Stasera mi è venuto un dubbio: io ho utilizzato una resistenza da 10 kohm che è quella che uso di solito.... appunto, di solito, ovvero con circuiti che funzionano a 12 Volt, non a 5.
Quindi mi è venuto il dubbio che dicevo prima, e se 10k fosse un valore troppo alto per una polarizzazione con 5V?
Allora ho ridotto la resistenza utilizzandone un paio che avevo in casa (messe in serie) facendo una resistenza totale di 5,5 Kohm e..... magia, ha iniziato a funzionare.
Ora mi rimane solo da fare due conti sul valore esatto da utilizzare per non rischiare di "caricare" troppo l'uscita e superare il suo limite di corrente.
Sono soddisfatto ma mi rimangono dei dubbi...
perchè in tutti i video che ho visto non era necessaria?
perchè a nessun'altro sembra sia capitato (nei vari forum)?
La spiegazione che mi viene in mente è che hanno cambiato le caratteristiche elettriche del servo (dei servi?) mantenendo lo stesso articolo, oppure le caratteristiche del chip uno o della scheda... mah.

Va bè, che la mia odissea possa essere di aiuto a qualcun'altro.. :slight_smile:
Grazie a tutti

Ps: tenete presente la mia soluzione nel caso colleghiate anche altri dispositivi che non dovessero funzionare...