Sterownik silnika L298N to popularny moduł do kontrolowania silników DC i silników krokowych. Pozwala kontrolować prędkość i kierunek silnika za pomocą sygnałów PWM z Arduino, dzięki czemu jest idealny do projektów robotyki i automatyzacji. Ten samouczek poprowadzi Cię przez połączenie i korzystanie z L298N z Arduino.
Czego będziesz potrzebować
- Moduł sterownika silnika L298N
- Arduino Board (np. UNO, Mega, Nano)
- Silniki DC lub silniki stepowe
- Zewnętrzne źródło zasilania (np. Bateria 9 V lub 12 V)
- Druty chleba i skoczków
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie sterownika silnika L298N
Moduł L298N jest podwójnym sterownikiem silnika mostka, co oznacza, że może kontrolować prędkość i kierunek dwóch silników prądu stałego niezależnie lub jednego silnika krokowego.
L298N Pinout
Szpilka | Funkcjonować |
---|---|
IN1, IN2 | Mocować wejścia do sterowania kierunkiem |
IN3, IN4 | Wejścia sterowania kierunkiem silnika B |
Ena | Mocować kontrolę prędkości (wejście PWM) |
Enb | Kontrola prędkości silnika B (wejście PWM) |
Out1, out2 | Silnik wyjściowy |
Out3, out4 | Wyjścia silnika B. |
12V (VCC) | Zewnętrzny zasilacz dla silników |
5v (opcjonalnie) | Zasilacz logiczny (jeśli słoczek zostanie usunięty) |
GND | Grunt |
Uwagi:
- Moduł zawiera wbudowany regulator 5 V, który zasila obwód logiczny, jeśli skoczka jest na miejscu, a VCC ma 7-12 V.
- Usunięcie zworki wymaga osobno dostarczenia logiki 5 V.
Krok 2: Okablowanie L298N do Arduino
Oto jak podłączyć L298N z Arduino Uno i dwoma silnikami DC:
L298N Pin | PIN Arduino |
---|---|
Ena | Pin 10 (PWM) |
In1 | Pin 8 |
In2 | Pin 9 |
Enb | Pin 11 (PWM) |
In3 | Pin 6 |
IN4 | Pin 7 |
GND | Arduino GND |
12V (VCC) | Moc zewnętrzna (9 V/12 V) |
Out1, out2 | Mocować terminale |
Out3, out4 | Terminale silnikowe B. |
Krok 3: Prześlij kod
Oto przykład szkicu do kontrolowania dwóch silników DC:
Przykładowy kod
// Motor A connections
#define ENA 10
#define IN1 8
#define IN2 9
// Motor B connections
#define ENB 11
#define IN3 6
#define IN4 7
void setup() {
// Set all pins as outputs
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Move Motor A forward
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 150); // Set speed (0-255)
// Move Motor B backward
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 150); // Set speed (0-255)
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
// Move both motors in reverse
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, 200);
analogWrite(ENB, 200);
delay(2000); // Run for 2 seconds
// Stop both motors
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
delay(1000); // Pause for 1 second
}
Krok 4: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod do Arduino, klikając Wgrywać.
- Observe the motors spinning forward, stopping, and reversing based on the programmed sequence.
Opcjonalnie: dynamiczne kontrolowanie prędkości
Możesz dynamicznie dostosować prędkość silnika, zmieniając wartości PWM wysłane do ENA
I ENB
piny za pomocą anogwrite (). Na przykład:
analogWrite(ENA, 100); // Slow speed
analogWrite(ENA, 255); // Full speed
Zastosowania L298N
- Budowanie zmotoryzowanych robotów
- Kontrolowanie pasów przenośników
- Prowadzenie silników krokowych
- Systemy automatyzacji z silnikami DC
Rozwiązywanie problemów
- Silniki nie wirują: Upewnij się, że zasilacz zewnętrzny jest podłączony i zapewnia wystarczającą ilość prądu.
- Niepoprawny kierunek silnika: W razie potrzeby sprawdź okablowanie PINS i odwrotne połączenia.
- Niestabilne zachowanie motoryczne: Użyj stabilnego zasilania i unikaj luźnych połączeń.
Wniosek
Z powodzeniem połączyłeś sterownik silnika L298N z Arduino do kontrolowania silników DC. Ten wszechstronny moduł umożliwia z łatwością zarządzanie prędkością silnika i kierunku. Eksperymentuj dalej, integrując czujniki, zdalne sterowanie lub inne moduły do projektów zmotoryzowanych!