Qui troverete le istruzioni per collegare uno stepper ad Arduino.
Spero vi torni utile, ciao! =)
Il kit si trova facilmente su Ebay ed è formato da un motore stepper ed un circuito di controllo.
Il motore è siglato 28BYJ-48 mentre il driver è un circuito basato sull'uln2003 (li trovate su eBay a questo link).
Ecco un video che ci mostra la rotazione in entrambi i sensi.
Il collegamento è semplice, basta portare i 4 pin di controllo del circuito a 4 pin digitali di Arduino e
Lo schema mostra i 5 volt prelevati dall'Arduino, consiglio però di prelevarla esternamente (da un alimentatore o da una batteria)
Caricate ora questo sketch per vedere il motore muoversi come nel video.
Cambiando i vari parametri è possibile cambiare velocità e gradi di rotazione.
- #include <Stepper.h>
- #define STEPS 100
- Stepper small_stepper(STEPS, 2, 4, 3, 5);
- int Steps2Take;
- void setup()
- {
- }
- void loop()
- {
- small_stepper.setSpeed(100);
- Steps2Take = 2048;
- // Rotate CW For a complete rotation
- // Change this number for change the degrees of the rotation
- small_stepper.step(Steps2Take);
- delay(2000);
- small_stepper.setSpeed(100);
- // Change this for change the speed
- Steps2Take = -2048; // Rotate CCW
- small_stepper.step(Steps2Take);
- delay(2000);
- }
Ciao!
Ciao Daniele, grazie per l'articolo, molto utile e interessante. Complimenti!
RispondiEliminaAvrei una sola domanda. La velocità con cui ruota il motore passo passo nel video è la massima possibile? E poi sarebbe opportuno collegare Arduino ad un'alimentazione esterna?
Grazie.
Leonardo
Ciao, grazie per i complimenti!
EliminaLa velocità può essere incrementata ancora di poco, ma si perde molta coppia.
Per l'alimentazione ho cercato un datasheet che dicesse l'assorbimento di questo motore, ma non l'ho trovato.
Comunque se vuoi fare una prova collegalo pure come ho fatto io, se è per un circuito definitivo alimentarlo esternamente.
Ciao!
Grazie. Buon lavoro ;-)
EliminaCiao! Questo motore in termini di peso quanto può alzare?
RispondiEliminaVeramente poco, considera che costa 1 euro, quindi è quasi unicamente per scopi didattici, in ogni caso dipende dagli ingranaggi che gli colleghi..
EliminaDovrei alzare la cabina del mio ascensore in miniatura, peserà meno di 200 grammi ad occhio e croce... Gli ingranaggi adatti a questo motore dove gli posso trovare?
EliminaBella domanda.. È il problema che incontro anch'io quando ho a che fare coi motori.. Potresti cercare un tubo che si innesta nel rotore e poi gli fai avvolgere intorno un filo che tira su l'ascensore.. Oppure se conosci qualcuno con una stampante 3d te lo puoi costruire..
EliminaCiao Daniele, questo motorino con le dovute modifiche nel programma si potrebbe usare per una pedana girevole che ruoti di 5/9 gradi alla volta?
RispondiEliminagrazie mille
Bnedetta
Ciao, cosa intendi x pedana?
EliminaUna pedana quadrata 20 per 20 cm di legno o plastica su cui poter appoggiare piccole sculture
EliminaSi secondo me dovrebbe farcela, considera che è abbastanza lento, come nel video x intenderci.
EliminaLa velocità non è un problema basta che sei preciso nella rotazione di x gradi...
EliminaGrazie mille, se riesce ti mando le foto, è il primo progetto dopo il corso nn so come verrà...
Non dovresti avere problemi, fammi sapere comunque :)
EliminaCiao Daniele!! Complimenti per il tutorial. Mi chiamo Filippo e ho costruito un astro inseguitore per poter fotografare la via lattea, vorrei pilotarla con arduino uno + driver ULN2003. Ti volevo chiedere se il motore , con lo schema che hai postato gira anche al contrario, e dovendolo collegare ad una corona dentata, deve far girare la corona di 360° in un minuto. Il motore è di una stampante rottamata ma funziona perfettamente E' possibile? Ti ringrazio per l'aiuto, e buon anno.
RispondiEliminaCiao e grazie per il complimento!
EliminaGià nello sketch di esempio il motore gira in entrambi i sensi,
Quel driver va bene per motori abbastanza piccoli, se vuoi andare sul sicuro ti consiglio di guardare anche questo:
http://www.danielealberti.it/2014/08/collegare-un-motore-stepper-ad-arduino.html?m=0
Scusa di elettronica e programmazione non so una cippa!! ciao!!
RispondiEliminaCiao!! Il motore che ho intenzione di usare è già stato provato per guidare una tavoletta equatoriale e va bene solo che lo schema con cui era pilotato non andava in senso contrario e non si abbassava più di un certo valore il numero di giri.Ti volevo chiedere se si deve aggiungere altro allo schema che hai postato. Ciao!
RispondiEliminaSe è un motore passo passo con questo schema può girare in entrambi i sensi e andare lento quanto vuoi, aggiungo che se poi vuoi condividere il tuo progetto scrivimi che facciamo un bel post :)
EliminaCiao! Vorrei aggiungere delle foto per rendere l'idea così da condividere il progetto , comunque in rete si trovano tanti progetti del genere (non ho scoperto nulla basta andare su Google e digitare : barn door traker) ed escono un sacco di realizzazioni del genere.Se una persona si vuole dilettare a realizzare una tavoletta equatoriale da muovere manualmente, si può realizzare a costo di 5 euro anche meno.
EliminaCiao e grazie per l'aiuto poi mi dirai come fare per diminuire la velocità di rotazione, grazie ancora!!
Si ma magari in rete manca qualche parte o non sono precisi, del resto se tu stai chiedendo a me vuol dire che non hai trovato altrove, quindi se fai un bel progetto fai qualche foto e scrivimi ! :)
EliminaScusa per sbaglio credo di aver cancellato il tuo commento, comunque se ti va puoi andare nella sezione "chiedi e rispondi" e creare una nuova domanda li, così riuscirò ad aiutarti in modo più ordinato! :)
Eliminaciao daniele,
RispondiEliminaho questo motorino e vorrei poterlo controllarlo tramite 2 pulsanti in modo da poterlo far girare in senso antiorario con uno e orario con l'altro, come dovrei modificare lo sketch??
grazie!!!
Ciao, devi prima leggere lo stato dei pulsanti, poi con un ciclo "if" se lo stato del pulsante 1 è premuto allora fai girare il motore in senso orario. Stessa cosa per l'altro pulsante.
EliminaCiao, devi prima leggere lo stato dei pulsanti, poi con un ciclo "if" se lo stato del pulsante 1 è premuto allora fai girare il motore in senso orario. Stessa cosa per l'altro pulsante.
Eliminasono riuscito a montare i pulsanti e a far girare i motorini quando premo i 2 pulsanti, il problema sta nel fatto che una volta che premo il pulsante, il motorino gira anche se lo lascio, mentre a me interessa che quando lascio il pulsante il motorino deve fermarsi.
Eliminaecco lo sketch:
#include
#define STEPS 100
#define ORARIO 6
#define ANTIOR 7
Stepper small_stepper(STEPS, 2, 4, 3, 5);
int Steps2Take;
int ora = 0;
int ant = 0;
int delayTime = 50;
int pinPot = 0;
void setup()
{
pinMode(ORARIO, INPUT);
pinMode(ANTIOR, INPUT);
pinMode(pinPot, INPUT);
}
void loop()
{
ora = digitalRead(ORARIO);
ant = digitalRead(ANTIOR);
int readPot = analogRead( pinPot );
int delayTime = map(readPot,0,1024,10,1000);
if (ora == HIGH) {
small_stepper.setSpeed(200);
Steps2Take = 2048;
// Rotate CW For a complete rotation
// Change this number for change the degrees of the rotation
small_stepper.step(Steps2Take);
}
if (ant == HIGH) {
small_stepper.setSpeed(200);
// Change this for change the speed
Steps2Take = -2048; // Rotate CCW
small_stepper.step(Steps2Take);
}
delay(delayTime);
}
il problema sta nell'if di entrambi i pulsanti, precisamente:
EliminaSteps2Take = 2048;
perchè esegue una rotazione stabilita, invece il motorino deve girare solo per tutto il tempo in cui il pulsante (orario o antiorario) è premuto.
mi potresti aiutare??
Prova a ridurre il valore di Steps2Take,
EliminaMetti un valore basso ad esempio 1.
ok ci provo e ti farò sapere!
RispondiEliminagrazie!
Ciao daniele io ho usato questo motorino comprato su amazon per pochi euro e lo ho comandato tramite Bluetooth con un modulino hc-06 e un applicazione Android scritta da me ti può interessare per scrivere un articolo?fammi sapere
RispondiEliminaCiao,
Eliminacerto che mi interessa, scrivimi pure un tuo indirizzo email che ti contatto in privato, ciao!
Ciao ragazzi essendo che per la prima volta mi sto commentando nel elettronica e chiedo se sarebbe possibile aver un disegno del motore passo passo come collegarli con tutta la spiegazione grazie la mia email è robirossano@gmail.com
RispondiEliminascusa posso chiederti se si possono collegare 3 motori su arduino uno il motore e 28BJY-48 Stepper grazie in anticipo
RispondiEliminaQuesto commento è stato eliminato dall'autore.
RispondiElimina