ESP32 Упатство 15/55 - Контрола на брзина на DC мотор со ESP32 L293D | SunFounder's ESP32 IoT Learning комплет
ESP32 Упатство 15/55 - Контрола на брзината на DC мотор со ESP32 L293D | SunFounder's ESP32 IoT Learning kit
Контролирањето на DC мотор со ESP32 може да изгледа застрашувачки, но е сосема изводливо со вистинските компоненти и разбирање. Во ова упатство, ќе изградиме проект кој ни овозможува да ја контролираме брзината и насоката на DC мотор користејќи го L293D мотор драјверот. До крајот, ќе имате функционална поставка која може да го ротира моторот напред и назад додека ја прилагодува неговата брзина. За визуелна референца, проверете го видеото (во видеото на 00:00).
Објаснување на хардверот
Главните компоненти на овој проект вклучуваат ESP32 микроконтролер и L293D мотор драјвер. ESP32 е моќен микроконтролер со вградени Wi-Fi и Bluetooth можности, што го прави погоден за IoT апликации. Тој може да контролира различни хардверски компоненти, вклучувајќи мотори, преку своите GPIO пинови. L293D е двоен H-мост мотор драјвер кој ви овозможува да ја контролирате насоката и брзината на два DC мотори. Секој H-мост може да управува мотор во било која насока со менување на поларитетот на напонот применет на терминалите на моторот. Дополнително, L293D може да издржи струја до 600 mA по канал, што го прави погоден за мали до средни мотори.
Детали од техничката документација
| Производител | Texas Instruments |
|---|---|
| Број на дел | L293D |
| Логички/IO напон | 2.5 – 7 V |
| Напон на напојување | 4.5 – 36 V |
| Излезна струја (по канал) | 600 mA (тип.) |
| Врвна струја (по канал) | 1.2 A (макс.) |
| Насоки за PWM фреквенција | 20 kHz (тип.) |
| Влезни логички прагови | 0.8 V (висок), 2.0 V (низок) |
| Пад на напон / RDS(on) / заситување | 1.5 V (макс.) |
| Термички граници | 150 °C (макс.) |
| Пакет | 16-DIP |
| Белешки / варијанти | Четворен полу-H драјвер |
- Обезбедете соодветно ладење за апликации со висока струја.
- Раздвојте го напојувањето со кондензатори за да спречите напонски шила.
- Бидете внимателни со жиците за да спречите обратен поларитет.
- Користете PWM за контрола на брзината за да избегнете прегревање.
- Проверете го номиналниот напон на моторот за да спречите оштетување.
Инструкции за поврзување

За да ги поврзете ESP32 и L293D мотор драјверот, започнете со поврзување на напојувањето. Поврзете го пин 16 од L293D на позитивниот терминал на вашето напојување, а пин 4 на земја. Потоа, поврзете го моторот: едниот терминал на пин 3, а другиот на пин 6 од L293D. За контролни сигнали, поврзете го GPIO пин 13 од ESP32 на пин 2 од L293D и GPIO пин 14 на пин 7. Конечно, проверете дали земјата на ESP32 е поврзана со земјата на L293D за да обезбедите заедничка референца. Ако видеото спомнува алтернативно поврзување (во видеото на 05:00), следете ги специфичните промени прикажани.
Примери на код и објаснување
Кодот за контролирање на моторот се состои од дефинирање на пиновите за моторот и поставување на нивните режими. Еве извадок од функцијата за поставување:
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
Во овој фрагмент, ги дефинираме контролните пинови на моторот како константи и ги поставуваме како излези во функцијата за поставување. Ова е клучно бидејќи ги подготвува пиновите за контролирање на моторот. Функцијата loop е местото каде што се контролира однесувањето на моторот. Еве клучен дел од loop:
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);
}
Овој код го ротира моторот во една насока 2 секунди, потоа ја менува насоката за уште 2 секунди, и конечно го запира моторот 3 секунди. Оваа јамка ќе се повторува бесконечно, овозможувајќи континуирана контрола. За подетални сознанија и целосниот код, погледнете ја целосната програма што се вчитува под статијата.
Демонстрација / Што да очекувате
По успешното поврзување и поставување на кодот, треба да видите како моторот се ротира во една насока 2 секунди, ја менува насоката за уште 2 секунди, а потоа запира 3 секунди. Ако моторот не реагира како што се очекува, проверете ги вообичаените грешки како обратен поларитет или неточни пин конекции (во видеото на 08:00). Оваа поставка обезбедува едноставен начин за контрола на брзината и насоката на DC мотор користејќи ESP32 и L293D.
Временски ознаки на видеото
- 00:00 Почеток
- 2:01 Вовед во DC мотор
- 6:14 L293D мотор драјвер
- 9:17 Проектна документација
- 11:04 Објаснување на жици
- 14:41 Контрола на Arduino мотор со ESP32
- 17:10 Избор на Arduino порти за ESP32 плоча
- 18:52 Демонстрација на проектот
- 22:08 Контрола на брзина на мотор со ESP32
- 26:22 Демонстрација на контрола на брзина
- 28:01 Arduino код за контрола на брзина и насока
- 29:05 Демонстрација на брзина и насока
#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
Things you might need
-
AmazonPurchase L293D motor driver ICamzn.to
-
eBay
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Resources & references
-
DocumentationESP32 Tutorial 15/55 - SunFounder motor control documentationdocs.sunfounder.com
Files📁
Datasheet (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB