Zpět na články

Ovládání DC motoru

Vytvoř webový server na ESP32 a ovládej DC motor přes WiFi pomocí jednoduché webové stránky.

Ovládání DC motoru

V tomto projektu budeme ovládat DC motor. Motor bude připojen přes driver L298N a ESP32 bude naprogramováno pomocí Arduino IDE.

Přehled projektu

DC motor nelze připojit přímo na GPIO piny ESP32 – potřebuje víc proudu než je ESP32 schopno dodat. Motor driver L298N funguje jako prostředník: přijímá logické signály z ESP32 a spíná výkonový proud z externího zdroje.

ESP32 Blog image

Potřebné komponenty

Pro vytvoření projektu budeš potřebovat několik základních součástek:

  • mikrokontroler ESP32
  • DC motor
  • motor driver L298N
  • propojovací vodiče
  • externí napájení pro motor (například 4 AA baterie nebo jiný zdroj)

Motor potřebuje vyšší proud než dokáže poskytnout ESP32, proto se používá motor driver a samostatné napájení.

Zapojení ESP32, L298N a motoru

Motor se připojuje k výstupu Motor A na modulu L298N.

Pin Input 1 na driveru L298N připojíme na GPIO 27 na ESP32.
Pin Input 2 na driveru připojíme na GPIO 26 na ESP32.
Pin Enable A připojíme na GPIO 14 na ESP32.
Pin GND na driveru musí být propojen se zemí ESP32.

Motor driver je napájen externím zdrojem, například bateriovým držákem. V tomto zapojení lze použít napětí přibližně 6 až 12 V podle typu motoru.

Doporučuje se také připájet 0,1 µF keramický kondenzátor mezi kontakty motoru, aby se omezily napěťové špičky vznikající při jeho chodu.

ESP32 Blog image

Program pro ESP32

Následující kód vytvoří webový server, který zobrazí stránku s tlačítky pro ovládání motoru.

dc-motor
1// Piny 2const int IN1 = 27; 3const int IN2 = 26; 4const int ENA = 14; 5 6// PWM nastavení 7const int pwmChannel = 0; 8const int pwmFreq = 1000; // Hz 9const int pwmRes = 8; // 8-bit = 0–255 10 11void moveForward(int speed) { 12 digitalWrite(IN1, LOW); 13 digitalWrite(IN2, HIGH); 14 ledcWrite(pwmChannel, speed); 15} 16 17void moveBackward(int speed) { 18 digitalWrite(IN1, HIGH); 19 digitalWrite(IN2, LOW); 20 ledcWrite(pwmChannel, speed); 21} 22 23void stopMotor() { 24 digitalWrite(IN1, LOW); 25 digitalWrite(IN2, LOW); 26 ledcWrite(pwmChannel, 0); 27} 28 29void setup() { 30 Serial.begin(115200); 31 32 pinMode(IN1, OUTPUT); 33 pinMode(IN2, OUTPUT); 34 35 // PWM pro ENA 36 ledcSetup(pwmChannel, pwmFreq, pwmRes); 37 ledcAttachPin(ENA, pwmChannel); 38} 39 40void loop() { 41 Serial.println("Dopředu – plná rychlost"); 42 moveForward(255); 43 delay(3000); 44 45 Serial.println("Dopředu – poloviční rychlost"); 46 moveForward(128); 47 delay(3000); 48 49 Serial.println("Stop"); 50 stopMotor(); 51 delay(1000); 52 53 Serial.println("Dozadu – plná rychlost"); 54 moveBackward(255); 55 delay(3000); 56 57 Serial.println("Stop"); 58 stopMotor(); 59 delay(1000); 60}

Spuštění projektu

Po nahrání programu do ESP32 otevři Serial Monitor s rychlostí 115200 baudů.

Možná rozšíření projektu

Tento projekt můžeš dále rozšířit například o:

  • řízení rychlosti motoru pomocí PWM
  • ovládání více motorů
  • přidání senzorů a zobrazování dat na webu
  • vytvoření dashboardu pro IoT zařízení

ESP32 díky WiFi umožňuje snadno vytvářet webové aplikace pro ovládání hardware v reálném čase.

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.