SKU: OT2099-B41 Artikelnummer: AA034 EAN: 8720589817425
Med detta L298N Motor Driver Board kan du enkelt styra DC-motorer och stegmotorer med till exempel en Arduino, ESP32, Raspberry Pi, mikrokontroller eller annat digitalt styrsystem.
Modulen är uppbyggd kring den välkända L298N Dual H-Bridge motordrivaren. Tack vare de två integrerade H-bryggorna kan du styra två vanliga borstade DC-motorer oberoende av varandra, inklusive rotationsriktning och hastighetsreglering. Dessutom kan modulen användas för att styra en bipolär stegmotor.
Motorförsörjningen kan enligt specifikationerna för denna modul ligga mellan 5 och 35 V DC. Logiken arbetar på 5 V. L298N stöder en ström upp till 2 A per kanal under lämpliga förhållanden, där god kylning är viktig vid högre belastningar.
L298N är inte bara avsedd för stegmotorer. Kortet är mycket lämpligt för styrning av vanliga borstade DC-motorer.
Med en modul kan upp till två DC-motorer styras separat:
Via de digitala ingångarna kan du bestämma rotationsriktningen för varje motor. Via anslutningarna ENA och ENB kan dessutom en PWM-signal matas in för att reglera motorernas varvtal.
Därmed är bland annat följande funktioner möjliga:
Detta gör modulen bland annat lämplig för robotbilar, fordon, små maskiner, aktuatorer, fläktar och andra projekt med DC-motorer.
De två H-bryggorna kan också användas tillsammans för att styra en bipolär stegmotor. De fyra motorutgångarna OUT1 t/m OUT4 ansluts då till stegmotorns två spolar.
Ordningen i vilken IN1 t/m IN4 styrs avgör därefter rotationsriktningen och stegmönstret.
För DC-motorer kan varvtalet regleras via PWM (Pulse Width Modulation).
För detta tas byglingarna på ENA och/eller ENB bort och dessa anslutningar kopplas till en PWM-utgång på mikrokontrollern.
När den aktuella bygeln lämnas på plats är kanalen kontinuerligt aktiverad och motorn kan styras via IN-pinnarna utan separat PWM-signal.
Motorförsörjning / VS
Anslutning för motorernas matningsspänning.
GND
Gemensam jord för matning och styrning. GND på mikrokontrollern och motordrivaren måste vara förbundna med varandra.
5V
5V-anslutning för modulens logik. Beroende på konfigurationen av 5V-regulatorn och bygeln kan denna anslutning fungera som matningsingång eller utgång.
OUT1 / OUT2
Utgång från H-brygga A. Här ansluts DC-motor A.
IN1 / IN2
Digitala styringångar som bestämmer rotationsriktningen för motor A.
ENA
Enable-ingång för motor A. Kan även användas för PWM-hastighetsreglering.
OUT3 / OUT4
Utgång från H-brygga B. Här ansluts DC-motor B.
IN3 / IN4
Digitala styringångar som bestämmer rotationsriktningen för motor B.
ENB
Enable-ingång för motor B. Kan även användas för PWM-hastighetsreglering.
| ENA | IN1 | IN2 | Funktion |
|---|---|---|---|
| HIGH | HIGH | LOW | Rotationsriktning 1 |
| HIGH | LOW | HIGH | Rotationsriktning 2 |
| HIGH | LOW | LOW | Stopp/broms |
| HIGH | HIGH | HIGH | Stopp/broms |
| LOW | X | X | Utgång avstängd |
Den faktiska rotationsriktningen beror på hur de två motorkablarna är anslutna till OUT1 och OUT2.
För motor B fungerar styrningen på samma sätt via IN3, IN4 och ENB.
Den använda L298N är en dual full-bridge driver som är särskilt utformad för att koppla induktiva belastningar som DC-motorer, stegmotorer, reläer och solenoider. L298 stöder enligt tillverkaren en motorförsörjningsspänning upp till 46 V och har bland annat termiskt skydd.
På denna kompletta modul används en motorförsörjningsspänning på 5 till 35 V DC.
Den angivna maximala strömmen på 2 A ska betraktas som ett maximalt drivvärde. Vid högre kontinuerliga motorströmmar uppstår avsevärt värmeförlust i L298N. Den praktiskt användbara kontinuerliga strömmen beror därför bland annat på matningsspänning, kylning, omgivningstemperatur och belastning.
Kontrollera dessutom inte bara en DC-motors nominella ström, utan även start- och låsströmmen (stall current). Den kan vara flera gånger högre än strömmen vid normal drift.
L298N använder bipolära utgångstransistorer och har därför ett större spänningsfall än moderna MOSFET-motordrivare. Spänningen som faktiskt når motorn är alltså lägre än den tillförda matningsspänningen.
Detta är särskilt relevant för lågspänningsmotorer. För tillämpningar där mycket hög verkningsgrad eller mycket litet spänningsfall är viktigt kan en modern MOSFET-driver vara ett bättre val.
L298N Motor Driver Board är en mångsidig dubbel H-brygga för styrning av både vanliga DC-motorer och stegmotorer. Med en modul kan två DC-motorer styras oberoende framåt och bakåt och varvtalet kan regleras via PWM. Alternativt kan båda H-bryggorna användas tillsammans för en bipolär stegmotor.
Tack vare den enkla digitala styrningen är denna modul mycket lämplig för användning med Arduino, ESP32 och andra mikrokontroller.
Så här kopplar du L298N Motor Driver Board röd till en Arduino UNO eller ESP32, med ett exempelsketch som du kan ladda upp direkt.
This example demonstrates how to control DC motors using an L298N motor driver board. The Arduino sets the motor rotation direction via digital logic pins and adjusts motor speed using PWM on the enable pin. The program cycles the motors forward, stops them, and then drives them in reverse.
/*
* ==================================================================
* 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
This project controls two DC motors using an ESP32 and an L298N H-bridge driver. The sketch rotates both motors forward, stops them, drives them in reverse, and demonstrates PWM speed control. Connect external power to the L298N 12V terminal to provide enough current for larger motors.
/*
* ==================================================================
* 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