Mauro Alfieri

appunti, tutorial e altro … sui miei interessi

  • Home
  • Chi sono
  • Interessi
  • Corso Arduino
  • Collabora a questo blog
  • Contatti

Come eccitare un motore passo passo bipolare – seconda parte

Author: francodare

Sulla scia delle conoscenze acquisite grazie a Franco, ecco come puoi risparmiare 2 pin di Arduino per pilotare i motori passo-passo bipolari semplicemente aggiungendo all’SN754410NE, due transistor , cinque resistenze e otto diodi.

Motore passp-passo bipolare in eccitazione 2-2

Riprendo quello che ha scritto Franco in merito a questa configurazione:

è quanto consigliato sul datasheet dell’integrato SN754410 della Texas Instr. solo che ho impiegato dei comuni transistor BC547  ; i diodi di protezione sono degli altrettanto comuni 1N4007

Sai che la curiosità, in questo caso, è dell’elettronico e quindi guarda il datasheet; a pagina 6 trovi lo schema in questione, di cui riporto una immagine direttamente presa da dato PDF:

pagina 6 del datasheet SN754410NE

dallo schema sai che con soli due pin Control A e Control B puoi controllare un motore passo-passo bipolare. Il problema potrebbe essere ottenere i segnali in NOT sui piedini complementari ad ogni eccitazione di una fase.

Franco ha realizzato tutto questo con soli 2 transistor BC547 , 2 resistenze da 1KΩ e 2 resistenze da 10KΩ, ecco lo schema con cui puoi realizzare il collegamento ad Arduino:

schema motori passo-passo con SN754410NE e 2 pin Arduino

Ed ecco lo stesso schema realizzato con Fritzing:

stepper 2-2 componenti

I componenti impiegati puoi facilmente reperirli in commercio e realizzare rapidamente il tuo driver per il motore passo-passo con eccitazione 2-2, passiamo allo sketch con cui puoi pilotare il driver:

 /* Stepper Controll di Franco Da Re */

int motorPin1 = 6;
int motorPin2 = 7;

int delayTime = 2;

void setup() {
 pinMode(motorPin1, OUTPUT);
 pinMode(motorPin2, OUTPUT);

}
void loop() {
 digitalWrite(motorPin1, LOW);
 digitalWrite(motorPin2, LOW);//1

 delay(delayTime);
 digitalWrite(motorPin1, LOW);
 digitalWrite(motorPin2, HIGH);//2

 delay(delayTime);
 digitalWrite(motorPin1, HIGH);
 digitalWrite(motorPin2, HIGH);//3

 delay(delayTime);
 digitalWrite(motorPin1, HIGH);
 digitalWrite(motorPin2, LOW);//4

 delay(delayTime);
 }

La prima grande differenza è nelle linee 03-04: i pin settati per la comunicazione con Arduino sono 2 invece di 4;

linea 06: imposta il tempo che vuoi far passare tra uno step ed il successivo, ricorda che un motore passo passo compie un giro completo in un certo numero di passi successivi indicati solitamente sul motore stesso;

linea 08: definisci la funzione setup() all’interno della quale imposterai le impostazioni preliminari dello sketch;

linee 09-10: in ciascuna linea imposti la modalità ( pinMode ) con cui Arduino dovrà gestire i pin indicati alle linee 3 e 4; in questo caso li userai in modalità OUTPUT;

linea 13: definisci la funzione loop();

linee 14-15: imposta la fase 1 o primo passo del motore, porta a livello logico basso ( LOW ) entrambi i pin 6 e 7, in questa fase essendo il pin 6 a 0v otterrai che il pin 2 dell’SN754410NE sarà a livello logico basso, mentre il pin 7 a livello logico alto, attraverso la resistenza da 10KΩ connessa direttamente al polo positivo ( + ), in questa fase il transistor non è in conduzione e quindi non porta a livello logico basso il pin 7; la stessa cosa accade sui pin 10 e 15 dell’SN754410NE connessi al pin 7 di Arduino; quello appena visto in funzione è il circuito di NOT realizzato con 2 transistor realizzato da Franco;

linea 17: imposti il tempo di attesa prima di eseguire il passo successivo;

linee 18-19: imposti la fase 2 o secondo passo, lascia il pin 6 a livello logico basso ( LOW ) e porta a livello logico alto ( HIGH ) il pin 7; in questa condizione il in 10 dell’SN754410NE si trova a +5v e di conseguenza il transistor entra in conduzione mediante la resistenza da 1KΩ collegata tra il pin 7 di Arduino e la base del transistor; la conduzione porta il pin 15 a livello logico basso;

linea 21: attendi il trascorrere del tempo di attesa impostato;

linee 22-23: porta a livello logico alto entrambi i pin 6 e 7 di Arduino, in cui i pin 2 e 10 dell’SN754410NE sono a +5v e i pin 7 e 15 si troveranno a 0v;

linea 25: attendi il trascorrere del tempo di attesa impostato;

linea 26-27: lascia a livello logico alto il pin 6 e porta il pin 7 a livello logico basso; di fatto in questa fase ti trovi ad avere una situazione completamente invertita rispetto alle linee 18 e 19 ;

Il risultato è che puoi pilotare il motore con soli 2 pin e lasciare che gli altri pin siano usati per pilotare altri motori, ad esempio in una CNC, ma in ogni caso l’effetto più rilevante è che proprio grazie all’eccitazione 2-2 puoi ottenere maggiore coppia dal motore.

Buon divertimento.

Be Sociable, Share!
  • Tweet

Tags: arduino, motori bipolari, motori passo, motori stepper, sn754410ne, stepper

This entry was posted on venerdì, febbraio 10th, 2012 at 08:50 and is filed under Elettronica, Robotica e Domotica. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response to “Come eccitare un motore passo passo bipolare – seconda parte”

febbraio 15th, 2012 at 09:03

Mauro Alfieri » Blog Archive » Come eccitare un motore passo passo bipolare – terza parte says:

[...] Non inserito il disegno sopra a caso, lo schema che puoi utilizzare per questo esperimento è identico a quello presentato nell’articolo precedente. [...]

Leave a Reply

  • Categories

    • Bricolage (26)
    • Cucina (10)
    • Elettronica (107)
    • Equitazione (2)
    • Informatica (27)
    • Robotica e Domotica (47)
    • Senza categoria (9)
  • Resta aggiornato


    Riceverai una email di conferma con un link (aggiungi l'indirizzo mittente tra quelli non SPAM)
  • Gli ultimi 5 articoli

    • Ricetta: fiori di zucca ripieni a forno
    • Tutorial: arduino, 3 led e 3 potenziometri
    • Costruire un PCB su vetro
    • Corso Pratico Arduino a Roma il 15 giugno
    • Arduino, OSC, iPhone e sei led – lo sketch




  • Calendario

    maggio: 2012
    L M M G V S D
    « apr    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • i termini più presenti

    arduino uno led rgb Informatica Senza categoria fibre ottiche per illuminare stepper motori passo-passo cielo stellato in fibra ottica motori stepper Elettronica Equitazione Cucina step to step passo-passo Bricolage servo cielo stellato artificiale Robotica e Domotica programmare arduino natale Linux lampadario con fibre ottiche breadboard motori bipolari arduino fibra ottica led

Copyright © 2012 - Mauro Alfieri | Entries (RSS) | Comments (RSS)

WordPress theme designed by web design