Palpatore con motori Stepper

Ciao a tutti, ho perso l'account e mi sono riiscritto. :sweat_smile:
Che qualcuno di voi sappia è possibilie usare un motore stepper tipo nema17 per prendere delle misure?
Vi spiego, in poche parole devo per esigenza lavorativa creare un tornio piccolino verticale che in poche parole facendo una passata muovendo con la mano il porta inserto del tornio prendo la forma superficiale frontale del pezzo da tornire(che cambia ogni volta). I motori stepper che girano sulle viti senza fine passano i dati ad arduino ed io salvandomeli ho il profilo del pezzo.
Successivamente il tornio fà una passata in automatico che toglie un decimo da tutta la superficie del pezzo.
Inizialmente volevo farlo con i servo ma non sono adatti e dopo poco si brucierebbero... Purtroppo i motori stepper non li ho mai usati e da quello che ho visto non riesco a capire se usando magari anche controller particolari si possa fare o meno...
Qualcuno mi saprebbe aiutare? :grinning:
Grazie !!!

... o ci dici che account avevi e dove è la presentazione o ... il REGOLAMENTO lo conosci ... e ti tocca ripresentarti ... :slight_smile:

Guglielmo

Ripresentato :ok_hand:visto che è un forum e dovrebbe essere costruttivo per tutti cerco di dare una mano anche a i gestori...secondo me sarebbe comodo che faceste scrivere la presentazione già nel sign in magari con un popup semplice dove farla,una volta scritta si può procedere...:grinning:

Attendo vostri pareri per il quisito degli stepper👍

I motori stepper non ti danno alcun feedback sulla posizione.
Devi aggiungere un encoder o un resolver o comunque un sistema di feedback

Nel frattempo ho anch'io dato uno sguardo grazie,opterò per un motore con encoder incorporato... pensavo di usare un a4988 l'unica mia perplessità e sulla tensione da dare alla scheda per il motore.
Ho visto che Uwe aveva scritto in un post che con un motore da 5.4v nom. e 1A per bobina bisognava prendere un alimentatore almeno di 24 volt e 1.5/2 A...
Non basterebbe un 6volt 2 A come alimentatore?
In più a detta sua in fullstep l'a4988 dà solo il 71% della corrente... però in un paio di posti ho visto questa procedura per ricavare la vref (foto), è necessaria o andrei solo a diminuire ancora di più


?

I motori stepper (e tutti i motori più in generale) si controllano in corrente quindi le indicazioni per l'alimentatore sono giustissime, ci penserà il driver a modulare la corrente in funzione della Vref.

Andrebbe bene anche un 12V, ma solitamente con gli stepper più la tensione è alta (entro i limiti del driver) e migliori sono le prestazioni dinamiche anche se nel tuo caso la cosa è poco influente.

Per quanto riguarda il calcolo della Vref, prendi con le molle le formule che trovi online.
Non mettono mai bene in evidenza che il risultato dipende dalla specifica resistenza di sensing Rs che viene saldata sulla board.
Nell'esempio che hai postato viene assunto che è da 0.1 Ohm perché è quella più comune, ma non sempre è cosi.

Se vuoi verificare i calcoli per bene e vedere qual'è la corrente in ciascuna modalità consulta il datasheet del driver e ci sono tutti i dettagli (c'è una tabella con le combinazioni microstepping / %corrente).

Per quelli pigri invece, ci sono anche dei comodi calcolatori online come ad esempio questo e come puoi vedere, prima di ottenere un valore per la Vref, devi selezionare il tipo di driver, il tipo di resistenza saldata e la percentuale "di margine" che vuoi avere rispetto alla corrente massima del motore.

Parli di un tornio, quindi pesumo un pezzo fondamentalmente cilindrico (o comunque derivato da un cilindro) del quale vuoi rilevare il profilo di sezione per poi farlo replicare in automatico, se non ho capito male quello che intendi.

