DrivePP


Driver per motori passo passo
DrivePP
Figura 1



Schema elettrico
Drivepp
Figura 2


Datasheet dei componenti utilizzati
74191Contatore binario up down m16Datasheet
74004 nand a 2 ingressiDatasheet
74324 or a 2 ingressiDatasheet
bdx54cDarlington pnpDatasheet
byv27Diodo veloce 200 maDatasheet


Questo progetto si occupa di pilotare un motore passo passo, per comprenderlo al meglio occorrerebbe conoscere i motori passo passo. Se non hai idea di come sono fatti o di come funzionano dai un occhiata al tutorial nella sezione teoria.
...lo so, lo schema elettrico e' incasinato... ma in realta' il circuito e' molto semplice. Avevo voglia di realizzare un driver per motori passo passo con dei componenti discreti dopo che avevo recuperato da una scheda elettronica dei darlington pnp, i bdx54c. I bdx54c hanno un hFe statico di 750 e possono erogare fino ad 8 Ampere. L'unica cosa e' che sono pnp ed io non sono mai stato abituato a ragionare in logica negativa... Ma in realta' non e' niente di strano, basta progettare il tutto come se fosse in logica positiva e poi negare tutte le uscite che vanno a pilotare le basi dei pnp.

Il mio progetto doveva prevedere 3 ingressi per il pilotaggio del motore passo passo :
1) un ingresso di enable attivo basso per abilitare o meno il funzionamento del passo passo.
2) un ingresso di clock sul quale mettere un onda quadra con frequenza proporzionale alla velocita' di rotazione desiderata.
3) un ingresso di direzione che faccia girare il motore in un senso se e' basso, nell'altro senso se e' alto.

Queste ultime 2 considerazioni mi hanno fatto pensare ad un contatore up/down cioe' un dispositivo che fosse in grado di generare un numero binario che aumenta o diminuisce a seconda dello stato di una sua linea di controllo, up o down appunto. In realta' per il mio circuito sarebbe bastato un contatore binario up/down modulo 4 ma in casa avevo solo dei 74191 che sono modulo 16 e per di piu' presettabili. Poco male.

Come si vede dal circuito elettrico, i segnali clk, ena/ e dir sono connessi direttamente al contatore : clk al clock del contatore, ena/ all'enable del contatore e su un ingresso delle or di uscita (se e' a 1 le or hanno tutte l'uscita a 1 e quindi tutti i pnp sono intrerdetti), dir alla linea up/ down (se e' a 0 conta in su, se e' a 1 conta in giu').

Poi c'e' tutta una rete di nand (7400) e or (7432) che sembra complicatissima ma in realta' non lo e' : essa ha solamente il compito di realizzare la funzione binaria, per ogni uscita y(n), che viene riportata nella tabella seguente.

Tabella degli stati ingressi/uscite

q1q0y0y1y2y3
000111
011011
101101
111110


I transistor finali, essendo pnp, sono saturi se hanno uno 0 in base, interdetti se hanno un 1. Ecco che tramite la rete logica possono essere pilotati affinche' siano saturi secondo la sequenza y0, y1, y2, y3. Questo significa avere uno 0 in base ed avere l'uscita attiva, per cui eccitare la fase del motore passo passo che vi e' collegata.

Ho pensato di utilizzare un 7805, per le alimentazioni degli integrati, per non richiedere una doppia alimentazione : VL per le fasi del motore passo passo, 5V per gli integrati. (Prima o poi mi decidero' ad usare i CMOS...). Basta quindi alimentare il circuito con la tensione di fase dei motori passo passo e per la 5 volt ci pensa il 7805 (con la speranza di utilizzare motori passo passo che abbiano tensione di fase superiore a 5 volt + la vdrop del 7805...).

Tutti questi dubbi mi vengono sempre dopo che ho costruito i circuiti, segno che l'elettronica si impara solo sperimentando sul campo.
Infine in parallelo alle fasi del motore passo passo ho montato dei diodi di ricircolo molto veloci, stavolta non i soliti 1n400x ma dei bei byv27 da 200 ma.
Questo driver puo' essere utilizzato con un Pic "alle spalle" e con sole 3 linee si ha il completo controllo del motore, nulla vieta di connetterlo alla parallela o alla seriale del pc e di comandarlo da li. Le idee possono essere molteplici, sta nella fantasia di ognuno trovarne l'utilizzo piu' adatto alle proprie esigenze.


Stampa la pagina