motorino passo passo e lancetta

Nov 09, 2004 7 Replies

Ciao :-),



vorrei realizzare un contagiri analogico usando un motorino passo passo, ma sono indeciso su che motore usare e SE usare una cascata di ingranaggi per ridurre i giri. Mi e' appena arrivato questo motore

formatting link
E' un 200 passi/giro, 4 fasi, 12V 33 ohm per avvolgimento...secondo voi, collegandolo direttamente alla lancetta (che dovra' fare 0 / 10'000 in 240° di rotazione) e pilotandolo in modalita' half step, riusciro' ad ottenere un movimento abbastanza "fluido" ? Altrimenti, avrei un motoriduttore (autocostruito, quindi non so quanto affidabile possa essere..sigh :P) con ingranaggi in plastica con rapporto circa 13:1...abbinato ad un 24 passi/giro.


Grazie ;)



Ciao, Pier.


formatting link



ICQ 7253096sei


senza dubbio utilizzando riduzione ad ingranaggi avrai un movimento meno "scattoso"

Ciao.alberto.

-- =============================================================== Alberto Rubinelli - A2 SISTEMI Opera 7.53->news.individual.net Via Costantino Perazzi 22 - 28100 NOVARA - ITALY Tel 0321 640149 Fax 0321 391769 BBS 0321 392320 Mail: snipped-for-privacy@retrocomputing.net ICQ : 49872318 Visita il mio museo di computers:

formatting link

--------------------------------------------------------------- Per favore, non scrivetemi in html, testo ascii a 7 bit Non rispondo a chi mi scrive con indirizzo di reply alterato ===============================================================

"Pier GSi" ha scritto nel messaggio news:wl2kd.294613$ snipped-for-privacy@news4.tin.it...

ma

E' la seconda volta che sento un'idea del genere. La prima mi è capitato in una società di progettazione elettronica, tutti ex progettisti militari, anche se non mi ricordo bene il perchè di quella scelta... forse il sistema doveva essere necessariamente in anello aperto. Se posso chiedere, perchè utilizzi un passo passo ? Comunque, credo che sia un'idea interessante. Prima di fasciarti la testa con un motoriduttore, considera che in half step hai 400 passi. Con una lancetta di, diciamo, 4 cm, hai un diametro di 251 mm circa, e quindi uno spostamento lineare di 0.62 mm a passo sulla punta della lancetta. Con un alancetta di 2 cm diventano 0.31 mm. Insomma, io andrei tranquillo...

La vedo un pelo complicata, invece, sull'azionamento ad anello aperto. Domande: Come pensi di fare il controllo ? Hai pensato ad un azzeramento della posizione, che ti salvi dalla perdita di qualche passo ? O vuoi farlo ad anello chiuso ?

SB ---------------------------------------------------------------- Rimuovere i caratteri accentati per rispondere

"Simone.bern" ha scritto nel messaggio news:cmqjn0$dm0$ snipped-for-privacy@atlantis.cu.mi.it...

in

sistema

Per semplicita' (pilotaggio, realizzazione "meccanica", ecc.), e perche' vorrei avere spostamenti della lancetta molto rapidi e "secchi" in presenza di variazioni... Un importante costruttore di strumentazioni destinate ad auto da corsa utilizza appunto motori passo passo (e si nota in certe circostanze la differenza di movimento -piu' scattoso, tipico dei passo passo- rispetto a strumenti analogici tradizionali).

La lancetta dovrebbe essere appunto di quelle dimensioni (40-45 mm.).

di

Non ho esperienza di pilotaggio di motori stepper, ma l'idea sarebbe quella di controllare i 4 mosfet direttamente con 4 uscite del micro (PIC) e gestire quindi via software il mezzo passo. Sull'alberino della lancetta (e quindi del motore, usando il 200 passi/giro) e' calettato un dischetto letto da una forcella ottica. Una tacca "vuota" mi definisce il riferimento iniziale (fondoscala, ovvero 10 k giri).

Il programma, dovrebbe essere strutturato in questo modo :

All'accensione, si presume che la lancetta sia posizionata PRIMA del finecorsa, per cui conto in avanti fintanto che ricevo il segnale dal sensore ottico, e torno indietro dei passi necessari per raggiungere gli 0 rpm (266 mezzi passi).

Poi, ogni 1 / 1.5 mS (666/1000 Hz, diciamo) il micro va a processare la timer routine, verifica se la posizione attuale e' uguale, maggiore, o minore di quella richiesta (ovvero il n. di giri ricevuto dalla porta seriale in un formato predefinito).

Se e' minore, faccio eseguire un passo indietro al motore, aggiorno un counter software ed esco,. Se e' maggiore viceversa, se e' uguale non faccio niente.

Credo che il motore riesca a partire ed arrestarsi senza necessita' di usare rampe di accelerazion/decelerazione (ho fatto alcune prove, tipo andare avanti/indietro di 100 volte fino a 3/4 di fondoscala invertendo la sequenza senza attendere, e senza perdere nessun passo...), finche' la frequenza di pilotaggio rimane entro i 1000 Hz...praticamente, e' come se girasse a vuoto, vista l'inerzia assolutamente trascurabile della lancetta rispetto alla massa del rotore...in ogni caso, non sarebbe un problema implementare via software una routine per farlo partire/arrestare dolcemente, diciamo da

0 a 1 kHz in una 50ina di mS... Il mio dubbio piu' grosso e' invece legato alla necessita' o meno di disalimentare gli avvolgimenti quand'e' fermo (perderei la posizione, se il rotore si ferma a cavallo tra 2 passi ?)

Grazie :)

Ciao, Pier.

formatting link

"Pier GSi" ha scritto nel messaggio news: snipped-for-privacy@uni-berlin.de...

correzione :D

^^^^^^^^

"Pier GSi" ha scritto nel messaggio news: snipped-for-privacy@uni-berlin.de...

Mi sa che l'applicazione era questa... !

Ecco, secondo me è qui che devi stare attento. Se sei posizionato a, diciamo, 1000 giri, e ti arriva l'informazione che il motore va a 1100, che fai, aumenti di una sola posizione ? No, dovresti icrementare di tanti passi quanti sono quelli necessari a portarti a 1100. Ma quando il tuo stepper arriva a quella posizione, il motore, magari è già a 1150... insomma, io cercherei di realizare un controllo PD (proporzionale e derivativo) e magari simulare la cosa con un tool apposito (simulink ? boh...)

usare

cut

Mah, confermo i miei dubbi. Io non lo farei arrestare il motore a meno che tu non abbia errore zero (errore= n. giri-posizione stepper) e derivata zero ( derivata = D(n. giri)/D(t) ). Altrimenti è tutto un fermare e ripartire e se metti le rampe impazzisci.

Io lo terrei sempre alimentato.

SB ---------------------------------------------------------------- Rimuovere i caratteri accentati per rispondere

"Simone.bern" ha scritto nel messaggio news:cmr13f$pr3$ snipped-for-privacy@atlantis.cu.mi.it...

che

passi

magari

mmh...scusa ma non ti seguo...se io tengo in ogni istante via software la posizione "assoluta" del motore ed alimento il motore a velocita' distante da quella massima (ovvero in cui rischio di perdere passi), non dovrei avere problemi. Non capisco in particolare questo passaggio " Ma quando il tuo stepper arriva a quella posizione, il motore, magari e' gia' a 1150". Cerco di spiegarmi meglio : sono io che decido passo per passo di quanto spostare il motore, e, come detto, finche' rimango sotto ai limiti del motore (mai superare una velocita' in cui l'inerzia dell' "equipaggio rotante" e' superiore alla coppia massima che il motore e' in grado di erogare in caso di inversione brusca della direzione, ecc.), dovrebbe essere difficilissimo perdere passi secondo me...sbaglio ?

Ciao, Pier.

formatting link

"Pier GSi" ha scritto nel messaggio news: snipped-for-privacy@uni-berlin.de...

avere

Mi riferisco al "motore" dell'auto.

Il tuo sistema è così costituito:

un ingresso -- un attuatore -- un uscita

L'ingresso è il numero di giri del motore a scoppio L'attuatore è uno stepper L'uscita è la posizione angolare della lancetta.

Tra ingresso e attuatore c'è un controllo a a tempo discreto (ovvero routine firmware apposite).

Tra ingresso e uscita c'è inoltre un ritardo ineliminabile dovuto all'inerzia del sistema e al tipo di controllo scelto. Si tratta di una catena di controllo ad anello aperto, sono coinvolti tutti i problemi relativi. Nello specifico ti invitavo a utilizzare come variabili di ingresso del controllo, sia il numero di giri attuali del motore a scoppio che la sua derivata discreta. Come fare un controllo (ovvero routine firmware apposite) in grado di restituire un uscita (ovvero una posizione angolare della lancetta) esatta, fluida e non saltellante, >è< il problema.

SB ---------------------------------------------------------------- Rimuovere i caratteri accentati per rispondere

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required