Differenze tra vari controller per motori passo passo

Salve a tutti, da un po' ho in mente di realizzare una CNC/stampante 3d utilizzando meccanica e motori di vecchi lettori cd-rom. Mi rendo perfettamente conto che la potenza dei motori in questione e' minima e che non riusciro' a combinarci grandi cose, ma mi piacerebbe ugualmente provare a farci qualcosa, anche sulo una testina che si muove seguendo delle coordinate, controllata da un pc che invia g-code. Cercando in rete ho trovato varie soluzioni hardware per pilotare i motori passo passo, solitamente vengono usati gli L298, come ad esempio nella motor shield, in un progetto del fablab di genova usano gli A3982, ci sono tutorial che spiegano come usare gli ULN 2003, oppure ancora L298 combinati con L297. Quali sono le differenze tra le varie soluzioni? Immagino che abbiano correnti e voltaggi diversi, ma in fase di programmazione cambia qualcosa? Chiedo questo perche' su reprap.org non trovo materiale sugli ULN 2003, ma solo sugli L298 e il mio progetto finito prevede che l'accrocchio funzioni inviandogli il g-code e speravo di usare qualcosa di gia' fatto e testato. A casa ho degli ULN 2003, e questo e' il motivo per cui speravo di trovare qualcosa che li utilizzasse sul sito reprap, ho trovato degli schemi per collegarli ad arduino e al motore passo passo, ma nello schema non erano presenti i diodi in controfase che invece vedo che si montano, ad esempio, nelle soluzioni che utilizzano gli L298. Posso fidarmi dello schema che non li monta o e' meglio montarli? Ho una gran confusione in testa, potete aiutarmi a fare in po' di chiarezza?

L'ULN2803 0 2003 tollera al massimo 500mA complessivi ed ha su ogni porta il diodo antiparallelo all'interno dell'integrato. Il L298 non i diodi, per cui devi metterli esterni, ma resiste a 2A per canale ovvero a 4A totali, 8 volte più dell'ULN.

Almeno che non devi crearti una micro CNC o un micro 3D printer, supponendo che sia fattibile, l'ULN non è molto adatto.

ok, immaginavo che gli L298 fossero piu' robusti, a parte questo cambia qualcosa a livello di programmazione? i vari esempi che si trovano per controllare gli stepper sono uguali a prescindere dall'integrato usato?

Devi distinguere i motori passo passo in unipolari (Transistori o ULN2003) o Bipolari (Ponte H come L293 L298) Distingui bipolari pilotaggio in tensione (L293 L298) o in corrente (L297+L298, A3967, A4988 ecc) I L29x o ULN2003 non hanno una logica per la modalitá di pilotaggio. Hanno 4 entrate che devi pilotare via SW in sequenza. I L297+L298, A3967, A4988 ecc hanno una logica integrata che genera la sequenza per pilotare gli avvvolgimenti. Questi si pilotano con un segnale di direzione e di passi.

Un motore che sposta la testina di un CD, DVD o dischetto lo piloti con un L293D a 5V. Esempio: (purtroppo solo in tedesco ma le immagini si capiscono comunque): http://www.heise.de/hardware-hacks/projekte/Laserplotter-1745578.html Pitusso lo ha realizzato. Ti aiuto anch io nella traduzione se hai interesse.

Ciao Uwe

Se vuoi per pilotare quei motori puoi usare dei FDD come ho usato io quì:
http://www.dmxpassion.altervista.org/pg015.html

Grazie a tutti per le risposte.

@uwefed come sempre le tue risposte sono molto esaustive, mi hai tolto molti dubbi, ma ora ne ho altri andro' a studiarmi le differenze tra pilotaggio in tensione e in corrente, per la traduzione non c'e' problema, google translate e' riuscito a tradurre la pagina in un italiano quasi comprensibile

@goldx per ora mi accontento di un giochino, stavo cercando una soluzione poco dispendiosa per muovere i motorini dei cd-rom e credo che provero' la soluzione fornita da uwefed con gli L293D, quando vorro' fare qualcosa di serio spendere una decina di euro per pilotare ogni motore non sara' un problema

@icio se non ricordo male i floppy possono essere pilotati semplicemente inviando dei segnali sui piedini giusti del connettore, senza bisogno di hardware esterno, ora mi guardo tutto il sito e vedo se con i due floppy che ho in casa posso ricavarci qualcosa.

in ogni caso, da quello che mi pare di capire, se voglio che arduino interpreti il g-code sono da escludere soluzioni basate su transistor, ponti H ma mi servono soluzioni come gli L297+L298 e simili

Anche se il connettore da 34pin del FDD sembra simile a quello da 40pin IDE il funzionamento è completamente diverso, 17 piedini dei 34 sono a massa , ci sono 2 pin STEP / DIR per comandare il motore del carrello e un'altro pin per accendere e spegnere il motore BL del disco, inoltre c'è il sensore ottico di zero macchina ove il carrello non và oltre, quindi FDD ha un asse lineare completo di tutto, ha però solo un'escursione di 16mm e una spinta assiale di soli 40grammi circa

ivani: in ogni caso, da quello che mi pare di capire, se voglio che arduino interpreti il g-code sono da escludere soluzioni basate su transistor, ponti H ma mi servono soluzioni come gli L297+L298 e simili

No. Per il G-Code serve solo un interprete che trasforma i comandi G-Code in passi da fare. Il porgetto lincato lo fa a livello PC. Un altro progetto descritto in un edizione cartacea usava un interprete G-Code sul Arduino. Vedo domani se trovo qualcosa da indicarti.

Gli integrati che possono essere usati non dipendono dal tipo di pilotaggio o G-Code. I L293 e L298 sono integrati di concezzione di 40 anni fa e sono realizzati in transitori NPN/PNP di potenza. Hanno delle perdite sui stadi di potenza molto alti (per il L298 parliamo intono a decine di W a 2A corrente motore) rispetto ai A4988 o A3967 che hanno MOSFET.

Ciao Uwe

ivani: in ogni caso, da quello che mi pare di capire, se voglio che arduino interpreti il g-code sono da escludere soluzioni basate su transistor, ponti H ma mi servono soluzioni come gli L297+L298 e simili

Quasi tutti i firmware, anzi forse tutti, sono scritti per inviare i comandi agli stepper tramitre 3 pin: step, direction, enable. Se tu vuoi utilizzare un passo passo basato su ULN o ponte H devi mettere tra l'interprete G-CODE e il motore passo passo un componente che "trasformi" i comandi in impulsi per il movimento del motore.

ivani: Grazie a tutti per le risposte.

@uwefed come sempre le tue risposte sono molto esaustive, mi hai tolto molti dubbi, ma ora ne ho altri andro' a studiarmi le differenze tra pilotaggio in tensione e in corrente, per la traduzione non c'e' problema, google translate e' riuscito a tradurre la pagina in un italiano quasi comprensibile

@goldx per ora mi accontento di un giochino, stavo cercando una soluzione poco dispendiosa per muovere i motorini dei cd-rom e credo che provero' la soluzione fornita da uwefed con gli L293D, quando vorro' fare qualcosa di serio spendere una decina di euro per pilotare ogni motore non sara' un problema

@icio se non ricordo male i floppy possono essere pilotati semplicemente inviando dei segnali sui piedini giusti del connettore, senza bisogno di hardware esterno, ora mi guardo tutto il sito e vedo se con i due floppy che ho in casa posso ricavarci qualcosa.

in ogni caso, da quello che mi pare di capire, se voglio che arduino interpreti il g-code sono da escludere soluzioni basate su transistor, ponti H ma mi servono soluzioni come gli L297+L298 e simili

le cnc di adesso vanno fatte con i motori brushless, gli stepper hanno il terribile difetto di non segnalare se hanno effettuato lo step o no (per un motivo qualsiasi ) trovarsi a fine lavoro con gli stepper che hanno (troppi) passi di solito significa buttar via il lavoro =(

Infatti leggevo di soluzioni con motori diversi dai passo-passo ed encoder rotativi, ma gia' cosi' ho una marea di cose da studiare e sperimentare, quelle sono soluzioni che valutero' quando vorro' fare qualcosa di serio, per ora un modellino in scala mi basta e avanza. Mi sono anche reso conto che devo ristudiarmi bene la parte che va dal disegno su pc al g-code ai movimenti dei motori.

In attesa di avere sottomano i controller adatti a pilotare gli stepper dei cd-rom credo che giochero' un po' con i floppy, ne ho un paio in giro per casa, e da quello che ho capito posso pilotarli direttamente da arduino, peccato solo non averne un terzo, con una configurazione come le stampanti delta si potrebbero trasformare quei 1,6 cm in qualcosa di piu', anche se tutta la struttura dovrebbe essere veramente leggera e dovrei studiarmi tutta la geometria applicata alla configurazione delta (e relativa termilogia tecnica) Lo sapevo che non sarebbe stato facile come pensavo io fino a due giorni fa :)

Usando la meccanica di un CD hai 40mm invece di 16mm , con driver per il motore puoi usare il FDD

elrospo: le cnc di adesso vanno fatte con i motori brushless, gli stepper hanno il terribile difetto di non segnalare se hanno effettuato lo step o no (per un motivo qualsiasi ) trovarsi a fine lavoro con gli stepper che hanno (troppi) passi di solito significa buttar via il lavoro =(

Le CNC proffessionali di alte prestazioni avevano da sempre motori non passo passo e encoder di posizione. I problema é che il pilotaggio é molto piú complicato e costoso. Per un CNC fatta in casa non conviene andare questa via. Un motore passo passo dimensionato in maniera giusta va benissimo. Ciao Uwe

hai ragione 8) solo che adesso anche nell'entry level i passo passo non sono visti di buon occhio, anche perché un passo passo serio più scheda controllo ci vogliono 200 euro :fearful: poi tutto dipende, dire cnc senza specificare che cosa ci devi lavorare che dimensione e che precisione vuoi ottenere,

un conto e spostare una testina reprap di pochi etti, un conto e spostare un mandrino di 3 kilowatt che "asporta" metallo dal pieno

l'utente ivani non vuole "spostare un mandrino di 3 kilowatt che "asporta" metallo dal pieno", vuole solo avere la soddisfazione di vedere qualcosa muoversi spendendo pochi euro