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.
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
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
15 commenti
1 ping
Vai al modulo dei commenti
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
Autore
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
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
Autore
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.
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
Autore
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?
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
Autore
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
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
Autore
Penso sia giusto, forse sono io che non ho capito cosa hai scritto, l’importante è che sia chiaro a te.
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.
Autore
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.
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.
Autore
Ciao Federico,
trovi nel blog un articolo che descrive i tipi di motori passo-passo e come riconoscerli.
Ok ora cerco….
Grazie mille sei stato utilissimo ti ringrazio ancora,
ciao,Federico
[…] 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 […]