SKU: OT2099-B41 Číslo položky: AA034 EAN: 8720589817425
S touto L298N Motor Driver Board můžete snadno ovládat DC motory a krokové motory například pomocí Arduino, ESP32, Raspberry Pi, mikrokontroléru nebo jiného digitálního řídicího systému.
Modul je postaven na známém L298N Dual H-Bridge driveru motorů. Díky dvěma integrovaným H-můstků můžete nezávisle ovládat dva běžné kartáčové DC motory, včetně směru otáčení a regulace rychlosti. Kromě toho lze modul použít i pro ovládání jednoho bipolárního krokového motoru.
Napájení motorů může podle specifikací tohoto modulu být v rozmezí 5 až 35 V DC. Logika pracuje na 5 V. L298N podporuje proud až 2 A na kanál za vhodných podmínek, přičemž při vyšší zátěži je důležité dobré chlazení.
L298N není určen jen pro krokové motory. Deska je velmi vhodná pro řízení běžných brushed DC motorů.
S jedním modulem lze samostatně ovládat až dva DC motory:
Pomocí digitálních vstupů můžete určit směr otáčení každého motoru. Přes připojení ENA a ENB lze navíc přivést PWM signál pro regulaci otáček motorů.
Díky tomu jsou mimo jiné možné tyto funkce:
Modul je tak vhodný mimo jiné pro robotická auta, vozidla, malé stroje, aktuátory, ventilátory a další projekty s DC motory.
Oba H-můstky lze také použít společně pro ovládání bipolárního krokového motoru. Čtyři motorové výstupy OUT1 až OUT4 se připojují na dvě cívky krokového motoru.
Pořadí, ve kterém jsou řízeny IN1 až IN4, pak určuje směr otáčení a krokový režim.
U DC motorů lze otáčky regulovat pomocí PWM (Pulse Width Modulation).
K tomu se odstraní propojky ENA a/nebo ENB a tato připojení se propojí s PWM výstupem mikrokontroléru.
Pokud zůstane příslušná propojka osazena, je kanál trvale zapnutý a motor lze ovládat přes piny IN bez samostatného PWM signálu.
Napájení motorů / VS
Připojení pro napájecí napětí motorů.
GND
Společná zem pro napájení i řízení. GND mikrokontroléru a driveru motorů musí být propojeny.
5V
5V připojení pro logiku modulu. V závislosti na konfiguraci 5V regulátoru a propojky může toto připojení fungovat jako vstup nebo výstup napájení.
OUT1 / OUT2
Výstup H-můstku A. Zde se připojuje DC motor A.
IN1 / IN2
Digitální řídicí vstupy, kterými se určuje směr otáčení motoru A.
ENA
Enable vstup motoru A. Lze jej také použít pro PWM regulaci rychlosti.
OUT3 / OUT4
Výstup H-můstku B. Zde se připojuje DC motor B.
IN3 / IN4
Digitální řídicí vstupy, kterými se určuje směr otáčení motoru B.
ENB
Enable vstup motoru B. Lze jej také použít pro PWM regulaci rychlosti.
| ENA | IN1 | IN2 | Funkce |
|---|---|---|---|
| HIGH | HIGH | LOW | Směr otáčení 1 |
| HIGH | LOW | HIGH | Směr otáčení 2 |
| HIGH | LOW | LOW | Stop/brzda |
| HIGH | HIGH | HIGH | Stop/brzda |
| LOW | X | X | Výstup vypnutý |
Skutečný směr otáčení závisí na tom, jak jsou dva vodiče motoru připojeny na OUT1 a OUT2.
Pro motor B funguje ovládání stejným způsobem přes IN3, IN4 a ENB.
Použitý L298N je dual full-bridge driver speciálně navržený pro spínání indukčních zátěží, jako jsou DC motory, krokové motory, relé a solenoidy. Samotný L298 podle výrobce podporuje napájecí napětí motoru až 46 V a mimo jiné disponuje tepelnou ochranou.
Na tomto kompletním modulu je uvažováno napájecí napětí motorů 5 až 35 V DC.
Uvedený maximální proud 2 A je třeba chápat jako maximální hodnotu driveru. Při vyšších trvalých proudech motoru vzniká v L298N značná tepelná ztráta. Prakticky použitelný trvalý proud proto závisí mimo jiné na napájecím napětí, chlazení, okolní teplotě a zátěži.
Zkontrolujte také nejen jmenovitý proud DC motoru, ale i rozběhový a zablokovací proud (stall current). Ten může být několikanásobně vyšší než proud při běžném provozu.
L298N používá bipolární výstupní tranzistory, a proto má větší úbytek napětí než moderní MOSFET motorové drivery. Napětí, které se skutečně dostane k motoru, je tedy nižší než přivedené napájecí napětí.
To je zvláště důležité u nízkonapěťových motorů. Pro aplikace, kde je velmi vysoká účinnost nebo velmi malý úbytek napětí důležitý, může být moderní MOSFET driver lepší volbou.
L298N Motor Driver Board je všestranný dvojitý H-můstek pro ovládání běžných DC motorů i krokových motorů. S jedním modulem lze dva DC motory ovládat nezávisle vpřed i vzad a otáčky lze regulovat pomocí PWM. Alternativně lze oba H-můstky použít společně pro jeden bipolární krokový motor.
Díky jednoduchému digitálnímu řízení je tento modul velmi vhodný pro použití s Arduino, ESP32 a dalšími mikrokontroléry.
Takto připojíš L298N Motor Driver Board červená k Arduino UNO nebo ESP32, s ukázkovým sketchem, který můžeš hned nahrát.
Tento příklad ukazuje, jak ovládat stejnosměrné motory pomocí desky motorového driveru L298N. Arduino nastavuje směr otáčení motoru prostřednictvím digitálních logických pinů a upravuje rychlost motoru pomocí PWM na enable pinu. Program nejprve roztočí motory dopředu, zastaví je a poté je roztočí opačným směrem.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : L298N Motor Driver Control with Arduino Uno
* Board : Arduino UNO (arduino:avr:uno)
* Parts : L298N Motor Driver Board
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
// L298N Motor Driver Control Demo
const int ENA_PIN = 5; // PWM speed control
const int IN1_PIN = 8; // Motor A direction 1
const int IN2_PIN = 9; // Motor A direction 2
const int IN3_PIN = 10; // Motor B direction 1
const int IN4_PIN = 11; // Motor B direction 2
void stopMotors() {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, LOW);
digitalWrite(IN3_PIN, LOW);
digitalWrite(IN4_PIN, LOW);
analogWrite(ENA_PIN, 0);
}
void driveForward(int speedVal) {
digitalWrite(IN1_PIN, HIGH);
digitalWrite(IN2_PIN, LOW);
digitalWrite(IN3_PIN, HIGH);
digitalWrite(IN4_PIN, LOW);
analogWrite(ENA_PIN, speedVal);
}
void driveReverse(int speedVal) {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, HIGH);
digitalWrite(IN3_PIN, LOW);
digitalWrite(IN4_PIN, HIGH);
analogWrite(ENA_PIN, speedVal);
}
void setup() {
Serial.begin(115200);
pinMode(ENA_PIN, OUTPUT);
pinMode(IN1_PIN, OUTPUT);
pinMode(IN2_PIN, OUTPUT);
pinMode(IN3_PIN, OUTPUT);
pinMode(IN4_PIN, OUTPUT);
stopMotors();
Serial.println(F("L298N Motor Driver initialized."));
}
void loop() {
Serial.println(F("Driving forward"));
driveForward(200);
delay(2000);
Serial.println(F("Stopping"));
stopMotors();
delay(1000);
Serial.println(F("Driving reverse"));
driveReverse(200);
delay(2000);
Serial.println(F("Stopping"));
stopMotors();
delay(1000);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Tento projekt řídí dva DC motory pomocí ESP32 a H-můstkového driveru L298N. Sketch roztočí oba motory vpřed, zastaví je, roztočí je zpět a ukazuje PWM řízení rychlosti. Připojte externí napájení ke svorce 12V na L298N, aby byl k dispozici dostatečný proud pro větší motory.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : ESP32 Dual DC Motor Control with L298N
* Board : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
* Parts : L298N Motor Driver Board
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
const int ENA_PIN = 14;
const int IN1_PIN = 27;
const int IN2_PIN = 26;
const int IN3_PIN = 25;
const int IN4_PIN = 33;
const int ENB_PIN = 32;
void setMotors(int speedA, int dirA, int speedB, int dirB) {
// Motor A direction
if (dirA > 0) {
digitalWrite(IN1_PIN, HIGH);
digitalWrite(IN2_PIN, LOW);
} else if (dirA < 0) {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, HIGH);
} else {
digitalWrite(IN1_PIN, LOW);
digitalWrite(IN2_PIN, LOW);
}
analogWrite(ENA_PIN, speedA);
// Motor B direction
if (dirB > 0) {
digitalWrite(IN3_PIN, HIGH);
digitalWrite(IN4_PIN, LOW);
} else if (dirB < 0) {
digitalWrite(IN3_PIN, LOW);
digitalWrite(IN4_PIN, HIGH);
} else {
digitalWrite(IN3_PIN, LOW);
digitalWrite(IN4_PIN, LOW);
}
analogWrite(ENB_PIN, speedB);
}
void setup() {
Serial.begin(115200);
pinMode(ENA_PIN, OUTPUT);
pinMode(IN1_PIN, OUTPUT);
pinMode(IN2_PIN, OUTPUT);
pinMode(IN3_PIN, OUTPUT);
pinMode(IN4_PIN, OUTPUT);
pinMode(ENB_PIN, OUTPUT);
Serial.println("L298N Motor Driver Initialized");
}
void loop() {
// Drive forward
Serial.println("Moving Forward");
setMotors(200, 1, 200, 1);
delay(2000);
// Stop
Serial.println("Stopping");
setMotors(0, 0, 0, 0);
delay(1000);
// Drive backward
Serial.println("Moving Backward");
setMotors(200, -1, 200, -1);
delay(2000);
// Stop
Serial.println("Stopping");
setMotors(0, 0, 0, 0);
delay(1000);
// Speed ramp up
Serial.println("Ramping Speed Forward");
for (int spd = 0; spd <= 255; spd += 15) {
setMotors(spd, 1, spd, 1);
delay(100);
}
delay(500);
setMotors(0, 0, 0, 0);
delay(1500);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online