Код для поиска

ESP32 Урок 16/55 - Мини-водяной насос с использованием ESP32 и L293D | Обучающий набор ESP32 IoT от SunFounder

ESP32 Урок 16/55 - Мини-водяной насос с использованием ESP32 и L293D | Обучающий набор ESP32 IoT от SunFounder

В этом руководстве мы научимся управлять водяным насосом на 5 В с помощью микроконтроллера ESP32 и драйвера двигателя L293D. Этот проект — отличное введение в использование драйверов двигателей с микроконтроллерами, позволяющее управлять устройствами, которым требуется больший ток, чем микроконтроллер может обеспечить напрямую. К концу этого руководства у вас будет работающий водяной насос, который можно включать и выключать программно.

ESP32 — это мощный микроконтроллер со встроенными возможностями Wi-Fi и Bluetooth, что делает его подходящим для приложений Интернета вещей (IoT). Драйвер двигателя L293D используется для управления водяным насосом, обеспечивая более высокий ток, необходимый для работы двигателя. Эта схема позволяет нам запускать и останавливать насос, гарантируя, что ESP32 останется защищенным от чрезмерного потребления тока.

Объяснение аппаратного обеспечения

В этом проекте мы используем микроконтроллер ESP32, известный своей универсальностью и возможностями подключения. Он может работать как Arduino, предлагая дополнительные функции, такие как Wi-Fi и Bluetooth. Драйвер двигателя L293D действует как интерфейс между ESP32 и водяным насосом, позволяя управлять работой насоса без перегрузки микроконтроллера.

L293D имеет два H-моста, что позволяет управлять направлением и скоростью двигателя. Каждый H-мост может управлять двигателем в любом направлении, что делает его подходящим для приложений, где требуется управление двигателем. В данном случае нам нужно только обеспечить работу насоса в одном направлении.

Данные из технического описания

ПроизводительTexas Instruments
Номер деталиL293D
Логическое/IO напряжение4,5 - 36 В
Напряжение питания4,5 - 36 В
Выходной ток (на канал)600 мА
Пиковый ток (на канал)1,2 А
Рекомендуемая частота ШИМ1 кГц - 10 кГц
Пороговые уровни входной логики2 В (высокий), 0,8 В (низкий)
Падение напряжения / RDS(on) / насыщение1,5 В (макс.)
Тепловые пределы+150 °C (макс.)
КорпусDIP-16
Примечания / вариантыВстроенные диоды для защиты от индуктивной нагрузки

  • Обеспечьте надлежащий отвод тепла для непрерывной работы.
  • Используйте развязывающие конденсаторы для стабильного питания.
  • Будьте осторожны с входным напряжением, чтобы избежать повреждений.
  • При необходимости используйте ШИМ для управления скоростью.
  • Проверяйте соединения, чтобы избежать коротких замыканий, особенно с индуктивными нагрузками.

Инструкции по подключению

ESP32-16-motor-pump_wiring

Чтобы подключить ESP32 и драйвер двигателя L293D к водяному насосу, внимательно выполните следующие шаги. Сначала подключите источник питания к L293D. Подключите вывод 1 (вывод разрешения для двигателя A) и вывод 8 (Vcc2) к положительному источнику напряжения (5 В). Подключите вывод 4 (земля) к земле вашей схемы.

Затем подключите ESP32 к L293D. Подключите GPIO-вывод 13 от ESP32 к выводу 2 (вход 1) на L293D, а GPIO-вывод 14 — к выводу 7 (вход 2). Наконец, подключите водяной насос к выводу 3 (выход 1) и выводу 6 (выход 2) L293D. Убедитесь, что все заземления соединены вместе для правильной работы. Если вы будете следовать этим инструкциям, ваше подключение будет простым и функциональным.

Примеры кода и пояснения

В коде мы определяем подключения выводов для управления двигателем. Идентификаторы motor1A и motor2A соответствуют GPIO-выводам 13 и 14 на ESP32 соответственно. Эти выводы будут управлять водяным насосом через драйвер L293D.

#define motor1A 13
#define motor2A 14

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

В функции setup() мы инициализируем выводы управления двигателем как выходы. Это гарантирует, что мы можем отправлять сигналы на драйвер L293D для управления насосом. Затем функция loop() управляет работой насоса.

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // подождать секунду
}

В функции loop() мы устанавливаем motor1A в HIGH и motor2A в LOW, чтобы запустить насос. После короткой задержки мы останавливаем насос, устанавливая оба вывода в LOW. Этот цикл повторяется бесконечно, позволяя насосу работать в течение короткого периода, а затем останавливаться.

Демонстрация / Что ожидать

После завершения подключения и загрузки кода вы должны увидеть, как водяной насос включается и выключается циклически. Насос будет работать в течение короткого времени, затем останавливаться, создавая паттерн вкл/выкл. Убедитесь, что ваш источник питания соответствует требованиям насоса, чтобы избежать проблем (в видео на 09:30).

Временные метки видео

  • 00:00 Начало
  • 1:50 Введение в проект
  • 3:17 Зачем нужен L293D с Arduino?
  • 5:47 Объяснение подключения водяного насоса
  • 10:01 Объяснение кода Arduino
  • 12:21 Выбор COM-порта для ESP32 в Arduino IDE
  • 14:03 Демонстрация работы насоса
  • 15:25 Демонстрация с водой

Изображения

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
Язык: 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
}

Ресурсы и ссылки

Файлы📁

Технический паспорт (pdf)