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
  • 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)
  • Fai clic per condividere su Facebook (Si apre in una nuova finestra)
  • Fai clic qui per condividere su Twitter (Si apre in una nuova finestra)
  • Fai clic qui per condividere su Reddit (Si apre in una nuova finestra)
  • Fai clic per condividere su WhatsApp (Si apre in una nuova finestra)
  • Fai clic per condividere su Telegram (Si apre in una nuova finestra)
  • Fai clic per inviare un link a un amico via e-mail (Si apre in una nuova finestra)

Related

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

  1. 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 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 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

Cosa ne pensi? Fammelo sapere con un messaggio Annulla risposta

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

Scoprici sui social

  • YouTube
  • Telegram
  • Facebook
  • RSS Feed

    Ultimi post

    • Buzzurretto e la scuola – Racconto breve
    • Il mio punto di vista sul progetto scuola
    • Di nuovo nuvole – Racconto breve
    • L’intelligenza artificiale, la forza della logica e la morale – ChatGPT
    • Videogrep, how to extract a certain word from a video (or more)
    • Brucerò tutto non appena è stato scritto – Racconto breve
    • C’è del lavoro da fare – Racconto breve

    Newsletter

    ©2023 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 fornitori Per saperne di più su questi scopi
    Visualizza preference
    {title} {title} {title}
     

    Caricamento commenti...