Szukaj kodu

Samouczek ESP32 15/55 - Sterowanie prędkością silnika DC z ESP32 L293D | Zestaw do nauki IoT ESP32 od SunFounder

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

Schemat ESP32-15_L293D_motor

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.

Układ scalony sterownika silnika L293D

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

ESP32-15_L293D_motor_wiring

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

Obrazy

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
Język: C++
#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);
}

Rzeczy, których możesz potrzebować

Zasoby i odniesienia

Pliki📁

Karta katalogowa (pdf)