Come eccitare un motore passo passo bipolare – prima parte

Il titolo è volutamente provocatorio, se ti sono piaciuti i miei articoli sui motori passo-passo sarai ancora più interessato a quello che stai per leggere.

Motore passo-passo bipoare con SN754410NE

Ringrazio da subito il Sig. Franco Da Re, che qualche giorno fa mi ha scritto dopo aver letto questo articolo:

ho notato che lei ha usato l’eccitazione 1-1 ; ora quel tipo di eccitazione , a fronte di una richiesta energetica minore ( in termini di amperaggio ) , ha come contropartita una coppia veramente bassa , per cui non si utilizza quasi mai ;  normalmente si usa l’eccitazione  2-2  anche perchè permette il pilotaggio con solo due fili di Arduino ( uno per ogni bobina mentre il secondo capo di ogni bobina sarà in NOT ( rispetto al primo ) ottenuto con un semplice transistor ) ;

La sua email è stata illuminante, la descrizione dettagliata e i codici per Arduino che mi ha inviato mi hanno spinto a scrivere tre articoli, in cui leggerai parti delle email scambiate ta tra me e Farnco, parti di codice Arduino scritto da Franco e troverai gli schemi per realizzare quanto descritto.

Inutile dire che oltre a ringraziare Franco per il contributo invito chiunque abbia voglia a sottoporre le sue considerazioni su ciascuno degli articoli presenti nel blog, la collaborazione è a mio modesto avviso la più importante fonte di conoscenza e crescita personale: per questo motivo ho aperto e mantengo questo blog.

Di Franco, Michele, Antonio, ecc… ce ne sono tantissimi tra tutti i lettori e io ogni giorno imparo da tutti qualcosa di nuovo. GRAZIE !!!

Torniamo a quanto mi ha scritto Franco, in primo luogo ecco uno sketch che senza modificare nulla nello schema di collegamento

motori bipolari stepper a quattro pin SN754410NE

che già conosci, ti consente da subito di applicare l’uso dell’eccitazione 2-2 in luogo di quella da me descritta ( eccitazione 1-1 ):

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 10;

void setup() {
 pinMode(motorPin1, OUTPUT);
 pinMode(motorPin2, OUTPUT);
 pinMode(motorPin3, OUTPUT);
 pinMode(motorPin4, OUTPUT);
}

void loop() {
 digitalWrite(motorPin1, HIGH);
 digitalWrite(motorPin2, LOW);//1
 digitalWrite(motorPin3, LOW);
 digitalWrite(motorPin4, HIGH);
 delay(delayTime);
 digitalWrite(motorPin1, HIGH);
 digitalWrite(motorPin2, LOW);//2
 digitalWrite(motorPin3, HIGH);
 digitalWrite(motorPin4, LOW);
 delay(delayTime);
 digitalWrite(motorPin1, LOW);
 digitalWrite(motorPin2, HIGH);//3
 digitalWrite(motorPin3, HIGH);
 digitalWrite(motorPin4, LOW);
 delay(delayTime);
 digitalWrite(motorPin1, LOW);
 digitalWrite(motorPin2, HIGH);//4
 digitalWrite(motorPin3, LOW);
 digitalWrite(motorPin4, HIGH);
 delay(delayTime);
}

Cosa è cambiato?

E’ cambiato il modo in cui ecciti le bobine del motore, nella funzione loop() le linee 15-18 definisci il primo step portando a livello logico alto (HIGH) sia il pin 8 ( motorPin1 ) sia il pin 11 ( motorPin4 ), lascia a livello logico basso ( LOW ) gli altri due pin ( 9 e 10), eccitando entrambe le bobine del motore;

linee 20-23: potra a livello alto il pin 10 ( motorPin3 ) e basso il pin 11 ( motorPin4 ), lasciando invariata l’eccitazione sulla prima bobina;

linee 25-28: porta a livello alto il pin 9 ( motorPin2 ) e basso il pin 8 ( motorPin1 ), lasciando invariata l’eccitazione della seconda bobina;

linee 30-34: porta a livello alto il pin 11 ( motorPin4 ) e baso il pin 10 ( motorPin3 ), lasciando invariata l’eccitazione sulla prima bobina;

Avrai notato da subito che il numero di bobine contemporaneamente eccitate è 2 da cui la richiesta di maggiore energia in termini di amperaggio ( I ); la conseguenza diretta è una coppia maggiore che ti consente l’impiego del motore in condizioni in cui la coppia bassa non è consigliata.

Franco ha anche scritto:

Da sottolineare che utilizzando motori di recupero da stampante ,  alcuni di questi riportano proprio come modalità di eccitazione la 2-2.
Questo è uno dei motori di una Epson inkjet che sto utilizzando per delle prove ( dovrà motorizzare un microscopio con messa a fuoco automatica ) 

