Alcuni dubbi sugli stepper

Buonasera a tutti,

Fino ad oggi ho usato dei motori da tergicristalli e hanno una discreta coppia (intorno ai 40nM) per macinare i grani con il mulino o per muovere le pale o per altri scopi. Dato che ho bruciato l alimentatore a 24V ho deciso di provare ad usare i motori stepper.

Io ho un motore stepper però non sono certo delle specifiche, dovrebbe essere ibrido a 1.8°.
Se la memoria non mi inganna dovrebbe essere tipo questo
23KM-K144B in questo datasheet.

per ora ho provato il classico drive da asse cnc pilotato con arduino mini, è una schedina a cui arrivano 3 segnali, ovvero enable, clock e cw/ccw, ma il motore non sembra avere coppia sufficiente per i miei scopi.

Ho settato gli switch in modo da avere una corrente massima di 3A per lo spunto (ho pensato che comunque sovradimensionare un po' non fa mai male), pilotare in microstep da 1/16 e avere un current decay del 100%.

non conoscendo il parametro del current decay, mi sono documentato un po' in rete e mi pare di aver capito che serve essenzialmente per evitare che due mosfet chiudano nello stesso momento e che la corrente induttiva venga dispersa più velocemente.
Forse ho capito male e per questo chiedo a voi un chiarimento ulteriore su questo parametro.

Ho mappato un potenziometro in modo tale da avere una frequenza variabile su un pin PWM che va dai 60 agli 11000 Hz e se non sbaglio dovrei fare da 1 a 206 giri/min
360/1.8 = 200 ovvero i passi in un giro
freq60/(20016) = giri al secondo * 60 = giri al minuto (me la sono ricavata, penso che sia giusta come formula).

Ho provato ad alimentare con il mio alimentatore da banco a 12v e a 24v ma lo stepper non sembra avere sufficiente coppia. Ho provato a modificare lo stepping ma le cose sono solamente peggiorate.
Come posso aumentare la coppia? devo alimentare lo stepper a una tensione maggiore mantenendo invariata la corrente? credo di poter arrivare al massimo a 40v con la scheda che ho preso.

Ho ripassato i fondamentali sugli stepper ma non ho ben capito la differenza tra un motore ibrido rispetto ad uno a magnete permanente in funzione delle prestazioni.
In termini di angolo quelli ibridi sono più precisi avendo una struttura che consente più posizioni, hanno coppia elevata e bassa velocità. Quelli a magnete permanente sono soltanto meno precisi o sono peggio a prescindere dallo scopo in cui vengono usati?
in realtà la vera domanda è questa, dato che queste due tipologie coesistono, ci sono degli impieghi in cui vengono preferiti gli uni rispetto agli altri oppure se si vuole stare bassi coi costi si prendono quelli a magnete permanente mentre se si vuole essere estremamente precisi si comprano motori ibridi?

comunque tornando al problema principale: per avere più coppia devo proprio cambiare motore oppure posso tentare ancora qualcosa con gli oggetti che ho?

Grazie mille

Calamaro:
comunque tornando al problema principale: per avere più coppia devo proprio cambiare motore oppure posso tentare ancora qualcosa con gli oggetti che ho?

Quel motore al massimo fornisce 1 nM in stallo, c'è una piccola differenza rispetto ai 40 nM dell'altro motore :slight_smile:

Si ok, fino a qui c'ero arrivato :grinning: quindi considerando che a me serve una coppia di circa una 20ina di Nm dovrei o cambiare motore o trovare un gearbox!

Per quanto riguarda la scelta del motore quindi cosa mi consigli? Stepper a magnete permanente o ibrido e perché?

In effetti ho tutta l aria di uno che si è perso in un bicchiere d'acqua!

Motori Ibridi sono piú potenti (oltre che hanno piú passi). Quale motore dipende adesso da quello che vuoi fare.
Ciao Uwe

Calamaro:
Per quanto riguarda la scelta del motore quindi cosa mi consigli? Stepper a magnete permanente o ibrido e perché?

Nessuno dei due, usa un motoriduttore, costa di meno, è più semplice da controllare, a parità di peso/dimensioni è più potente e molto più efficiente.

I miei dubbi nascono dal fatto che in ditta abbiamo dei prodotti che servono a pilotare stepper e con motori simili arriviamo a più di 60Nm. Ho chiesto e mi hanno detto che vengono pilotati in corrente, non in tensione come fa la drive board che ho preso.
L alimentatore da banco che ho mi visualizza sia la corrente che la tensione e l assorbimento medio si attesta intorno agli 0.9A! Anche se seleziono 3A! Probabilmente queste schede sono molto limitate e non sono progettate per la velocità di stepping che gli do io!
Quindi ora provvederò a progettare una drive da zero sperando di riuscire nell'intento!

Calamaro:
I miei dubbi nascono dal fatto che in ditta abbiamo dei prodotti che servono a pilotare stepper e con motori simili arriviamo a più di 60Nm. Ho chiesto e mi hanno detto che vengono pilotati in corrente, non in tensione come fa la drive board che ho preso.

Gli stepper vanno controllati in corrente, farli andare in tensione è il modo migliore per rovinarli oppure non ottenere le prestazioni massime.
In tutti i casi non puoi cavare il sangue da una rapa, ovvero se il motore è da 1 nM non puoi ottenere di più, certo se lo sovralimenti forse arrivi pure a 2 nM prima che diventa luminoso e 1/2 secondo dopo una pozza di metallo fuso sul pavimento :grin:

le dimensioni di quelli che ho a lavoro sono uguali a quello che ti ho linkato, però devo informarmi meglio sulla tipologia :smiley:
Ho visto che costano poco perchè probabilmente vengono comprati a stock!
Ora faccio ricerche più approfondite.

Come comando per far andare il motore do su un pin analogico

pwmWrite(clk_out, 128);

questo è un impulso che in teoria ha duty 50%, se aumento o diminuisco il duty in teoria non succede nulla alla corrente, giusto? ho fatto la prova ma a occhio non sembra che cambi nulla.

il current decay cosa è? non sono riuscito a capirlo, o meglio non riesco a farmi un idea precisa.

a grandi linee cambiando il current decay si va ad agire sul transitorio dei segnali che arrivano ai mosfet, cercando di impedire che due mosfet opposti nel ponte H chiudano nello stesso momento e che le correnti di ricircolo si disperdano più velocemente.
Però non ho capito fisicamente come funziona... perchè è espresso in %? ormai devo capirlo!

accetto anche uno "hey str.... guarda qui!"

Calamaro:
le dimensioni di quelli che ho a lavoro sono uguali a quello che ti ho linkato, però devo informarmi meglio sulla tipologia :smiley:

Guarda è praticamente impossibile che un motore come quello arriva a dare più di 2-3 Nm, per giunta parliamo di coppia di stallo/tenuta e non di quella in rotazione, sicuro che i motori di cui parli non sono dotati di un riduttore 50:1 ?

Come comando per far andare il motore do su un pin analogico
pwmWrite(clk_out, 128);
questo è un impulso che in teoria ha duty 50%, se aumento o diminuisco il duty in teoria non succede nulla alla
corrente, giusto? ho fatto la prova ma a occhio non sembra che cambi nulla.

Non so dove hai trovato questo comando, su Arduino si usa analogwrite() per il pwm, inoltre con gli stepper il pwm non c'entra nulla.
Il cambio del duty cycle, su i motori DC, ha l'effetto di far vedere al motore una tensione equivalente pari ad a quella di alimentazione moltiplicata per %duty/100, nei motori DC il cambio di tensione cambia la velocità di rotazione mentre la corrente è in funzione del carico meccanico.
Con gli stepper le regole cambiano perché la velocità di rotazione dipende dalla frequenza di commutazione delle fasi mentre la corrente viene mantenuta ad un valore costante, di conseguenza viene limitata la tensione, all'aumentare del carico meccanico è necessario aumentare la tensione delle fasi per mantenere la corrente costante.

il current decay cosa è? non sono riuscito a capirlo, o meglio non riesco a farmi un idea precisa.

Se mi decontestualizzi un parametro come faccio a dirti cos'è ?
Purtroppo ogni produttore di driver fa di testa sua, non esiste uno standard e i termini che usano sono spesso molto "fantasiosi".

in questo momento non sono sicuro, domani saprò tutto con esattezza!

la scheda è questa e ora che ci ripenso non capisco neanche cosa sia Stop Current...

io li odio questi produttori che usano il nome di Arduino a vanvera e poi non danno ne uno schema elettrico, ne una spiegazione nulla. Attacca la scheda così vedrai che funziona, l'ha saldata il figlio di chun-li deve funzionare per forza!
Però come fai, quando non sai ancora dove andrai a parare, a comprare delle schede da più di 30 euro?
prendi ste cinesate, fai le tue prove, se distruggi tutto tanto perdi max 15 euro e via... (ce l'ho con me stesso)!

Uso pwmWrite perchè uso la libreria pwm.h perchè mi serve per regolare la velocità di rotazione. Se usassi analogWrite avrei sempre stessa frequenza (490Hz mi pare)

  lcd.setCursor(0,0);
  lcd.print("lt/min : ");
  int freq = map(analogRead(pot),0,1024,70,11000); //1/16 stepping
  printa_vel(freq);
    if(SetPinFrequencySafe(clk_out, freq) && e == 1) 
      digitalWrite(led,HIGH);
    else
      digitalWrite(led,LOW);
   if(e == 1)  
    pwmWrite(clk_out,128);
   else{
     SetPinFrequencySafe(clk_out, 0);
     pwmWrite(clk_out,0); 
   }
  contr_pins();
  en = digitalRead(en_pin);
  lcd.setCursor(0,1);
  
  lcd.print("en: ");
  if(en == 0) lcd.print("OFF");
  else lcd.print("ON ");
  dir = digitalRead(dir_pin);
  lcd.print("dir: ");
  if(dir == 0)
    lcd.print("AO");
  else lcd.print("OR");
}

Comunque in settimana dovrebbe arrivarmi un'altra arduino pro per fare altre prove, posso provare a simulare un rapporto 50:1 e vedere se la coppia ottenuta mi soddisfa :smiley:

l'unica cosa che sono riuscito a trovare è questa:

PS stop current è la corrente nominale che passa nel motore quando è fermo!

TB6560-1axis.pdf (55.5 KB)

ma se vuoi piu' coppia, perche' lo piloti in microstepping ?

perchè non avendo un freno motore, ho pensato che la configurazione che consumava più corrente fosse quella che mi avrebbe dato più coppia!

Calamaro:
perchè non avendo un freno motore, ho pensato che la configurazione che consumava più corrente fosse quella che mi avrebbe dato più coppia!

Sono due cose distinte
Comunque dalla tua foto metterei :
S1 ON ( 2,2A )
S2 OFF ( 50% )
S3 OFF / S4 OFF( Full Step )
S5 OFF / S6 OFF( Decay FAST 0%)

Edit,: Penso di confondermi con il decay... forse e' meglio il contrario S5 ON / S6 ON

io li odio questi produttori che usano il nome di Arduino a vanvera e poi non danno ne uno schema elettrico, ne una spiegazione nulla. Attacca la scheda così vedrai che funziona, l'ha saldata il figlio di chun-li deve funzionare per forza!

:grin:

La documentazione è parte integrante del prodotto, mi dispiace che siamo rimasti in 3 a pensarla così. Potresti indagare su i chip montati su al fine di farti una idea su come usarla, oppure scassa le palle al produttore, inviagli 29000 email, intasagli il server, aspettalo sotto casa.

Ciao.

Io pensavo che il fast fosse il 100%... ok faccio una prova!

MauroTec:
:grin:

La documentazione è parte integrante del prodotto, mi dispiace che siamo rimasti in 3 a pensarla così. Potresti indagare su i chip montati su al fine di farti una idea su come usarla, oppure scassa le palle al produttore, inviagli 29000 email, intasagli il server, aspettalo sotto casa.

Ciao.

Ti istigano proprio alla violenza quando non c'è un part number o un riferimento nemmeno sugli integrati della scheda!

stavo pensando di passare a un motore lineare con gearbox, ma come si chiamano gli encoder ottici?
non riesco a trovarli, quelli fatti a C con un tondino che gli gira dentro.

sensore forcella?
https://www.google.it/search?q=sensore+forcella&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:it:official&client=firefox-a&gfe_rd=cr&ei=YyvnVKrgGaas8wen14HABw

Ti istigano proprio alla violenza quando non c'è un part number o un riferimento nemmeno sugli integrati della scheda!

Non voglio infierire, ma dimmi ti senti di aver fatto un affare?
No, quindi non comprare bigiotteria tecnologica, altrimenti finirà che anche altri produttori si sentiranno autorizzati a non fornire documentazione tecnica.

Ciao.

Infatti oggi mi è arrivata una nucleo originale della ST :smiley: