Utilizzare il motore passo-passo 28BYJ-48 con un driver ULN2003 e Arduino

Utilizzare il motore passo-passo 28BYJ-48 con un driver ULN2003 e Arduino

In questo tutorial, impareremo come controllare un motore passo-passo 28BYJ-48 utilizzando un driver ULN2003 con un Arduino. Questa configurazione consente un controllo preciso della posizione e della velocità del motore. Alla fine di questo progetto, sarai in grado di ruotare il motore in entrambe le direzioni e controllare efficacemente i suoi passi.

Utilizzeremo il motore passo-passo 28BYJ-48, che è una scelta popolare per vari progetti di robotica e automazione grazie al suo basso costo e alla facilità d'uso. La scheda driver ULN2003 interfaccia il motore passo-passo con l'Arduino, permettendoci di inviare segnali di passo che controllano il movimento del motore. Questo tutorial ti guiderà attraverso il cablaggio e il codice necessari per far girare il tuo motore.

Per ulteriori chiarimenti, si prega di fare riferimento al video associato a questo tutorial (nel video a :45).

Hardware Spiegato

I componenti chiave di questo progetto includono il motore passo-passo 28BYJ-48 e la scheda driver ULN2003. Il motore passo-passo è composto da diverse bobine che possono essere alimentate in una sequenza specifica per creare rotazione. Il driver ULN2003 funge da interruttore, consentendo all'Arduino di controllare la potenza fornita a ciascuna bobina.

Il driver ULN2003 utilizza un array di transistor Darlington per gestire la corrente più elevata richiesta dal motore passo-passo. Quando un pin dell'Arduino emette un segnale HIGH, consente alla corrente di fluire verso la bobina corrispondente nel motore, facendolo muovere. Questo consente un controllo preciso sull'angolo di rotazione e sulla velocità del motore.

Dettagli della scheda tecnica

ProduttoreULN2003
Numero di parteULN2003
Tensione di logica/IO5 V
Tensione di alimentazione5-30 V (max)
Corrente di uscita (per canale)500 mA max
Corrente di picco (per canale)2 A max
Linee guida sulla frequenza PWMN/A
Soglie logiche di ingresso0,8 V (basso), 2,4 V (alto)
Caduta di tensione / RDS(on)/ saturazione1,5 V max
Limiti termici70 °C max
PacchettoDIP-16
Note / variantiComunemente usato con motori passo-passo da 5V.

  • Assicurati che il driver possa gestire i requisiti attuali del tuo motore.
  • Utilizzare dissipatori di calore se necessario per gestire i limiti termici.
  • Controlla che tutte le connessioni siano sicure per evitare ingressi flottanti.
  • Testa il motore eseguendo semplici sequenze di passi prima di integrarlo in progetti più grandi.
  • Assicurati di alimentare il motore con una tensione di alimentazione adeguata.

Istruzioni di cablaggio

Per collegare il motore passo-passo 28BYJ-48 al driver ULN2003 e all'Arduino, segui questi passaggi:

Prima di tutto, collega il motore al driver ULN2003. Il motore ha quattro fili, tipicamente codificati a colori come arancione, giallo, rosa e blu. Collega questi fili ai pin di uscita corrispondenti sul driver ULN2003. Le connessioni sono le seguenti:

  • Orangecavo aOUT1
  • Yellowcavo aOUT2
  • Pinkcavo aOUT3
  • Bluecavo aOUT4

Successivamente, collega il driver ULN2003 all'Arduino. I pin di ingresso sul driver corrispondono a quattro pin digitali sull'Arduino. Ad esempio:

  • IN1aPin 10
  • IN2aPin 11
  • IN3aPin 12
  • IN4aPin 13

Infine, collega i pin di alimentazione e di massa del driver ULN2003 all'Arduino. Collega ilVCCcollegare al pin di uscita 5V dell'Arduino e ilGNDcollegare al terreno dell'Arduino. Assicurati che tutte le connessioni siano sicure prima di accendere il sistema.

Esempi di codice e guida passo passo

Nella sezione di configurazione del codice Arduino, definiamo i pin collegati al driver ULN2003:

int Pin1 = 10; 
int Pin2 = 11; 
int Pin3 = 12; 
int Pin4 = 13; 

Qui dichiariamo quattro variabili intere:Pin1,Pin2,Pin3, ePin4, che corrispondono ai pin digitali sull'Arduino. Questi pin controlleranno il movimento del motore passo-passo.

Nellasetup()funzione, configuriamo questi pin come uscite:

void setup() { 
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
 pinMode(Pin4, OUTPUT);  
} 

Questa configurazione garantisce che l'Arduino possa inviare segnali al driver ULN2003 per controllare il motore.pinModeLa funzione imposta ogni pin in modalità OUTPUT, consentendo loro di inviare segnali.

Infine, nel ciclo principale, creiamo un'istruzione switch case per controllare i passi del motore in base alla variabile._step:

switch(_step){ 
   case 0: 
     digitalWrite(Pin1, LOW);  
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
     digitalWrite(Pin4, HIGH); 
   break;  
   // Additional cases follow
}

In questo estratto, utilizziamodigitalWriteinviare segnali ALTI o BASSI a ciascun pin in base alla corrente_stepQuesto controlla quali bobine sono energizzate, permettendo al motore di ruotare. Il codice completo che integra questi frammenti sarà caricato sotto l'articolo.

Dimostrazione / Cosa Aspettarsi

Una volta che tutto è cablato correttamente e il codice è caricato, il motore passo-passo dovrebbe ruotare in risposta ai segnali dall'Arduino. Puoi testare il motore modificando il ritardo nel ciclo o cambiando i passi per vedere come reagisce. Tieni presente che se il motore non è alimentato correttamente, potrebbe non muoversi o comportarsi in modo erratico.

Capitoli

  • Introduzione - 0:00
  • Hardware Spiegato - 1:30
  • Istruzioni di cablaggio - 3:15
  • Esempi di codice e guida - 5:00
  • Dimostrazione / Cosa Aspettarsi - 7:45
6-The source code for stepper motor 28BYJ-48 with ULN2003 for Arduino
Lingua: C++
Copia!

File📁

Nessun file disponibile.