Utilizzare un driver per motori L298N per controllare un motore passo-passo a 4 fili

Utilizzare un driver per motori L298N per controllare un motore passo-passo a 4 fili

In questo tutorial esploreremo come controllare un motore passo-passo a 4 fili usando il driver motore L298N insieme a un Arduino. L298N è un versatile driver a doppio ponte H che ci permette di controllare efficacemente la direzione e la velocità dei motori passo-passo. Alla fine di questa guida avrai un setup funzionante in grado di far ruotare il motore passo-passo in entrambe le direzioni e di controllarne la velocità tramite un potenziometro.

L298N motor driver (yellow connector)

Per aiutarti a comprendere meglio il processo, ti consiglio di guardare il video associato, che offre una dimostrazione visiva del cablaggio e della programmazione (nel video a 01:30).

Hardware spiegato

Il driver per motori L298N è progettato per controllare i motori, consentendo di pilotarli sia in avanti sia in retromarcia. Utilizza una configurazione a ponte H, il che significa che può invertire la polarità della tensione applicata al motore, invertendone così la direzione. Questo driver può gestire una tensione di alimentazione fino a 46 V e una corrente continua di 2 A per canale, rendendolo adatto a molte applicazioni.

Nella nostra configurazione useremo quattro pin di controllo per gestire il motore passo-passo. I pin principali sonoENAeENB, che deve essere impostato su HIGH (5V) per abilitare il driver. I pinIN1,IN2,IN3, eIN4controllerà gli stati degli avvolgimenti del motore, consentendogli di compiere passi nella direzione desiderata.

Dettagli della scheda tecnica

ProduttoreSTMicroelectronics
Numero di parteL298N
Tensione logica/IO5 V
Tensione di alimentazione5-46 V (VS)
Corrente di uscita (per canale)2 A max/canale (continuo)
Corrente di picco (per canale)3 A massimo
Linee guida sulla frequenza PWMDa 1 kHz a 20 kHz
Soglie logiche di ingresso0,8 V (basso), 2,0 V (alto)
Caduta di tensione / RDS(on)/ saturazione1,5 V max
Limiti termici150 °C massimo
PacchettoDIP-15
Note / variantiDisponibile anche in versioni piatte (L298P)

  • GarantireENAeENBsono collegati a 5V per il corretto funzionamento.
  • Utilizzare un dissipatore adeguato per applicazioni ad alta corrente per prevenire il surriscaldamento.
  • Mantieni la massa comune tra l'Arduino e il driver del motore.
  • Prestare attenzione alla polarità del cablaggio per evitare di danneggiare il motore o il driver.
  • Posizionare condensatori di disaccoppiamento vicino ai pin di alimentazione per filtrare il rumore.
  • Regolare la frequenza PWM in base alle specifiche del motore per prestazioni ottimali.

Istruzioni di cablaggio

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)

Per collegare il driver motore L298N all'Arduino e al motore passo-passo, inizia collegando l'alimentazione. Collega ilVINCollega il pin del L298N alla tua sorgente di alimentazione da 12V. Successivamente, collega ilGNDCollega il pin sul L298N alla massa del tuo alimentatore e anche alla massa dell'Arduino.

Ora, per i pin di controllo, collegaENAal pin 2 dell'Arduino eENBal pin 3. Successivamente, collegaIN1al pin 8,IN2al pin 9,IN3al pin 10, eIN4al pin 11 dell'Arduino. Infine, collega i fili del motore passo-passo ai terminali di uscita del L298N. Assicurati che le due coppie di fili del motore siano collegate correttamente alle uscite.

Esempi di codice e guida passo-passo

Nel codice, per prima cosa includiamo ilStepper.hLibreria per semplificare il controllo del motore passo-passo. Definiamo il numero totale di passi per rivoluzione, che è cruciale per un movimento preciso. Gli identificatori chiave nel codice includonostepsPerRevolution, che imposta il numero di passi necessari per una rotazione completa, emyStepper, che inizializza l'oggetto stepper con i pin specificati.

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // initialize the stepper library

Questo estratto inizializza il motore passo-passo con i pin appropriati. Nelsetup()Nella funzione, impostiamo la velocità del motore e abilitiamo il driver impostando i pin 2 e 3 su HIGH.

void setup() {
  myStepper.setSpeed(300); // set the speed at 60 rpm
  pinMode(2,OUTPUT); // for EN1
  digitalWrite(2,HIGH); // enable EN1
  pinMode(3,OUTPUT); // for EN2
  digitalWrite(3,HIGH); // enable EN2
}

Nelloop()Nella funzione, il motore compie una rivoluzione sia in senso orario sia in senso antiorario, con un ritardo tra i due. Questo consente di osservare il funzionamento del motore.

void loop() {
  myStepper.step(stepsPerRevolution); // step one revolution in one direction
  delay(500); // wait half a second
  myStepper.step(-stepsPerRevolution); // step one revolution in the other direction
  delay(500); // wait half a second
}

Questo estratto mostra come controllare il motore per farlo ruotare in entrambe le direzioni. Il codice completo è riportato sotto l'articolo per riferimento.

Dimostrazione / Cosa aspettarsi

Una volta che tutto è cablato correttamente e il codice è caricato, dovresti vedere il motore passo-passo compiere una rivoluzione completa in una direzione, seguita da una rivoluzione completa nella direzione opposta. Inoltre, se incorpori il potenziometro per il controllo della velocità, regolarlo modificherà la velocità di rotazione del motore. Fai attenzione alla corrente assorbita dal motore; aumentando la velocità, il motore potrebbe assorbire più corrente, il che può portare al surriscaldamento se non viene gestito correttamente (nel video alle 09:45).

Se il motore non ruota come previsto, controlla il cablaggio per assicurarti che tutte le connessioni siano salde e correttamente orientate. Inoltre, verifica che la tensione di alimentazione sia appropriata per il tuo motore passo-passo.

Marcatori temporali del video

  • 00:00- Introduzione
  • 01:30- Spiegazione del cablaggio
  • 05:00- Panoramica del codice
  • 09:45- Dimostrazione del controllo del motore

Immagini

L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
L298N motor driver (yellow connector)
Nema17_stpper_motor-1
Nema17_stpper_motor-1
Nema17_stpper_motor-2
Nema17_stpper_motor-2
94-Code for One Revolution
Lingua: C++
95-Code for rotating a stepper motor one step at a time
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

Nessun file disponibile.