Samouczek ESP32 15/55 - Sterowanie prędkością silnika DC z ESP32 L293D | Zestaw do nauki IoT ESP32 od SunFounder
Poradnik ESP32 15/55 - Sterowanie prędkością silnika DC za pomocą ESP32 i L293D | Zestaw edukacyjny IoT SunFounder ESP32
Sterowanie silnikiem prądu stałego za pomocą ESP32 może wydawać się trudne, ale jest całkiem proste przy odpowiednich komponentach i zrozumieniu zagadnienia. W tym poradniku zbudujemy projekt, który pozwoli nam kontrolować prędkość i kierunek obrotów silnika DC za pomocą sterownika silników L293D. Po ukończeniu będziesz mieć działający układ, który może obracać silnik do przodu i do tyłu oraz regulować jego prędkość. Aby zobaczyć wizualne odniesienie, obejrzyj wideo (na wideo w 00:00).
Omówienie sprzętu
Główne komponenty tego projektu to mikrokontroler ESP32 oraz sterownik silników L293D. ESP32 to wydajny mikrokontroler z wbudowaną obsługą Wi-Fi i Bluetooth, co czyni go odpowiednim do zastosowań IoT. Może sterować różnymi komponentami sprzętowymi, w tym silnikami, za pomocą swoich pinów GPIO. L293D to podwójny mostek H do sterowania silnikami, który pozwala kontrolować kierunek i prędkość dwóch silników prądu stałego. Każdy mostek H może napędzać silnik w dowolnym kierunku poprzez odwrócenie polaryzacji napięcia przyłożonego do zacisków silnika. Dodatkowo L293D może obsłużyć prąd do 600 mA na kanał, co czyni go odpowiednim do małych i średnich silników.
Szczegóły z karty katalogowej
| Producent | Texas Instruments |
|---|---|
| Numer części | L293D |
| Napięcie logiki/IO | 2,5 – 7 V |
| Napięcie zasilania | 4,5 – 36 V |
| Prąd wyjściowy (na kanał) | 600 mA (typ.) |
| Prąd szczytowy (na kanał) | 1,2 A (maks.) |
| Zalecana częstotliwość PWM | 20 kHz (typ.) |
| Progi logiczne wejścia | 0,8 V (wysoki), 2,0 V (niski) |
| Spadek napięcia / RDS(on) / nasycenie | 1,5 V (maks.) |
| Limity termiczne | 150 °C (maks.) |
| Obudowa | 16-DIP |
| Uwagi / warianty | Poczwórny sterownik połowy mostka H |
- Zapewnij odpowiednie odprowadzanie ciepła w zastosowaniach o wysokim prądzie.
- Odseparuj zasilanie kondensatorami, aby zapobiec skokom napięcia.
- Zachowaj ostrożność podczas podłączania przewodów, aby zapobiec odwróceniu polaryzacji.
- Użyj PWM do kontroli prędkości, aby uniknąć przegrzewania.
- Sprawdź napięcie znamionowe silnika, aby zapobiec uszkodzeniom.
Instrukcje podłączenia

Aby podłączyć ESP32 i sterownik silników L293D, zacznij od podłączenia zasilania. Podłącz pin 16 układu L293D do dodatniego zacisku zasilacza, a pin 4 do masy. Następnie podłącz silnik: jeden zacisk do pinu 3, a drugi do pinu 6 na L293D. Dla sygnałów sterujących podłącz pin GPIO 13 ESP32 do pinu 2 na L293D oraz pin GPIO 14 do pinu 7. Na koniec upewnij się, że masa ESP32 jest połączona z masą L293D, aby zapewnić wspólne odniesienie. Jeśli wideo wspomina o alternatywnym podłączeniu (na wideo w 05:00), postępuj zgodnie z pokazanymi zmianami.
Przykłady kodu i omówienie
Kod do sterowania silnikiem polega na zdefiniowaniu pinów dla silnika i ustawieniu ich trybów. Oto fragment funkcji setup:
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
W tym fragmencie definiujemy piny sterujące silnikiem jako stałe i ustawiamy je jako wyjścia w funkcji setup. Jest to kluczowe, ponieważ przygotowuje piny do sterowania silnikiem. Funkcja loop to miejsce, gdzie kontrolowane jest zachowanie silnika. Oto kluczowa część pętli:
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Ten kod obraca silnik w jednym kierunku przez 2 sekundy, następnie odwraca kierunek na kolejne 2 sekundy, a na koniec zatrzymuje silnik na 3 sekundy. Ta pętla będzie powtarzana w nieskończoność, umożliwiając ciągłe sterowanie. Aby uzyskać bardziej szczegółowe informacje i pełny kod, zapoznaj się z całym programem, który znajduje się poniżej artykułu.
Demonstracja / Czego się spodziewać
Po pomyślnym podłączeniu i wgraniu kodu powinieneś zobaczyć, jak silnik obraca się w jednym kierunku przez 2 sekundy, zmienia kierunek na kolejne 2 sekundy, a następnie zatrzymuje się na 3 sekundy. Jeśli silnik nie reaguje zgodnie z oczekiwaniami, sprawdź typowe problemy, takie jak odwrócona polaryzacja lub nieprawidłowe podłączenie pinów (na wideo w 08:00). Ten układ zapewnia prosty sposób kontroli prędkości i kierunku obrotów silnika prądu stałego za pomocą ESP32 i L293D.
Znaczniki czasu wideo
- 00:00 Start
- 2:01 Wprowadzenie do silnika DC
- 6:14 Sterownik silnika L293D
- 9:17 Dokumentacja projektu
- 11:04 Wyjaśnienie okablowania
- 14:41 Sterowanie silnikiem Arduino z ESP32
- 17:10 Wybór portów Arduino dla płytki ESP32
- 18:52 Demonstracja projektu
- 22:08 Sterowanie prędkością silnika za pomocą ESP32
- 26:22 Demo sterowania prędkością
- 28:01 Kod Arduino do sterowania prędkością i kierunkiem
- 29:05 Demonstracja prędkości i kierunku
#define motor1A 13
#define motor2A 14
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin as an output.
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
// Rotate
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
// Rotate in the opposite direction
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
// Stop
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Common Course Links
Common Course Files
Rzeczy, których możesz potrzebować
-
AmazonPurchase L293D motor driver ICamzn.to
-
Allegro
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Zasoby i odniesienia
-
DokumentacjaESP32 Tutorial 15/55 - SunFounder motor control documentationdocs.sunfounder.com
Pliki📁
Karta katalogowa (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB