Se sei già registrato           oppure    

Orario: 15/05/2024 21:07:30  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM

Pagine: (3)   1   [2]   3    (Ultimo Msg)


Consiglio su servomotore
FinePagina

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 11/10/2016 07:14:55

Sono costruiti con un motorino collegato ad una catena di ingranaggi che hanno la funzione di demoltiplicare la rotazione, il mio ha ingranaggi in metallo. L'ultimo della catena degli ingranaggi termina con l'albero di rotazione ed ha collegato un potenziometro che mediante una piccola scheda elettronica a sua volta comanda la rotazione del motore, direi un feedback negativo.
Il servo è in grado di compiere dei piccoli movimenti di rotazione ed i servo in genere ruotano da 0 a 180°, avanti ed indietro.

Il motore passo-passo è diverso, fa giri completi e, come il servo, è in grado di effettuare anche spostamenti minimi.

Nella gestione il servo ha bisogno solo di una libreria, la servo.h, e di un pin digitale che in teoria dovrebbe essere un PWM, mentre ho visto che è in grado di impiegare qualunque pin digitale, però con un normale digitale ho avuto l'impressione che si perde un po' di precisione.

Mediante la libreria si comanda il motore con poche istruzioni, è veramente semplice usarlo ed estremamente preciso nel raggiungere le varie posizioni. Poi non è tanto preciso nel mantenerle stabili.

Per cercare di trovare una soluzione ho fatto tante prove, proprio tante ed alla fine si è rotto il potenziometro interno ed anche un piolino di fermo della rotazione (ne ha due uno a 0* ed uno a 180°). Quindi l'ho dovuto aprire e riparare, devo rilevare che del sistema l'elemento debole, ma anche il più importante per il funzionamento, è proprio il potenziometro.



Modificato da calcola - 11/10/2016, 07:18:50


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 11/10/2016 10:32:53

Che istruzioni mandi al servo ?

Tipo: "posizione(50)" cioè che si deve mettere a 50° dallo zero ?

E quindi puoi variare l'angolo di rotazione modificando il valore 50 con un valore qualunque compreso tra 0..180 ?

Ma quindi non esistono servo che possono girare come un normale motorino ? Cioè hanno sempre un inizio e una fine ?

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 11/10/2016 15:44:48

Quando si avvia, salvo altre istruzioni contrarie, si posiziona a 90°. Quindi con servo.Write(45), si sposta in senso antiorario di 45°, mentre con servo.Write(150); si sposta in senso orario di 60°. All'avvio però lo si può spostare dove si vuole per posizionarlo a 0° occorre avviarlo e istruirlo con: servo.attach(pin); servo.Write(0). Semplice.

Esistono servo rotativi, come motorini, in tal caso la libreria servo controlla solo la velocità di rotazione e non l'angolo, questo è quanto ho letto, personalmente non ne ho mai visti.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 11/10/2016 17:11:42

Tutto chiarissimo, anche se, tranne che nelle macchinine, non capisco a cos'altro possano servirmi...


Approfondiamo:

Parto a 90°, poi
servo.Write(50) (si sposta a sx di 40° (90-50)), poi
servo.Write(130) (si sposta a dx di 40° (130-90))

Quindi il numero da mettere dentro la chiamata servo.Write() va sempre riferito a 90° ?

E se, partendo da 90° scrivo:

servo.Write(150), poi di nuovo servo.Write(150)

ovvero gli dico di spostarsi a dx di 60° alla prima chiamata e altri 60° alla seconda, cosa succede ?

Ma quindi nel codice devo essere sempre io a ricordare in che posizione è il servo ? Non posso dirgli, a prescindere da dove si trova, di posizionarsi ad un determinato angolo con una sola istruzione ?

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 11/10/2016 18:17:32


CITAZIONE

Quindi il numero da mettere dentro la chiamata servo.Write() va sempre riferito a 90° ?


No, va sempre riferito a 0°, solamente che all'avvio si posiziona a 90°, se gli dici di andare a 150° si sposterà di 60 gradi a destra, se nuovamente gli imposti di andare a 150°, resta fermo. Per andare a 30° (60° prima di 90°) devi impostare servo.Write(30).

CITAZIONE
Ma quindi nel codice devo essere sempre io a ricordare in che posizione è il servo ?


No, più semplice, imposti l'angolo da raggiungere in ° rispetto all'angolo piatto.

Se gli dici servo.Write(150); servo.Write(90); servo.Write(30); servo.Write(180), tutto di seguito, il servo si sposta a 150°, poi torna indietro a 90, poi torna indietro a 30, per poi spostarsi a 180.

I movimenti li fa tutti di seguito, quindi se non cambia verso non ti accorgi che ha raggiunto la posizione desiderata, così è meglio inserire un delay(1000) tra una posizione e l'altra.

Nel mio impiego a 0° posiziona il commutatore sul banco batteria 1, a 90° attiva il parallelo dei due banchi, a 180° lascia collegato solo il banco 2. All'avvio è importante che usi sempre il banco 1, quindi come prima istruzione nel setup imposto servo.Write(0) ed il servo parte sempre da 0° e non da 90° come fa invece di default in mancanza di istruzioni.



Modificato da calcola - 11/10/2016, 18:31:25


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 11/10/2016 19:14:36

Tutto chiaro, grazie mille per la pazienza...

A buon rendere, Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 11/10/2016 19:30:22

Di niente



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 12/10/2016 00:19:33

Ecco cos'era che non quadrava !!!

Nonstante l'ottima spiegazione c'era qualche ombra che mi ha portato a rileggere questi ultimi post, ed ecco svelato l'arcano:


CITAZIONE

..Quando si avvia si posiziona a 90°. Quindi con servo.Write(45), si sposta in senso antiorario di 45°, mentre con servo.Write(150); si sposta in senso orario di 60°...


Questo tuo messaggio l'avevo interpretato così:

Partenza: -> Servo a 90°
servo.Write(45) -> Servo a 45°
servo.Write(150) -> Servo a 105° (cioè, come hai scritto, si sposta di 60° verso dx !)

E' per questo che ti ho fatto la domanda:

CITAZIONE
Ma quindi nel codice devo essere sempre io a ricordare in che posizione è il servo ?


In realtà, con la dicitura:

CITAZIONE
con servo.Write(150); si sposta in senso orario di 60°


Tu ti riferivi sempre ai famosi 90° iniziali...

Ora non c'è più nemmeno una piccola ombra

Arigrazie, Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 12/10/2016 08:39:24

Si, mi riferivo sempre ai 90° iniziali.

Ho capito a cosa serve un altro comando: servo.writeMicroseconds(ms);

nelle pseudo traduzioni dei siti italiani affermano che serve per regolare la velocità nei servo a rotazione continua, invece... serve per sincronizzare l'angolo del potenziometro con la corsa dell'ingranaggio.

Come dicevo più sopra il mio servo era arrivato rotto, girava di continuo come un motore. Aprendolo per ripararlo, rilevato il guasto, ho pensato che si fosse semplicemente sfilato un perno di fermo da un ingranaggio. Invece, usandolo, ho notato che vi era un certo sfasamento tra l'angolo del potenziometro e quello dell'ingranaggio. Infatti arrivato allo zero batteva contro il fermo come se volesse una maggiore corsa, mentre a 180° si fermava un po' prima del dovuto.

Con servo.writeMicroseconds(ms); si sincronizza il punto di minimo o di massimo della corsa del potenziometro con quella dell'ingranaggio. Normalmente e la libreria se non specificato lo sottintende, il minimo è a 544 ms, mentre il massimo è a 2400 ms, Facendo delle prove ho invece visto che nel mio lo zero corrisponde a 800 ms, mentre il massimo a 2750ms. Una volta trovati i due punti occorre indicarli nel comando di avvio del motore, così:
servo.attach(5,800,2750); dove 5 è il pin PWM, 800 e 2750 sono rispettivamente il minimo ed il massimo dei 180°. Ora, indicando servo.write(0) si posiziona, senza battere a 0°; mentre con servo.write(180) si posiziona esattamente a 180°.