Se si, a parte l'elettronica (che e' importante ma non e' l'unica cosa importante), hai gia realizzato la parte meccanica del sistema che dovra' rilevare il profilo ? (carrello con guide, cuscinetti, supporti per la vite, demoltipliche, sistema di movimentazione del sensore, eccetera) ... e come sensore cosa vuoi usare, fotoelettrico, laser, tastatore da banco prove, sensore autocostruito, altro ?

Ok grazie per la delucidazione , quindi la corrente in uscita perde in sto caso il 30% solo ed unicamente in base a come io imposto Vref...non ha un sistema che già di suo lo fà mi pare di aver capito...
Quindi supponendo che io usi questo motore (come es.) e un alimentatore che ho già per il motore da 12v 4A


Sapendo che per impostare la Vref a fullstep farei 2.4A x (8x 0.1nel mio caso)...
Poi a questo valore sottraggo il 30% per sapere la Vref ...
A questo punto regolo la Vref sulla scheda e dovrei aver fatto ?

Userò viti senza fine ,encoder su motore che togliendo l'enable dall'a4988 mi permette di muoverlo a mano andando con l'utensile a tastare il profilo prima...mi memorizzo i valori su una sd e dopo li faccio rileggere ad arduino decrementando di qualche punto di modo che tolga la fettina che serve a me...

Per quale ragione 2.4?
La corrente da tenere in considerazione è quella di fase, ma una sola.

(1.2 * 8 * 0.1) - 30% = 0.672 Vdc

Comunque un derating del 30% secondo me è pure troppo... se vedi che perdi troppa coppia alza serenamente al -20/-10%

Tu probabilmente vuoi tornire i cerchioni di alluminio delle automobili per tirare via l'anodizzato dove vuoi per farli diventare a specchio

AHAHAHAHAH Complimenti sentiti davvero per aver azzeccato :rofl: :rofl: :rofl:

Grazie a tutti per il supporto :muscle: :+1:

Ho appena acquistato un 17HS2408 e l'ho collegato come segue
schema


Vref l'ho calcolata con (0,6x8x0,1) -30%= 0,336V
Collegato così scalda l'integrato potente dopo pochi secondi... possono magari essere le fasi che le ho invertite? io le ho montate esattamente come schema
e messo questo codice per testare

//Definizione dei PIN
const int pinDir = 2;
const int pinStep = 3;

const int numStepMotore = 200; //E' il numero di step per rotazione del motore (potrebbe differire in base al modello)
const long velocita = 1000; //Si tratta di microsecondi tra un impulso e l'altro sul pin STEP

void setup() {
  //inizializzo i PIN come OUTPUT
  pinMode(pinStep, OUTPUT);
  pinMode(pinDir, OUTPUT);
}
void loop() {

  //definiamo la direzione del motore
  digitalWrite(pinDir, HIGH);

  //esegue un giro completo in un senso
  for (int x = 0; x < numStepMotore; x++) {
    digitalWrite(pinStep, HIGH);
    delayMicroseconds(velocita);
    digitalWrite(pinStep, LOW);
    delayMicroseconds(velocita);
  }

  //aspetto 2 secondi
  delay(2000);

  //cambio la direzione di marcia
  digitalWrite(pinDir, LOW);

  //rieseguo un altro giro completo nel senso opposto
  for (int x = 0; x < numStepMotore; x++) {
    digitalWrite(pinStep, HIGH);
    delayMicroseconds(velocita);
    digitalWrite(pinStep, LOW);
    delayMicroseconds(velocita);
  }

  //aspetto altri 2 secondi
  delay(2000);
}

Secondo voi che è andato storto? :face_with_raised_eyebrow:

Che l'integrato scaldi un po' è del tutto normale. Non ti hanno fornito un piccolo dissipatore insieme al driver?
Ovviamente non deve essere una temperaura eccessiva... magari per i primi test ancora più basso con la Vref, giusto la corrente che basta per far muovere il motore.

Le fasi invertite non creano alcun problema, però controlla con il multimetro che ci sia continuità (qualche decina di ohm) tra 2B - 2A e tra 1B - 1A

Ottimo,ho risolto abbassando ancora un filo la vref :+1:

Grazie :grinning: :grinning: