Search Code

Samouczek ESP32 16/55 - Mini pompa wodna z użyciem ESP32 i L293D | Zestaw do nauki IoT ESP32 od SunFounder

Samouczek ESP32 16/55 - Mini pompa wodna z użyciem ESP32 i L293D | Zestaw do nauki IoT ESP32 od SunFounder

W tym samouczku nauczymy się, jak sterować pompką wodną 5V za pomocą mikrokontrolera ESP32 oraz sterownika silników L293D. Ten projekt to świetne wprowadzenie do korzystania ze sterowników silników z mikrokontrolerami, umożliwiające sterowanie urządzeniami, które wymagają większego prądu, niż mikrokontroler może dostarczyć bezpośrednio. Po ukończeniu tego samouczka będziesz mieć działającą pompkę wodną, którą można włączać i wyłączać programowo.

ESP32 to wydajny mikrokontroler z wbudowaną obsługą Wi-Fi i Bluetooth, co czyni go odpowiednim do zastosowań IoT. Sterownik silników L293D służy do sterowania pompką wodną poprzez zarządzanie wyższym prądem wymaganym do pracy silnika. Taka konfiguracja pozwala nam uruchamiać i zatrzymywać pompkę, zapewniając jednocześnie bezpieczeństwo ESP32 przed nadmiernym poborem prądu.

Omówienie sprzętu

W tym projekcie wykorzystujemy mikrokontroler ESP32, znany ze swojej wszechstronności i opcji łączności. Może działać jak Arduino, oferując dodatkowe funkcje, takie jak Wi-Fi i Bluetooth. Sterownik silników L293D działa jako interfejs między ESP32 a pompką wodną, umożliwiając kontrolę pracy pompki bez przeciążania mikrokontrolera.

L293D posiada dwa mostki H, co umożliwia sterowanie kierunkiem i prędkością silnika. Każdy mostek H może napędzać silnik w dowolnym kierunku, co czyni go odpowiednim do zastosowań wymagających sterowania silnikiem. W tym przypadku będziemy potrzebować jedynie uruchamiania pompki w jednym kierunku.

Szczegóły z karty katalogowej

ProducentTexas Instruments
Numer częściL293D
Napięcie logiczne/IO4,5 - 36 V
Napięcie zasilania4,5 - 36 V
Prąd wyjściowy (na kanał)600 mA
Prąd szczytowy (na kanał)1,2 A
Zalecana częstotliwość PWM1 kHz - 10 kHz
Progi logiczne wejściowe2 V (stan wysoki), 0,8 V (stan niski)
Spadek napięcia / RDS(on) / nasycenie1,5 V (maks.)
Limity termiczne+150 °C (maks.)
ObudowaDIP-16
Uwagi / wariantyZawiera wbudowane diody chroniące przed obciążeniem indukcyjnym

  • Zapewnij odpowiednie odprowadzanie ciepła podczas ciągłej pracy.
  • Użyj kondensatorów odsprzęgających dla stabilnego zasilania.
  • Uważaj na napięcie wejściowe, aby uniknąć uszkodzeń.
  • W razie potrzeby zastosuj PWM do kontroli prędkości.
  • Sprawdź okablowanie, aby uniknąć zwarć, zwłaszcza przy obciążeniach indukcyjnych.

Instrukcje okablowania

ESP32-16-motor-pump_wiring

Aby podłączyć ESP32 i sterownik silników L293D do pompki wodnej, wykonaj dokładnie poniższe kroki. Najpierw podłącz zasilanie do L293D. Podłącz pin 1 (pin włączający dla silnika A) oraz pin 8 (Vcc2) do dodatniego źródła napięcia (5V). Podłącz pin 4 (masa) do masy układu.

Następnie podłącz ESP32 do L293D. Podłącz pin GPIO 13 z ESP32 do pinu 2 (wejście 1) na L293D oraz pin GPIO 14 do pinu 7 (wejście 2). Na koniec podłącz pompkę wodną do pinu 3 (wyjście 1) i pinu 6 (wyjście 2) układu L293D. Upewnij się, że wszystkie połączenia masy są ze sobą połączone dla prawidłowego działania. Jeśli postępujesz zgodnie z tymi instrukcjami, okablowanie powinno być proste i funkcjonalne.

Przykłady kodu i omówienie

W kodzie definiujemy połączenia pinów do sterowania silnikiem. Identyfikatory motor1A i motor2A odpowiadają odpowiednio pinom GPIO 13 i 14 na ESP32. Te piny będą sterować pompką wodną przez sterownik L293D.

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

W funkcji setup() inicjalizujemy piny sterowania silnikiem jako wyjścia. Zapewnia to możliwość wysyłania sygnałów do sterownika L293D w celu kontroli pompki. Funkcja loop() następnie steruje pracą pompki.

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // czekaj sekundę
}

W funkcji loop() ustawiamy motor1A na HIGH i motor2A na LOW, aby uruchomić pompkę. Po krótkim opóźnieniu zatrzymujemy pompkę, ustawiając oba piny na LOW. Ten cykl powtarza się w nieskończoność, umożliwiając pompce pracę przez krótki okres, a następnie zatrzymanie.

Demonstracja / Czego się spodziewać

Po zakończeniu okablowania i wgraniu kodu powinieneś zobaczyć, jak pompka wodna włącza się i wyłącza w cyklu. Pompka będzie działać przez krótki czas, a następnie się zatrzyma, tworząc wzór włączania i wyłączania. Upewnij się, że zasilanie jest wystarczające dla wymagań pompki, aby uniknąć problemów (na wideo w 09:30).

Znaczniki czasu wideo

  • 00:00 Start
  • 1:50 Wprowadzenie do projektu
  • 3:17 Dlaczego potrzebujemy L293D z Arduino?
  • 5:47 Wyjaśnienie okablowania pompki wodnej
  • 10:01 Wyjaśnienie kodu Arduino
  • 12:21 Wybór portu COM dla ESP32 w Arduino IDE
  • 14:03 Demonstracja uruchamiania pompki
  • 15:25 Demonstracja z wodą

Obrazy

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
ESP32-16-motor-pump_wiring
5V DC water pump
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump
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(5);

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // wait for a second
}

Zasoby i odniesienia

Pliki📁

Karta katalogowa (pdf)