Probabilmente il mio servo era stato restituito al venditore perchè si era rotto dopo poco tempo e il venditore ha pensato di rispedirlo ad un altro acquirente. Merce difettosa, economica e difettosa.
Acquistandone uno nuovo forse è meglio essere prudenti ed avviarlo con un angolo d'escursione ridotto Es: pin,800,2800 in modo da vedere se gira bene e dove si posiziona la camma, poi dopo...



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 12/10/2016 12:57:19


CITAZIONE

Ho capito a cosa serve un altro comando: servo.writeMicroseconds(ms);

Io no

Nel senso che se il comando servo.attach(5,800,2750); inizializza il servo, il comando servo.writeMicroseconds(ms); cosa fa ?

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 12/10/2016 21:51:06

Sincronizza il movimento pendolare dell'ingranaggio con l'escursione del potenziometro. Con servo.attach(pin), accende il servo e presume che lo zero sia a 544 microsecondi, mentre 180 sia a 2400 microsecondi, però se il potenziometro non funziona bene la posizione iniziale e quella finale sono raggiunti con valori diversi, in tal caso occorre specificare i due valori nel comando di accensione e la sintassi del comando attach(), diventa servo.attach(pin, minino,massimo).

Procedendo a tentativi e cambiando il valore dei microsecondi, il comando servo.writeMicroseconds(ms); ti permette di trovare i valori corrispondenti al minimo (0°) ed al massimo (180°), da usare poi nel comando di avvio.

Ci vuole più a dirlo che a farlo, in pratica permette la messa in fase del servomotore.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 13/10/2016 08:22:46

Tutto chiarissimo !!!

Pensandoci bene è come se il comando servo.Write(x); va da 0 a 180, il comando servo.writeMicroseconds(ms); riesce a superare questi limiti !

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/11/2016 07:41:51

Dopo alcuni giorni di sperimentazione, posso affermare che questi dispositivi si possono usare in innumerevoli applicazioni di automazione.

In pratica quando occorre muovere un oggetto con velocità e precisione e poi mantenere la posizione raggiunta con una certa forza e tale caratteristica nelle schede tecniche la chiamano "coppia".

Quindi quando si afferma che hanno una coppia di 10 Kg, vuol dire che mantengono la posizione raggiunta applicando una forza di 10 kg, ma non vuol dire affatto che applicano durante il movimento una forza di 10 kg.

Morale, il servo non va bene per muovere il commutatore, dove invece occorre molta forza durante il movimento e zero forza raggiunta la posizione.

Peccato, ho già fatto tutto il software di gestione e dovrò ripartire da zero. Al momento è solo un giocattolo che a comando ruota di 180°.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/11/2016 07:52:22

Devo ora trovare un motore ridotto a corrente continua con buona forza.

L'altro giorno pioveva e osservando il tergilunotto della macchina in movimento, mi sono chiesto se avrei potuto usarlo l'avessi potuto usare per muovere il commutatore. Qualcuno ne ha mai smontato uno?



Modificato da calcola - 01/11/2016, 23:07:43


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

donato
MegaWatt


Gruppo:Utente
Messaggi:449

Stato:



Inviato il: 02/12/2016 13:30:30

Si io ne ho smontato piu di uno in passato ... Con uno l'ho applicato ad un cric per auto a vite e ho fatto la griglia del barbecue che sale e scende sul fuoco con due fine corsa su altezza massima e minima...e saliva e scendeva anche me70kg e poi con un altro ho fatto tipo uno stendi biancheria che sale e scende dalla soffitta del balcone .... Quindi se posso aiutarti chiedi pure

 
 InizioPagina
 

Pagine: (3)   1   [2]   3    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum