Podwójny sterownik silnika pozwala na kontrolę prędkości i kierunku dwóch silników prądu stałego, lub może sterować jednym silnikiem krokowym bipolarny. Moduł L298N z mostkiem H może być stosowany w przypadku silników, które mają napięcie pracy od  5 do 35V. Podstawowym elementem modułu jest układ scalony wlutowany do obwodu drukowanego. W celu uzyskania pełnej mocy wyjściowej do układu scalonego został dołączony mały radiator. Poniższy opis dotyczy zastosowania układu L298N jako sterownika silnika krokowego, może on jednak zostać wykorzystany do innych celów. Za pomocą tego modułu możliwe jest sterowanie np. 2 silnikami prądu stałego lub diodami LED RGB.

L298N

Rys.1 Moduł L298N

Według kary katalogowej układu L298N maksymalne napięcie zasilania silników może wymościć 46 V w praktyce jednak napięcie to jest ograniczone dopuszczalnym napięciem pracy kondensatorów które wynosi 35V. Maksymalny prąd wyjściowy może osiągnąć wartość do 2 A. Oprócz napięcia zasilania silników wymagane jest również zasilanie logiki układu które wynosi 5 V.

Rysunek poniżej przedstawia schemat blokowy układu oraz uproszczony fragment ¼  układu z wskazanymi punktami zasilania.

L298N schemat

Rys. 2 Schemat blokowy układu L298N oraz uproszczony fragment ¼  układu

Układ L298N stanowi części wykonawczą sterującą silnikiem krokowym. Drugim elementem jest część logiczna odpowiadająca za wysterowanie końcówki mocy w celu uzyskania właściwych obrotów oraz kierunku pracy silnika. Kolejny rysunek przedstawia połączenie modułu L298N z Arduino będącym elementem na którym wykonywany jest program oraz sterującym modułem  elektronicznym. Rysunek poniżej przedstawia schemat połączenia poszczególnych układów.

L298N

Rys. 3 Połączenie Arduino z L298N i silnikiem krokowym. 

Źródło:https://www.arduino.cc/en/Tutorial/MotorKnob

Oprócz podzespołów elektronicznych wymagane jest również wgranie oprogramowania. Dostępnego na stronie https://www.arduino.cc/en/Tutorial/LibraryExamples. Na wyszczególnionej stronie znajdują się przykłady podzielnie tematycznie. W zakładce stepper znajduje się oprogramowanie przeznaczone do sterowania silnikami krokowymi.

Klaster3D Arduino steeper motor

Rys. 4 Strona z przykładami dla Arduino. Źródło: https://www.arduino.cc/en/Tutorial/LibraryExamples

Przykładowy kod programu przedstawiono poniżej.

Code

For both unipolar and bipolar steppers

/*
Stepper Motor Control – one step at a time

This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 – 11 of the Arduino.

The motor will step one step at a time, very slowly.  You can use this to
test that you’ve got the four wires of your stepper wired to the correct
pins. If wired correctly, all steps should be in the same direction.

Use this also to count the number of steps per revolution of your motor,
if you don’t know it.  Then plug that number into the oneRevolution
example to see if you got it right.

Created 30 Nov. 2009
by Tom Igoe

*/

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
// initialize the serial port:
Serial.begin(9600);
}

void loop() {
// step one step:
myStepper.step(1);
Serial.print(„steps:”);
Serial.println(stepCount);
stepCount++;
delay(500);
}

Schemat połączenia Arduino, sterownika oraz silnika zamieszono na kolejnym rysunku

l298n-schemat-1

Rys.5 Sposób podłączenia silnika bipolarnego oraz unipolarnego Źródło:https://www.arduino.cc/en/Tutorial/MotorKnob

Działający układ przedstawiono na zdjęciu oraz filmie zamieszczonym poniżej.

1m