Partecipo volentieri a questa discussione e vi metto a conoscenza di quello che sono riuscito a fare fino ad ora, vado a memoria dato che non ho sotto mano il programma:
- motore nema 34 wantai diretto su un bv 20 con vite passo 3 alimentato a 60v (starato alimentatore fino a 70v ma non migliora molto):
velocita' "affidabile" circa 180 giri a 1/2 passo e 160 a 1/8 di passo , per avere una risoluzione decente io userei 1/8 di passo
diciamo che ho risoluzione devente e volocita' di 160x3=480mm/min ovvero se filetto passo 1 ho il mandrino a circa 480 giri (comunque pochi se devo fare un m6
..ma ci accontentiamo, diciamo che gli inserti sono utili solo perche' anno il profilo corretto ma come velocita' l'hss va ancora alla grande alla grande)
- fino ad ora ho fatto solo l'avanzamento manuale con interruttore avanti indietro e potenziometro per la velocita' con rampe accellerazione messe in un array che
viene scalato mano amano che procedo. Posso gestire anche inversioni di marcia con decelerazione-inversione senso-accellerazione.(questo mi ha un po
incasinato la linearita' del programma).
- il programma sostanzialmene si concentra in una funzione di avanzamento che viene sfruttata in tutti i movimenti sia di filettatura , sia tornitura sia ritorno rapido.
in questa ho inserito un contatore che fa scalare l'array per sommare il tempo di accellerazione, in esso contenuto, al tempo di passo.
- il tempo di passo e' per ora gestito dal timer che attiva l'inerrup per far fare il passo con la tempistica corretta.
basta sostituire l'ingresso di clock con quello dell'encoder mandrino e ci siamo.
- problema... l'encoder deve essere in relazione alla capacita' del timer 16 o 8 bit abbastanza grande per filettare passi grossi e abbastanza preciso per quelli piccoli.
per ora sono incasinato sulla gestione dell'encoder in quadratura dato che mi impegna un'altro timer e ora non ricordo bene il motivo ma no avevo trovato soluzione
migliore che demandare ad un'altro micro il compito di contare gli impulsi e determinare il verso di rotazione e, al raggiungimento del valore presettato, dare il
segnale all'arduino di gertire il passo ecc..
Scritto frettolosamente
Ora devo andare ma la prossima volta vi porto informazioni piu' dettagliate.
Mandi Mecha