Siamo tutti curiosi di vedere all’opera questo progetto ed ho chiesto personalmente a Franco di inviarmi del materiale sul progetto, foto, video o disegni da pubblicare per accrescere la conoscenza di tutti sulle potenzialità di Arduino e quello che può fare.

Buon divertimento

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/come-eccitare-un-motore-passo-passo-bipolare-prima-parte.html

15 commenti

1 ping

Vai al modulo dei commenti

    • Angelo Strano il 29 Agosto 2012 alle 14:44
    • Rispondi

    Salve Mauro,

    sto seguendo con entusiasmo gli articoli sugli stepper pubblicati sul blog.

    Ho provato vari motori recuperati da vecchie stampanti epson tipo EM-258, EM257, EM236 etc… cercando su internet ho trovato varie info che indicano che vanno alimentati a 7V max e 0.7 mA.

    Seguendo gli articoli sui bipolari con ic l’sn754410 non rilevo nessuna tensione d’uscita sui pin dove collegare gli avvolgimenti.

    La cosa mi ha incuriosito e sono andato a recuperare una scheda di una stampante con tutto ancora funzionante (sensori, motori, alimentatore etc)
    Facendo delle prove ho misurando la tensione di uscita tra il pin collegato all’avvolgimento dell’integrato della sanyo (Half H-Bridge) e massa:
    rilevo 42V e con una corrente max di 0.4 mA.

    Cosa sto sbagliando? Ho rivisto più volte tutti i collegamenti con l’sn754410 e arduino ma i motorei non ricevono corrente.

    Grazie anticipatamente.
    Angelo Strano

    1. Ciao Angelo,
      il problema così come me lo racconti sembra legato al malfunzionaneto dell’SN754410.
      Altro problema potrebbe essere causato dal tempo per cui lo sketch manda in conduzione un pin, tale tempo è infinitesimo e potresti non riuscire a rilevarlo con un multimetro tradizionale.

      Immagino tu abbia eseguito i rilievi della tensione con lo sketch in funzione, scollega il motore e prova a scrivere uno sketch che mandi in conduzione tutti e 4 i pin per 5/6 secondi e rileva la tensione su di essi, potrai escludere che il problema sia l’SN754410.

      Mauro

    • claudio il 1 Dicembre 2014 alle 23:21
    • Rispondi

    Ciao Mauro.
    Mi chiamo Claudio e ti faccio subito i complimenti per il sito e il blog con tutti i vari consigli che dai….e ricevi.. 😉
    E’ un pò che navigo e non faccio altro che tornare al tuo sito.
    Molto esaustivo. Certo per chi ha un pò di dimestichezza.. Io sono perito meccanico ma una “scorza” in elettrotecnica a parte quella scolastica.

    Mia figlia mi ha chiesto la casa della Barbie con ascensore (per Natale!!!). Bravo in falegnameria e pratico di autocad mi sono detto:
    Inserire un ascensore elettrico?
    E con luci in tutte le stanze (9!!) con relativo interruttore (senza arduino) o pulsante (con arduino).
    Per la cronaca: ho già l’ascensore che scorre su guide e per il movimento su e giù è inserita una barra filettata
    Ora….
    Volevo usare un motore passo passo bipolare che avevo recuperato ( 48 p/g PM-48 2210 020A4 n° 2 fasi – 62 Ohms 0,2 Amps/f
    Ho già comprato Arduino uno e il driver L293D che con il tuo aiuto ho collegato.
    Ho inserito lo scketcProblema:
    Il motore gira ma è lento. Ho collegato una batteria da 9V ma è ancora lento. Ho anche abbassato a 10( un decimo di secondo) meno non posso (il motore non gira proprio).
    Ho per ultimo alimentato con un trasformatore 12 v ma non soddisfa la mia richiesta di velocità della salita e discesa dell’ascensore.
    Butto il motore e… quale prendo? E’ solo un piano (terra e primo).
    Un aiutino?

    Quello che vorrei è farlo funzionare a batterie.. NON COLLEGANDOLE AD UNA TENSIONE DI RETE!!!
    Se preferisci posso inviarti la foto del motore che ho.
    Diversamente puoi consigliarmi se posso dargli più corrente (magari cambiando il driver) sempre usando batterie da 1.5 -9 volt massimo..
    Oppure quale motore usare. Un link sul tipo e modello sarebbe gradito.. (non vorrei spendere tanto!!)

    Grazie in anticipo e buon lavoro.
    Claudio

    1. Ciao Claudio,
      il motore che possiedi è un 48 passi per giro, se ho letto bene le caratteristiche, quindi 7,5° per passo.
      Se a questo aggiungi che non puoi scendere sotto il 10 ( un centesimo di secondo, il delay lavora in millisecondi ) vuol dire che hai un limite meccanico.
      Le soluzioni che mi vengono in mente sono:

      1. acquisti uun motore da 200p/g o 400p/g ( su http://www.robotics-3d.com ce ne sono di interessanti ) con un driver tipo easy driver;
      2. costruisci una puleggia molto grande in modo che ogni passo compia diversi centimetri di spostamento.

    • claudio il 2 Dicembre 2014 alle 21:45
    • Rispondi

    Ciao Mauro
    Grazie per la pronta risposta.
    Avevo pensato ad un sistema di pulegge ma mi riesce difficile da realizzare in cosi poco tempo. Vedrò cmq.
    Ho letto i post inerenti al Sig. Franco Da Re e mi sembra ecdezionale per l’aumento di coppia. Ma con le caratteristiche del motore che ti ho descritto posso farlo funzionare con 2 batt 9V in parallelo per aumentare la corrente?
    Grazie per la disponibilità e per le risposte che mi darai..
    Claudio

    1. Ciao Claudio,
      le caratteristiche che mi hai scritto, se corrette, dicono 0,2A per fase.
      Puoi aumentate la corrente fornita a dismisura ma il motore continuerà ad assorbire +/- 200mA
      La velocità nei motori passo-passo é definita dalle caratteristiche meccaniche e dalla successione dei passi.
      Hai pensato di sostituirlo con un motoriduttore, a mio avviso, più adatto a realizzare un ascensore, e minarlo di due semplici finecorsa per stabilire l’arrivo al piano?

    • claudio il 2 Dicembre 2014 alle 21:57
    • Rispondi

    Ciao Mauro.
    Ho trovato questo. Va bene?
    http://www.robotics-3d.com/components/com_virtuemart/shop_image/product/Stepper_Motor__B_5461084034090.jpg
    Posso collegarlo al driver L293d che ho già o devo prendere cmq l’easy driver?
    E’ PER UN COLLEGAMENTO PERMANENTE!
    Grazie per tutti i chiarimenti che mi vorrai dare..
    Claudio

    1. Ciao Claudio, vedi risposta precedente.
      Ricorda che il driver L293d nasce per il controllo dei motori in cc ed io ho fatto un esperimento per usarlo con i passo-passo

    • Claudio il 4 Dicembre 2014 alle 10:12
    • Rispondi

    Ciao Mauro.
    Credo di aver capito bene cosa intendi. Se assorbe 200 mA e per i suoi 48 passi/g non posso scendere sotto i 10 (1 centesimo di secondo

    1. Penso sia giusto, forse sono io che non ho capito cosa hai scritto, l’importante è che sia chiaro a te.

    • Federico il 27 Gennaio 2016 alle 19:41
    • Rispondi

    Ciao mauro,

    prima di passare al dunque ti faccio i complimenti per il tuo sito davvero molto interessante e utile per quelli come me alle prime con arduino, ma ora andiamo al nocciolo della questione:
    sto costruendo un braccio robotico con dei motori passo passo, a casa ho un motore “MAE HY 200-2220-100”, il motore assorbe 1 Ampere per fase e volevo sapere se può essere utilizzato con il driver SN754410NE.

    ti ringrazi anticipatamente e ti saluto,

    Federico.

    1. Ciao Federico,
      ho letto il datasheet del SN754410 della TI, non so se sia il tuo, che la corrente di output è 1A con un picco di 2A.
      Per esperienza non userei un driver così al limite in condizioni normali di funzionamento con un motore passo-passo per cui ti suggerisco l’uso di un A4988 o DRV8825 o EasyDriver che trovi descritti ed utilizzati nel blog per molti progetti.

        • Federico il 28 Gennaio 2016 alle 13:46
        • Rispondi

        Ciao Mauro,
        grazie mille per la risposta, credo che seguirò il tuo consiglio e mi orienterò sui driver da te indicati.
        Intanto pero ho un altra domanda se il motore ha 8 o sei fili come faccio collegarlo con 4 fili?

        Federico.

        1. Ciao Federico,
          trovi nel blog un articolo che descrive i tipi di motori passo-passo e come riconoscerli.

            • Federico il 28 Gennaio 2016 alle 16:15

            Ok ora cerco….

            Grazie mille sei stato utilissimo ti ringrazio ancora,
            ciao,Federico

  1. […] pilotarlo, cmq nei prossimi articoli ti mostro come collegare e pilotare sia un motore passo passo bipolare sia unipolare; li ho volutamente separati da questo articolo per poter dedicare la spiegazione al […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.