Skip to content
logo9minuti120x48
Menu
  • Home
  • Tutorial
    • Zaini
    • Stampa 3d
    • ebook
    • Informatica
  • Scritti
    • Racconti
    • Articoli
    • Temi
    • Storia
  • Video
  • Progetti
    • Progetto Carcere
    • Progetto Istruzione
    • Progetto Acque pulite
    • Progetto Tecnologia
    • Progetto Casa
    • Progetto Democrazia
    • Progetto Immigrazione
    • Storia
    • Progetto Storia
  • Chi siamo
    • LinkTree
  • Privacy Policy
    • Cookie Policy (EU)
  • Blog
  • Donazioni
Menu
step-motor-img.jpg

Motore stepper con Arduino (28BYJ-48 + driver ULN2003ARG)

Posted on 10 Luglio 201917 Agosto 2019 by Alessandro Oppo

Ben ritrovati su 9minuti.it, oggi vedremo come utilizzare un motore stepperĀ  con Arduino.

Si tratta di un motore standard chiamato 28BYJ-48 presente in quasi tutti i kit e che trovo sia molto interessante da far funzionare.

Il driver che utilizzeremo per questo motore ĆØ il famoso ULN2003ARG.

Questo motore ha un’ottima coppia e quindi difficilmente riusciremo a girare a mano il perno di ottone.

motore stepper con Arduino
Motore stepper con Arduino

Il collegamento elettrico per ilĀ motore stepper con Arduino

I motori stepper possono essere usati in diverse maniere, noi lo utilizzeremo con un integrato chiamato ULN2003 cheĀ ci consentirĆ  di utilizzarlo in maniera semplicissima con l’apposita libreria.

Come potete vedere il collegamento per utilizzare il motore stepper ĆØ molto semplice e non prevede nulla di particolare.

Nel caso si volessero collegare più motori stepper si consiglia di utilizzare un’alimentazione separata che potrĆ  essere da 5v a 12v.

In ogni caso fino a due motori stepper 28BYJ-48 ULN2003ARGĀ  possono essere tranquillamente attaccati direttamente ad Arduino.

stepMotorUln2003

 

Lo sketch per il motore stepper con Arduino

Vediamo ora lo sketch che ci aiuterĆ  a capire come farlo funzionare per i nostri progetti.

Useremo la libreria Stepper.h giĆ  inclusa nell’IDE di Arduino.

Se non sapete come si installa una libreria vi lascio QUESTA guida dove spiego anche come installarle.

Nello sketch di esempio vedremo come far ruotare il motore stepper di 90 gradi per poi farlo tornare alla posizione di partenza dopo un secondo.

#include <Stepper.h>

Stepper myStepper(2048, 11, 9, 10, 8);

void setup() {
  myStepper.setSpeed(10);
}

void loop() {

  float gradi = 90;
  gradi = map(gradi, 0, 360, 0, 2048);
  myStepper.step(gradi);
  delay(1000);
  myStepper.step(-gradi);
  delay(1000);
}

Vediamo il codice riga per riga:

1 – Includiamo la libreria Stepper.h
3 – Creiamo l’oggetto myStepper di tipo Stepper. I parametri che inseriremo saranno il numero di step (ovvero passi) che il nostro motore dovrĆ  compiere per effettuare un giro di 360°. Inseriremo poi i quattro pin necessari per far funzionare il motore stepper.
6 – Il metodo setSpeed() ci consente di scegliere la velocitĆ . La scala ĆØ da 1 a 10.
11 – Ho creato una variabile di nome gradi e di tipo float e l’ho inizializzata a 90, ovvero i gradi che voglio far compiere al motore.
12 – Usando la funzione map() viene effettuata una proporzione fra i 360° di un giro completo e i 2048 step che il motore deve eseguire. Il valore restituito dalla funzione viene poi salvato all’interno della variabile gradi. In questo caso il valore sarĆ  di 512.
13 – Il metodo step() ci consente di muovere il motore facendogli compiere il numero di step che gli passiamo come parametro.
14 – Delay di 1 secondo.
15 – Richiamiamo il metodo step(), questa volta con valore negativo.
16 – Delay di 1 secondo.

Considerazioni sul motore stepper con Arduino

Se ti ĆØ piaciuto l’articolo ti prego di farmelo sapere nei commenti e di condividerlo sulle tue pagine social in modo da supportare il blog.

Vi ringrazio per l’attenzione e rimango a disposizione per aiutarvi nel caso doveste averne bisogno.

