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