driver per motori passo passo ad alte prestazioni

Salve a tutti,mi presento,sono un ragazzo che frequenta il 4 anno dell'indirizzo elettronica e telecomunicazioni,mi appassiona molto il mondo dell'elettronica e dei microcontrollori,il caso vuole che sono riuscito a convincere il mio prof a farci studiare l atmega328p e programmarlo in assembler :D,aperta e chiusa questa parentesi veniamo a noi.

Avrei la necessità di far girare una barra filettata ad una velocità abbastanza discreta con una buona precisione,circa 1000-1500 giri minuto,spostando una chiocciola,quest'ultima dovrà spostare pesi dai 10 ai 20 kg! quindi carichi considerevoli.Dopo aver cercato,ho acquistato due motori che potrebbero fare al caso mio,entrambi sanyo,uno da 3Nm(48volt-6A) ed uno da 1.65 Nm(48volt-4A) ...in più ho ordinato un l297,un l298 ed un l6203. Quando è arrivato il pacco ho incominciato a realizzare il circuito di pilotaggio...dopo poco mi rendo conto che ho comprato un componete inutile ovvero l6203 poichè ha un solo ponte ad H...scartato quell' integrato incomincio a cercare di "potenziare" l298 poiche può erogare solo 2A...qui iniziano i miei problemi D:

dopo aver capito qual è a grandi linee lo schema di pilotaggio "full bridge H" incomincio a cercare qualche schema con i componenti in grado di sopportare almeno 6A,ma niente non ho trovato nulla...quindi decido di realizzarlo io,e da quel momento i dubbi mi assalgono,quando devo scegliere i componenti attivi,transistor o mosfest che siano devo prendere in considerazione anche le capacità interne dell'elemento? anche se nell'ordine dei picofarad? lo stesso per i diodi d ricircolo non sò quale siano i più idonei piochè non dispongo di un oscilloscopio e non posso quantificare lo spike dell induttanza,in realtà non ne ho la più pallida idea,per me lo spike può superare anche le migliaia di volt come le decine di volt,poi trovo su internet pareri contrastanti sull' utilizzo dei diodi,alcuni dicono che più il diodo è veloce ad entrare in conduzione più lo spike è limitato altri invece nò...non sò dove andare asbattere la testa!

ps:qualcuno potrebbe spiegarmi come avvine il pilotaggio chopping? vene realizzato con Ic specifici oppure con cosa?l'unica cosa che ho capito è che il motore deve essere alimentato con una tensione più alta di quella nominale,quindi la corrente salirà più in fretta fino ad arrivare al suo valore massimo...oppure il chopping lo realizza l297 solamente grazie ad un clock pwm?

questo è il mio primo post mi scuso se ho sbagliato qualcosa! fatemelo notare! buona giornata e grazie per il vostro tempo :)

mmh..dovresti però almeno dirci se son motori bipolari o unipolari...il modo per pilotarli cambia parecchio.

dimentica di: [0] potenziare il L298 [0] costruirti un ponte H da 50V e 6A [0] Pilotare quei motori in corrente.

La modalitá chopper significa che alimenti il motore con una tenione molto piú alta di quella nominale. Misuri la corrente. Quando quella arriva al limite impostato spegni i transistori e a secondo della modalitá si deve anche accendere certi transistori per abbassare la corrente e rialimentare il motore dopo un certo tempo. Perché lo chopper o pilotaggio a corrente funzioni bene serve una tensione ca 4 volte quella nominale.

Per avere quella potenza e velocitá secondo me non sono adatti i motori passo paasso. Devi usare un motore asincrono pilotato con un inverter e controllato con un encoder.

Ciao Uwe

Grazie delle risposte,

Martinix: mmh..dovresti però almeno dirci se son motori bipolari o unipolari...il modo per pilotarli cambia parecchio.

si in effetti l ho dimenticato..sono motori bipolari (4 fili)

uwefed: dimentica di: [0] potenziare il L298 [0] costruirti un ponte H da 50V e 6A [0] Pilotare quei motori in corrente.

