Ciao a tutti, ho un problema con una macchina cnc e non so dove trovare soluzione. Spiego con ordine.
Ho acquistato la meccanica di una macchina cnc da un noto sito comprensiva di tre motori stepper nema 17.
Ho assemblato l'elettronica utilizzando il mio arduino, 3 driver pololu a4988 e ho utilizzato il software Grbl 0.9j. Mentre assemblavo i driver li ho testati uno alla volta e i motori giravano regolarmente.
Adesso ho montato tutto sulla macchina cnc ma sorpresa... quando invio i comandi, i motori emettono un suono di rotazione, internamente si sente che girano, ma gli assi non si spostano. Svitando il giunto quindi lasciando libero l'albero del motore, in effetti ruotano ma quando li collego alle viti niente... nessun azionamento. In oltre ho riscontrato che quando i motori ruotano riesco a fermarli con un dito... come se non opponessero alcuna coppia ... Dove sto sbagliando?
I motori li sto alimentando a 12 volt. Ho pensato che forse i motori non ce la fanno a muovere la struttura... ma erano compresi nel kit che ho acquistato... suppongo quindi che siano predisposti per questo peso.
sono un pò confuso...
Ciao potresti cominciare a postare più informazioni esempio come sono collegati il tutto il tipo di alimentatore corrente , caratteristiche dei motori in oltre se non l'hai già fatto devi fare la taratura della corrente dei driver, cosi uno più bravo di me avrà più dati per dare dei consigli.
Ciao iw1evm
hai regolato la corrente ?
12 volt sono un po' pochi, potendo vai almeno sui 24 volt e l'alimentatore deve poter fornire la corrente richiesta alle fasi, moltiplicata per tre, visto che hai tre assi che possono girare in contemporanea.
gli assi devono muoversi in modo fluido, senza attriti, visto che i motori sono poco potenti, e perdipiu' alimentati a solo 12 volt , basta un minimo attrito che si fermano.
gli assi sono solidali con la parte interna del motore, percio' all'interno, se non gira l'asse non si muove nulla, quello che senti sono vibrazioni.
non aprire mai il motore e non estrarre il rotore, perchè altrimenti li puoi anche buttare subito.
a volte si trovano motori ormai smagnetizzati che hanno perso potenza e non servono piu' a niente.
ti parlo per esperienza, ho preso a poco prezzo in rete tre motori ma ho dovuto buttarli perche' erano quasi completamente smagnetizzati, (ti accorgi perchè facendo girare a mano l'alberino, non oppone resistenza)
ciao.
iwlevm abbiamo postato insieme
allora per le connessioni ai driver ho usato l'ho schema che c'è in allegato. In particolare ho inserito i cavi nel seguente ordine:
Nero 1B, Verde 1A, Blu 2A e Rosso 2B i motori sono 17hd40005 per la regolazione in corrente ho usato la seguente guida:
http://www.stampa3d-forum.it/guida-regolazione-pololu-stepstick/
e per driver pololu a4988 ho seguito la legge: Vref= corrente/2,5
cercando i dati dei miei motori su internet (se non vado errato) ho rated current = 1,3 A
dunque ho fatto: 1,3 /2.5 = 0,52 v e l'ho abbassata di 0,3 attualmente l'ho impostata a 0,25 v
è giusto?
per quanto riguarda l'alimentazione, attualmente ho connesso i 3 driver per l'alimentazione dei motori a un alimentatore da banco di 5 ampere (non mi è arrivato ancora l'alimentatore che ho ordinato) e i relativi 5 volt per alimentare i driver presi da arduino come da schema trovato su grbl. che vi allego.
Ho provato a portare la tensione a 24 volt ma niente da fare sempre uguale... quando connetto i motori alla macchina l'asse non gira.. rumore, ma nessun movimento.
posso darvi altre informazioni?
se dai calcoli che hai fatto, trovi 0,52 volt, non vedo perchè devi abbassarla a 0, 25,
portala su, poi vedi se toccandoli con la mano non scaldano, va bene così altrimenti scendi un pochino.
guarda che fino a 50 °C sei ancora abbondantemente al sicuro.
l'importante che i calcoli siano esatti.
la mia monta motori bipolari da 4A ed è alimentata a 30 volt con driver autocostruiti con l297 e due l6203 per ogni canale e comunque se ci tiri un po' con la velocita' ha voglia di perdere qualche passo, fresando solo legno.
ciao.
Capisco... non so ho abbassato di 0,3 come da guida... pensavo si potesse danneggiare qualcosa..
allora li ho portati a 0,52 volt (Vref) è la coppia è decisamente migliorata! ho collegato la macchina ed adesso riesce a muovere tutti e tre gli assi.
Grazie mille!!
Però questo non mi da tutte le risposte... nel senso: perchè dicono di abbassare vref?
Attualmente ho v ref pari a 0,52, alimentazione motori 15 volt (la coppia aumenta anche se aumento questa variabile?), i driver sono freddi... benchè non li sto facendo andare di continuo ma con piccoli impulsi manuali... quindi non saprei se dandogli in pasto qualcosa di più complesso a che punto arriva la temperatura...
L'assorbimento (che visualizzo sul mio alimentatore da banco) al momento è di circa 0,5 A ad asse solo peso della macchina.
un'altra cosa, per iniziare non far fare al motore troppi step/secondo , che si traducono in velocita'( mm/sec) , insomma vai piano e vedi.
abbiamo postato insieme, comunque:
i primi a rompersi sono i driver, stai con la corrente per iniziare a circa 3/4 di quella che sopportano come max.
poi se sali con la tensione la potenza migliora, pero' devi rifare la taratura con la nuova tensione che usi.
fai fare dei movimenti continui avanti/indietro all'asse e vedi se il driver ed il motore scalda.
perchè ti dicono di abbassare la vref, non lo so, la regola è quella di fare in modo che il motore non perda passi quando stai fresando, è inutile stressarli se non c'è bisogno, ma visto i motori che hai, dovrai per forza spremerli ben bene se vuoi fare qualche fresata utile.
comunque, ripeto, fino a quando tastando col pollicione non scalda nulla e riesci a tenerlo per un po' di tempo ,vai tranquillo, (metodo semplice e redditizio)
i tuoi driver li puoi mandare anche a 30 volt volendo (le specifiche dicono 35 v) naturalmente rifacendo la taratura della vref che in pratica non è altro che la corrente che il driver manda al motore.
ciao.
Per step/secondo intendi l'accellerazione? perchè il grbl 0.9j è leggermente diverso dalle guide che ho trovato su internet ... e non ho ancora trovato una guida adatta.. per settarlo come si deve.
ti allego l'immagine delle mie impostazioni, (attualmente ho settato solo gli step/mm per tutti e tre gli assi).
Un altra informazione, mi spieghi perchè quando avvio il programma e lancio la comunicazione con arduino tutti e tre i motori vibrano?? è normale....? :o :o
qui mi trovi impreparato, io uso come dicevo altri driver a mezzo passo e il pc per comandare la cnc con mach3.
tu userai altri step ed io non so se sono settati correttamente.
quello che ti ho detto piu' su vale comunque per tutti i motori e i driver, le impostazioni per il programma che usi non le so e non vorrei dirti fesserie, prova a cercare qualcuno in rete che ti possa aiutare e comunque impari provando e riprovando.
le impostazioni alla fine vanno fatte a seconda della macchina che hai , ogni macchina fa a se.
che i motori vibrino, non mi sembra tanto normale, i miei non lo fanno.
le accelerazioni, se troppo alte fanno perdere passi.
prova anche sui forum delle stampanti 3d , magari ti sanno dire qualcosa, perchè se non vado errato, mi sembra che usino lo stesso programma (grbl) e gli stessi drivers.
ciao
Capisco intanto grazie mille per avermi illuminato. Ho fatto qualche altro progresso e mi sto avventurano nelle impostazioni del grbl. Per il momento non ho ancora capito per quale motivo, appena avvio la comunicazione tra pc e arduino, i motori facciano in quel modo. Ho scritto su qualche altro forum vediamo che mi dicono... Ma in gergo perdere passi.... significa che il motore vibra ma non gira l'asse? Scusa l'ignoranza...
Adesso devo decidermi che tipo di alimentatore acquistare perché io ne avevo ordinato uno da 12, ma se posso alimentare i driver con tensione più alta ed avere una potenza maggiore, a questo punto sono un po' indeciso.
Grazie per l'aiuto comunque e buon anno
Ah un ultima cosa, in un post precedente mi hai detto di non fare troppi step al secondo (mm/sec), ovvero ridurre la velocità di avanzamento degli assi... in grbl suppongo sia il parametro: (x max rate, mm/min) a quanto dovrei impostarlo per partire? E quando mi accorgo di essere a limite? Il motore perde passi?
Grazie e tanti saluti
ciao
giovi27:
Per il momento non ho ancora capito per quale motivo, appena avvio la comunicazione tra pc e arduino, i motori facciano in quel modo
L' a4988 di suo negli ingressi STEP e DIR non ha nessuna resistenza di pullup o pulldown. Non so che "elettronica" usi, forse mancano queste.
giovi27:
Ma in gergo perdere passi.... significa che il motore vibra ma non gira l'asse? Scusa l'ignoranza...
Si: il motore non gira e vibra.
giovi27:
Ah un ultima cosa, in un post precedente mi hai detto di non fare troppi step al secondo (mm/sec), ovvero ridurre la velocità di avanzamento degli assi... in grbl suppongo sia il parametro: (x max rate, mm/min) a quanto dovrei impostarlo per partire?
Non esiste un valore "standard" da cui partire: dipende dalla tua macchina.
Io per trovare il giusto valore ho messo il valore si $110 (che corrisponde alla massima velocità dell'asse) molto alto, poi utilizzando il GCODE ho provato a muovere l'asse man mano a velocità più alta per vedere fino dove arrivavo. una cosa del tipo:
G1F300X100
F400X0
F500X100
F600X0
ecc..
trovato la velocità massima che la mia macchina supporta ho lavorato sulla accelerazione: il valore di $120, anche qui andando a tentativi aumentando man mano il valore.
Devi trovare il compromesso tra velocità e forza: nei motori stepper (se non sbaglio) la coppia diminuisce all'aumentare della velocità.
ciao
pippo72
Come elettronica al momento sto utilizzando un arduino uno, potrei aggiungergliele io ai driver per impedire questo fenomeno? Come ho fatto per i limit switch dove ho messo delle resistenze da 330 ohm. Che ne pensi?
Per quanto riguarda le velocità sto provando varie impostazioni e da quel che ho capito e visto, all'aumentare della velocità aumenta l'assorbimento perdendo in coppia come dici tu.
Facendo qualche altro esperimento e modificando la tensione che alimenta i motori con valori come 8, 12, 15, 20 e 24 volt ho riscontrato che diminuisce l'assorbimento di corrente e quindi la coppia (tenendo invariati i valori di velocità in grbl)... a questo punto prima di procedere con la taratura definitiva della macchina, mi viene da chiedere ma a che tensione alimentare i motori? E se i driver regolano in corrente, la tensione che ruolo svolge a livello di prestazioni?
ciao
Ho controllato quello che ho fatto io nella mia CNC, è sufficiente mettere un resistore di pullup da 10k al pin di ENABLE e così togli quella "vibrazione" all'accensione (chiaramente poi l'ENABLE lo devi collegare ad pin 8 di arduino).
Per il discorso della tensione: non ricordo in quale post ma in questo forum se ne è parlato più di qualche volta che quando si usano questi driver la tensione di alimentazione può (deve) essere anche 5 volte quella nominale del motore.
"L'eccesso" di tensione serve per poter arrivare ad un numero maggiore di giri (sempre a discapito della coppia).
Questo almeno è quello che mi ricordo; considerando che ho una memoria ferrea (e quindi fa ruggine da tutte le parti) spero di non sbagliarmi.
ciao
pippo72
giovi27:
Facendo qualche altro esperimento e modificando la tensione che alimenta i motori con valori come 8, 12, 15, 20 e 24 volt ho riscontrato che diminuisce l'assorbimento di corrente e quindi la coppia (tenendo invariati i valori di velocità in grbl)... a questo punto prima di procedere con la taratura definitiva della macchina, mi viene da chiedere ma a che tensione alimentare i motori? E se i driver regolano in corrente, la tensione che ruolo svolge a livello di prestazioni?
secondo me devi vedere di capire bene come lavorano i driver.
giusto quello che dice pippo72.
vedo se riesco a spiegarlo in parole povere:
motori sono un carico induttivo e pertanto la corrente fatica non poco a scorrere dentro gli avvolgimenti.
percio' quando arriva il comando per farlo girare, la tensione c'è, ma la corrente non è ancora al suo max,
considera che il singolo impulso di step dura pochissimo e la corrente non fa nemmeno in tempo a salire ai valori impostati ed il tutto si traduci in mancata potenza al motore.
ecco perchè bisogna alimentare i motori con una tensione elevata (5 volte) in modo da "spingere" con piu'
forza la corrente negli avvolgimenti
nel driver, c'è un circuitino che si chiama chopper che si accorge se la corrente è troppo elevata e provvede ad aprire il circuito che alimenta il motore.
come fa ad accorgersi? qui entra in gioco il circuito che tu hai tarato (i famosi 0,52v).
in poche parole, lui continua a lavorare ad impulsi, il tuo motore viene alimentato ad impulsi ma tu non te accorgi perchè lo fa in modo veloce e fa in modo di non far scorrere nel motore una corrente superiore a quella che tu gli hai detto tramite la taratura della vref ma la tiene sempre ai valori ottimali.
la tensione, per tornare a quello che hai chiesto sopra svolge il ruolo di spingere la corrente dentro gli avvolgimenti.
piu' alta è piu' corrente spinge negli avvolgimenti fino ad arrivare a romperli, se non ci fosse il circuito di cui parlavo sopra che la tiene a bada.
spiegazione terra terra, penso di essermi spiegato almeno un po'
probabile che non sono riuscito nell'intento, colpa mia, spiegare non è mai stato il mio forte
ciao
No invece sei stato molto chiaro, in definitiva quindi aumentare la tensione dei motori è buono... ma diventa controproducente non per il rischio di bruciare i driver o i motori perché c'è il controllo in corrente, ma per il fatto che aumentandola troppo perdo in coppia.
Ovvero: giri più alti => velocità maggiore => coppia minore => perdita di passi
Spero di aver capito bene. A questo punto dai settaggi che ho fatto (non sono interessato tanto alla velocità) resto con i 12 volt mi sembra un buon compresso... coppia/velocità
Per rispondere a Pippo, ok metterò anche una resistenza a cavallo tra enable e gnd, anche se da quel che sembra forse ho arginato il problema inserendo un condensatore ceramico da 4,7 nF tra dir e gnd, infatti ho fatto qualche lettura con l'oscilloscopio, e ho notato che quando lancio la comunicazione ci sono non pochi disturbi su quel pin (parlo del driver a4988) e sembra che adesso non lo faccia più.. Non so se ho risolto il problema ma sembra essere molto migliorato. Siate liberi di infamarmi come meglio credete se ho detto delle stupidaggini
giovi27:
No invece sei stato molto chiaro, in definitiva quindi aumentare la tensione dei motori è buono... ma diventa controproducente non per il rischio di bruciare i driver o i motori perché c'è il controllo in corrente, ma per il fatto che aumentandola troppo perdo in coppia.
Ovvero: giri più alti => velocità maggiore => coppia minore => perdita di passi
Spero di aver capito bene. A questo punto dai settaggi che ho fatto (non sono interessato tanto alla velocità) resto con i 12 volt mi sembra un buon compresso... coppia/velocità
giusto, all'aumento di giri perdi coppia, ma la velocita' di spostamento per spostare l'asse da A a B sei tu che lo decidi.
percio' se sposti piano, i giri al minuto sono piu' bassi e di conseguenza la coppia resta alta.
quello che cerco di dire, che la coppia è legata alla corrente, i motori stepper si pilotano in corrente , pertanto
piu' corrente ----> piu coppia, ma per avere piu' corrente devi aumentare la tensione, come si diceva piu' su. (naturalmente tenendo sempre d'occhio la vref.)
i giri al minuto, in fin dei conti la velocita', lo decidi tu nel setup. (accelerazioni e numero di step ).
comunque quando la cnc stara' lavorando i motori devono "spingere" di piu' per far avanzare la fresa e se non hai a disposizione coppia perdi passi, e se perdi passi butti il fresato e ricominci di nuovo.
quello che sto cercando di dirti è di non fare l'errore che fanno in molti di comperare l'alimentatore da 12 volt che poi dovrai cambiare con uno almeno da 24 volt altrimenti dovrai accontentarti invece di fresare di mettere una penna e fare solo dei bei disegni, in pratica avrai un plotter.
bada che è solo un consiglio, poi, decidi tu.
te lo dico per esperienza mia (poca )ma mi è servita
gia' che ci sono, quando avrai la tua cnc bella funzionante ti si porra un problema nuovo, fanno un polverone da paura da non poterla assolutamente usare in casa, percio' ora che lo sai , aspirapolvere, ciclone per la segatura e......attento alla mamma o alla moglie >:( ..........diventano feroci (uomo avvisato, mezzo salvato)
ciao
giovi27:
ok metterò anche una resistenza a cavallo tra enable e gnd,
No. Io ho scritto di mettere una resistenza di PULLUP quindi tra ENABLE e i 5V cosi tieni "spenti" gli a4988 durante il reset di arduino.
Ricordati che quando apri la seriale arduino si resetta rimanendo per qualche istante con tutti i pin in alta impedenza. Essendo anche i pin step e dir dell a4988 nella stessa condizione questo potrebbe muoversi come gli pare. Puoi anche mettere una resistenza (pullup o pulldown) nei pin step e dir ma così te ne servono 6 anziché una.
Ciao
Pippo72
goldx:
percio' se sposti piano, i giri al minuto sono piu' bassi e di conseguenza la coppia resta alta.
quello che cerco di dire, che la coppia è legata alla corrente, i motori stepper si pilotano in corrente , pertanto
piu' corrente ----> piu coppia, ma per avere piu' corrente devi aumentare la tensione, come si diceva piu' su. (naturalmente tenendo sempre d'occhio la vref.)i giri al minuto, in fin dei conti la velocita', lo decidi tu nel setup. (accelerazioni e numero di step ).
ecco sta qui l'inghippo dove mi perdo, la coppia è legata alla corrente fin qui ok, più corrente genera più coppia e ci siamo. quello che non mi torna è: per avere più corrente devi aumentare la tensione... aumentando la tensione da 12 a 24 volt (tensione Vmot per intenderci), perdo in coppia infatti tenendo fissi i parametri di velocità in grbl, e aumentando la tensione ho perdita di passi quindi perdita di coppia, soprattutto sull'asse y. La vref è fissa che io aumenti a 12 o a 24, resta comunque invariata sempre settata a 0,51 come da calcolo fatto sopra.
per tenere la tensione a 24 volt, devo abbassare la velocità da grbl di parecchio portarla tipo a 150 mm/min (lentissima)
con 12 volt la velocità mi arriva a circa 350 mm/min senza perdere passi. Naturalmente il tutto a macchina pulita cioè per azionare solo la struttura... cosa diversa sarà quando è in fresatura.
Pippo hai ragione... dormivo in piedi ieri sera.. PULLUP (lato +5v) e non gnd! quindi dici che inserire un condensatore che faccia di filtro su i pin step e dir non serve a nulla?
Grazie per l'aiuto ragazzi!
pippo72 dice bene, visto che il segnale di enable è attivo negato,basta che con una resistenza tra piu' ed enable, forzi il segnale alto, il quale disabilita i drivers e non si muove piu niente. se guardi la mia elettronica, vedi i tre interruttori piccoli sul frontale della scatola, quelli servono appunto a disabilitare gli enable dei tre assi.
girati in su abilitano gli enable ed i motori possono girare, giu' non abilitano gli enable ed i motori non girano anche se lanci un programma di fresatura.
avrai visto che disabilitando enable, i motori si disalimentano come è giusto(non rimangono in tiro), l'avrai notato che se non ci sono impulsi di step i motori comunque restano sempre alimentati. (inchiodati e non si muovono)
un interruttore diventa comodo ad esempio se vuoi spostare l'asse/i a mano per un qualsiasi motivo oppure passa del tempo tra una fresata ed un'altra è inutile tenere i motori alimentati.
guarda che qualcosa non quadra se mi dici che a 24 volt perdi passi, mentre a 12v no.
per primo da 12 v a 24 v devi sicuramente ritarare la vref. (e questo lo fai)
poi devi rivedere gli altri parametri di settaggio ed adeguarli.
è impossibile che con tensione minore gli stessi motori siano piu' performanti.
lo si capisce anche dal fatto che i drivers possono andare a 35v, chi gli dice al progettista del driver di farlo con tensione piu' alta con relativi costi superiorise se poi le prestazioni diminuiscono?
io capisco che al primo approccio si resta spiazzati (addirittura sembra che la legge di ohm in questo caso non vada bene, invece non è così)
biogna modificare il modo con cui si è sempre ragionato, bisogna in definitiva capire bene come funziona il driver.
ad es. leggere la corrente che assorbe il driver sull' amperometro dell'alimentatore è riduttivo, i picchi non li vedi perchè sono rapidi, al max leggi una media, che pero' non è la corrente effettiva che va al driver ed in definitiva al motore.
morale, informarsi a fondo come funziona un driver e relativo motore stepper, poi tutto diventa chiaro.
ciao