Alessandro

Dammi un 5 virtuale, clicca like e condividi.

  • Fai clic qui per condividere su LinkedIn (Si apre in una nuova finestra) LinkedIn
  • Fai clic per condividere su Facebook (Si apre in una nuova finestra) Facebook
  • Fai clic per condividere su X (Si apre in una nuova finestra) X
  • Fai clic qui per condividere su Reddit (Si apre in una nuova finestra) Reddit
  • Fai clic per condividere su WhatsApp (Si apre in una nuova finestra) WhatsApp
  • Fai clic per condividere su Telegram (Si apre in una nuova finestra) Telegram
  • Fai clic per inviare un link a un amico via e-mail (Si apre in una nuova finestra) E-mail

Related

4 thoughts on “Motore stepper con Arduino (28BYJ-48 + driver ULN2003ARG)”

  1. Roberto Roberto ha detto:
    22 Agosto 2021 alle 6:37 pm

    Ciao, ho realizzato questo semplice schetch e funziona perfettamente. Vorrei sapere perchĆØ l’istruzione “setSpeed” ha un range da 1 a 10. Io vorrei far girare il motore più velocemente.Ho provato a modificare il valore 15,20,100, ma non funziona.E’ forse un limite dello stepper motor.Io avrei bisogno di far girare una ruota velocemente del diametro di un CD magari 100 giri al minuto e controllarla con arduino.Qualche sggerimento? devo cambiare stepper motor? non ho bisogno di potenza.Grazie

    Rispondi
    1. Alessandro Oppo Alessandro Oppo ha detto:
      22 Agosto 2021 alle 6:47 pm

      Ciao Roberto, la velocità non può essere modificata (che io sappia), il fatto che la scala vada da 1 a 10 è una convenzione, decisa dai creatori della libreria sulla base delle specifiche del motore. Se ti serve che giri più velocemente potresti usare una serie di ingranaggi oppure utilizzare un altro motore.
      Alessandro

      Rispondi
  2. Carlo Serafini Carlo Serafini ha detto:
    17 Marzo 2023 alle 1:58 pm

    Ciao Alessandro. ho provato il tuo sketch e volevo provare a modificarlo in modo che non faccia lo stesso numero di gradi ogni volta ma cambi il numero dei gradi, però mi da l’errore ” redeclaration of float gradi “. Come la modifico questa variabile?

    Rispondi
    1. Alessandro Oppo Alessandro Oppo ha detto:
      20 Aprile 2023 alle 12:05 pm

      Buongiorno Carlo, riesci a condividere il codice che hai scritto?

      Rispondi

Cosa ne pensi? Fammelo sapere con un messaggioAnnulla risposta

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Scoprici sui social

  • YouTube
  • Telegram
  • Facebook
  • RSS Feed

    Ultimi post

    • Dave dei Vallanzaska: AI, Milano e venti di guerra – Riflessioni su 30 anni di cambiamenti
    • Libri e Social: Intervista a Sam di Rivista Matrioska | Come Creare un Progetto Culturale Online
    • Solo l’occidente conosce la Storia? Dialogo col Professor Adolfo Scotto Di Luzio
    • Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?
    • Siamo quel che facciamo? – racconto breve
    • Il limite ĆØ sempre la mente – Racconto breve
    • L’ultimo giorno del carcere – Racconto breve

    Newsletter

    • YouTube
    • Facebook
    • Telegram
    • Dave dei Vallanzaska: AI, Milano e venti di guerra – Riflessioni su 30 anni di cambiamenti
      di Alessandro Oppo
    • Libri e Social: Intervista a Sam di Rivista Matrioska | Come Creare un Progetto Culturale Online
      di Alessandro Oppo
    • Solo l’occidente conosce la Storia? Dialogo col Professor Adolfo Scotto Di Luzio
      di Alessandro Oppo
    • Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?
      di Alessandro Oppo
    • Siamo quel che facciamo? – racconto breve
      di Alessandro Oppo

    ©2025 9minuti | Design: Newspaperly WordPress Theme
    Manage Cookie Consent
    Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
    Cookie funzionali Sempre attivo
    The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
    Preferences
    The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
    Statistics
    The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
    Marketing
    The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
    Gestisci opzioni Gestisci servizi Gestisci {vendor_count} fornitori Per saperne di più su questi scopi
    Visualizza preference
    {title} {title} {title}
     

    Caricamento commenti...