Ciao Uwe,grazie per il tuo chiarimento riguardo il chopping... -per potenziare il l298 intendi utilizzare dei transistor in cascata sulle uscite giusto? come se fosse una configurazione darlinton?

-pensavo di costruirmi un ponte H con quelle caratteristiche ma poi non trovando nulla su internet mi ero fermato,dato che non ho mai lavorato su elettronica di potenza e mi preoccupavano alcuni paramentri degli elementi attivi!

-pilotarli in corrente...intendi una mezza specie di chopping? oppure è un altro tipo di pilotaggio? perdonami ma su internet non trovo nulla che mi riesca a dare delle risposte

il motore da 3Nm ad una velocità di circa 1000 giri minuto ha una forza di circa 1Nm...non è una coppia notevole?

-per fare delle prove,posso impostare la corrente di cortocircuito del mio alimentatore stabilizzato a circa 2A e poi fare i vari test sui motori? in modo da non danneggiare l298?

74ls:
-pensavo di costruirmi un ponte H con quelle caratteristiche ma poi non trovando nulla su internet mi ero fermato,dato che non ho mai lavorato su elettronica di potenza e mi preoccupavano alcuni paramentri degli elementi attivi!

Non é facile trovare qualcosa perché sono circuiti particolari e venduti costosi.

74ls:
-pilotarli in corrente…intendi una mezza specie di chopping? oppure è un altro tipo di pilotaggio? perdonami ma su internet non trovo nulla che mi riesca a dare delle risposte

Limitare la corrente di 6A su un motore da 48V non c’é altra possibilitá di usare la modalitá chopper. Se vuoi usare un alimentatore corrente costante lineare perdi molto piú potenza sul circuito di pilotaggio che dai al motore.

74ls:
il motore da 3Nm ad una velocità di circa 1000 giri minuto ha una forza di circa 1Nm…non è una coppia notevole?

Da dove hai preso questa informazione??

74ls:
-per fare delle prove,posso impostare la corrente di cortocircuito del mio alimentatore stabilizzato a circa 2A e poi fare i vari test sui motori? in modo da non danneggiare l298?

Meglio che usi una tensione bassa in modo che il motore richiede meno corrente oppure usi la combinazione L298 e L297 in modalitá pilotaggio in corrente. Non funzionerá bene ma almeno non rompi niente.

Ciao Uwe

ok! il valore di coppia l ho trovato nel datasheet http://docs-europe.electrocomponents.com/webdocs/0e9c/0900766b80e9c7e4.pdf

nel datasheet non è specificato gran che...solo corrente nominale e non la tensione,per il pilotaggio mi sono fatto guidare dalla tabella con le curve di coppia...però non sò se quella tabella sia il risultato di un pilotaggio chopping,in corrente o via dicendo....giusto? o sbaglio io?

se per ipotesi riuscissi a rimediare un altro l6203,il motore lo potrei pilotare senza alcun problema giusto? per i diodi di ricircolo come era la storia? è vero che più è veloce ad intervenire il diodo più lo spike è contenuto? i diodi li devo prendere che sopportano un alta corrente impulsiva?

Se guardi i dati tecnici del datasheet citato vedi Corrente nominale 6A Resistenza avvolgimento a 25° 0,3 Ohm percui una tensione nominale di 1,8V. Le curve di coppia si riferiscono a un pilotaggio in corrente con tensione di alimentazione di 48, 75 o 140 V

Piú grande é la tensione piú veloce si istaurerá la corrente nominale applicando tensione al avvolgimento. Per questo a velocitá alte la corrente media sará piú alta piú alta é la tensione.

Il datasheet consiglia driver R.T.A serie NDC o serie PLUS. Se cerchi quelli http://store.lipsiasoft.com/uploads/352698_NDC_eng.pdf o http://store.lipsiasoft.com/uploads/352702_PLUS_AB_eng.pdf Che sono Driver in corrente con funzioni di microstep.

ciao Uwe

grazie per il chiarimento riguardo la tensione nominale,che ignoravo come ricavarla,e riguardo al pilotaggio per le curve di coppia!

Quindi se non sbaglio per pilotarlo in modalità chopping dovrei applicargli una tensione 4 volte quella nominale,ovvero circa 8volt,se non sbaglio,mentre per pilotarlo in corrente mi occorrono ben 48volt per rimanere fedele al grafico giusto?

un altra domanda…per pilotarlo in corrente servono altri integrati oppure possono andare bene anche l’ accoppiata l297 + full bridge H? oppure questo è un pilotaggio solo in tensione?

Ora stò analizzando con più attenzione lo schema inteno dell’l298 e penso di ricostruirlo su uno stampato con due 74ls08,un 74ls04 e 8 transistor/mosfet di potenza…tanto li devo far funzionare come interruttori,quindi i calcoli sono ridotti all’osso.

ma l6203 è un singolo ponte H ed ha già i diodi di protezione al suo interno giusto? possono bastare quelli oppure serviranno degli altri?

Grazie :slight_smile:

Ora stò analizzando con più attenzione lo schema inteno dell'l298 e penso di ricostruirlo su uno stampato con due 74ls08,un 74ls04 e 8 transistor/mosfet di potenza...tanto li devo far funzionare come interruttori,quindi i calcoli sono ridotti all'osso.

forse non ti rendi conto di cosa voglia dire fare un ponte H , e non ti puoi basare su uno schema a blocchi, visto che e' SOLO uno schema a blocchi. Pensi forse che un Bjt ( o Mosfet ) di potenza sia pilotato da un 74LS08 ? Se cerchi chip piu' performanti guarda ad esempio il BTS7960B. Se poi non hai fretta c'e' Questo

74ls: Quindi se non sbaglio per pilotarlo in modalità chopping dovrei applicargli una tensione 4 volte quella nominale,ovvero circa 8volt,se non sbaglio,mentre per pilotarlo in corrente mi occorrono ben 48volt per rimanere fedele al grafico giusto?

Ti sbagli. È la stessa cosa. Chopping e pilotaggio in corrente sono la stessa cosa.

74ls: un altra domanda...per pilotarlo in corrente servono altri integrati oppure possono andare bene anche l' accoppiata l297 + full bridge H? oppure questo è un pilotaggio solo in tensione?

Con il L297 e 2 ponti H puoi fare un pilotaggio in corrente chopping. Ma il L297 e un integrato di concezione di 30-40 anni fa. Se usi driver moderni fanno anche il microstepping che vuol dire far girare il motore molto piú silenzioso e meno scatti.

74ls: Ora stò analizzando con più attenzione lo schema inteno dell'l298 e penso di ricostruirlo su uno stampato con due 74ls08,un 74ls04 e 8 transistor/mosfet di potenza...tanto li devo far funzionare come interruttori,quindi i calcoli sono ridotti all'osso.

ma l6203 è un singolo ponte H ed ha già i diodi di protezione al suo interno giusto? possono bastare quelli oppure serviranno degli altri?

Grazie :)

Lo schema che vedi é a blocchi e non riporta tutta l' alettronica. Il L6203 non regge 6A. Ciao Uwe

Con barre filettate fino a a 2mm di passo ti è sufficiente un motore che sviluppi una coppia di 0.5Nm a 1500RPM quindi ti consiglio di cambiare il motore con un Nema23 con coppia di stallo da 1.2-1.5Nm bipolare con corrente di fase di 2A circa , così come driver potrai usare l'accoppiata L297 L298 alimentato a 24-36VDC

uwefed:

74ls: Ora stò analizzando con più attenzione lo schema inteno dell'l298 e penso di ricostruirlo su uno stampato con due 74ls08,un 74ls04 e 8 transistor/mosfet di potenza...tanto li devo far funzionare come interruttori,quindi i calcoli sono ridotti all'osso.

ma l6203 è un singolo ponte H ed ha già i diodi di protezione al suo interno giusto? possono bastare quelli oppure serviranno degli altri?

Grazie :)

Lo schema che vedi é a blocchi e non riporta tutta l' alettronica. Il L6203 non regge 6A. Ciao Uwe

Si si,infatti utilizzerei il motore da 4A per fare delle prove...ora ho recuperato un altro l298 e penso di metterele uscite in parallelo di entrambi gli Ics per fargli tirare fuori i 4A per iniziare a fare delle prove!

Ora stavo pensando ad un eventuale sostituto del l297,che come mi ha fatto notare Uwe è un componente "obsoleto" per utilizzi ad alte prestazioni,non sapendo dove andare a cercare mi sono buttato sul sito della allegro,dopo una bella ricerca è spuntato fuori l'A3967 che non è altro che un controller in grado di pilotare un passo passo bipolare con una risoluzione di 1/8 di passo ed integra al suo interno un full bridge,ma quest ultimo può erogare solo 750mA...ora pensavo ma se all' uscita dei 4 piedini gli metto in cascata degli igbt di potenza? può essere una buona idea? oppure è una cattiva idea? (ovvio che dovrò dimensionare le resistenze di polarizzazione per far funzionare l'elemento attivo in funzione di saturazione ed interdizione).

Oppure qualcuno di voi conosce la sigla di un controller per stepper motor di nuova generazione con controllo per il micropasso?

Un altra domandina,cui non sono riuscito a dare una risposta senzata,io al controller devo dargli un segnale a frequenza variabile X per far girare il motore ad una velocità X,oppure gli devo dare una frequenza fissa X e variare il duty da 0 a 100% per far girare al massimo il motore?cioè...a che serve sto duty cicle? non riesco proprio a capire a cosa possa servire....il pwm se lo genera internamente il driver per conto suo per gestire la corrente? bho illuminatemi D:

icio: Con barre filettate fino a a 2mm di passo ti è sufficiente un motore che sviluppi una coppia di 0.5Nm a 1500RPM quindi ti consiglio di cambiare il motore con un Nema23 con coppia di stallo da 1.2-1.5Nm bipolare con corrente di fase di 2A circa , così come driver potrai usare l'accoppiata L297 L298 alimentato a 24-36VDC

Utilizzo una barra filettata da 16mm di diametro e passo 4,con il passo due la chiocciola ci metterebbe il doppio del tempo per coprire la stessa distanza...e per coprire la stessa distanza con lo stesso tempo dovrei raddoppiare la velocità nel caso del passo due...se raddoppio la velocità la forza del motore passo passo scompare o quasi...giusto come ragionamento?

Ho capito, usi una TPN da 4mm, se hai una chicciola in bronzo dai miei calcoli approssimativi ti serve 0.6Newton/metro a 1500RPM quindi siamo sempre là , il sanyo da 1.65N/metro in tuo possesso dovrebbe essere un nema23 e dovrebbe essere sufficiente , procurati un driver da 3.5-4A per fase e alimentalo con un alimentaore da 48V-100watt

74ls: Si si,infatti utilizzerei il motore da 4A per fare delle prove...ora ho recuperato un altro l298 e penso di metterele uscite in parallelo di entrambi gli Ics per fargli tirare fuori i 4A per iniziare a fare delle prove!

Rischi di rompere i L298. Per fare la prove puoi limitare la corrente a 2A se usi la combinazione L297-L298.

Ora stavo pensando ad un eventuale sostituto del l297,che come mi ha fatto notare Uwe è un componente "obsoleto" per utilizzi ad alte prestazioni,non sapendo dove andare a cercare mi sono buttato sul sito della allegro,dopo una bella ricerca è spuntato fuori l'A3967 che non è altro che un controller in grado di pilotare un passo passo bipolare con una risoluzione di 1/8 di passo ed integra al suo interno un full bridge,ma quest ultimo può erogare solo 750mA...ora pensavo ma se all' uscita dei 4 piedini gli metto in cascata degli igbt di potenza? può essere una buona idea? oppure è una cattiva idea? (ovvio che dovrò dimensionare le resistenze di polarizzazione per far funzionare l'elemento attivo in funzione di saturazione ed interdizione). Oppure qualcuno di voi conosce la sigla di un controller per stepper motor di nuova generazione con controllo per il micropasso?

Il L298 non é piú al altezza dei circuiti moderni che usano MOSFET al posto dei transistori. Cosí hanno molto meno dissipazione di potenza. Dimentica di pilotare con un A3967 o qualsiasi ponte H dei MOSFET, transistori o IGBT per ottenere un Ponte H piú potente. Comprati quel driver consigliato dal produttore per quel motore.

Un altra domandina,cui non sono riuscito a dare una risposta senzata,io al controller devo dargli un segnale a frequenza variabile X per far girare il motore ad una velocità X,oppure gli devo dare una frequenza fissa X e variare il duty da 0 a 100% per far girare al massimo il motore?cioè...a che serve sto duty cicle? non riesco proprio a capire a cosa possa servire....il pwm se lo genera internamente il driver per conto suo per gestire la corrente? bho illuminatemi D:

Studiati l' elettronica o almeno i datasheet.

Ciao Uwe

icio:
Ho capito, usi una TPN da 4mm, se hai una chicciola in bronzo dai miei calcoli approssimativi ti serve 0.6Newton/metro a 1500RPM quindi siamo sempre là , il sanyo da 1.65N/metro in tuo possesso dovrebbe essere un nema23 e dovrebbe essere sufficiente , procurati un driver da 3.5-4A per fase e alimentalo con un alimentaore da 48V-100watt

Grazie icio per i tuoi calcoli!A titolo informativo potrei sapere i passaggi per trovare tale valore?sempre se puoi grazie :slight_smile:

coppia_motore = forza(Newton) x passo_vite (mm) / 2 x PI x rendimento_vite x 1000

-spinta = 20kg vite trapezia 16x4 rendimento 0.30

200 x 4 / 6.28 x 0.3 x 1000 = 0.43 N/m

portato a 0.6 N/m per includere a spanne il peso e l'inerzia del carro (dato non disponibile)

parametri motore: tensione motore : circa 3-3,5V corrente fase motore: 4A

curva di coppia 2.5:1 con rapporto di tensione > 10

parametri alimentatore: tensione minima di alimentazione:36VDC, per sicurezza stiamo sui 48V

potenza alimentatore: potenza_fase x 2 / rendimento chopper = 3.5 X 4 x 2 / 0.35 = 78watt arrotondato a 100watt

Grazie icio per i tuoi calcoli!...scusate se non ho più risposto,ma sono stato occupato con il lavoro =( =(

Comunque,in questi giorni ho sviluppato l' intero circuito,però ho ancora dei dubbi sulla connessione di alcuni piedini del l6203 e delle resisitenze di sense per il pilotaggio chopping.

Allora vi espongo i miei dubbi...

1) A cosa serve il piedino Vref nel l6203? nel datasheet c'è scritto che deve essere collegato a massa attraverso un condensatore e ha un voltaggio tipico di 13.5V e può erogare massimo 2mA...fino a qui ci sono,ma praticamente a cosa serve? in tutti i circuiti lo trovo collegato alle resistenze di Sense,e non riesco a darmi una spiegazione

2)Riguardo le resistenze di Sense.Queste resistenze devono essere collegate al piedino 10 del l6203 e al piedino 14/13 del l297, e fin quì ok! ma in sostanza queste resistenze cosa fanno? sono di basso/bassisimo valore per far cadere hai loro capi più corrente possibile per non farla arrivare al l297? oppure cosa? inoltre per il dimensionamento in potenza della resistenza devo usare questa formula? W=R*(I*I)

un altra domandina a cui non riesco a darmi risposta...sul datasheet dei miei motori passo passo trovo scritto "corrente nominale bipolare 4 (Amp)",questo significa che ogni fase assorbe 4 Ampere oppure l' assorbimento massimo è da 4 Ampere,quindi eccitando le due fasi assieme,tipo microstepping?

grazie e buona giornata :)