В этом руководстве мы научимся управлять водяным насосом на 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.
В функции setup() мы инициализируем выводы управления двигателем как выходы. Это гарантирует, что мы можем отправлять сигналы на драйвер L293D для управления насосом. Затем функция loop() управляет работой насоса.
В функции loop() мы устанавливаем motor1A в HIGH и motor2A в LOW, чтобы запустить насос. После короткой задержки мы останавливаем насос, устанавливая оба вывода в LOW. Этот цикл повторяется бесконечно, позволяя насосу работать в течение короткого периода, а затем останавливаться.
Демонстрация / Что ожидать
После завершения подключения и загрузки кода вы должны увидеть, как водяной насос включается и выключается циклически. Насос будет работать в течение короткого времени, затем останавливаться, создавая паттерн вкл/выкл. Убедитесь, что ваш источник питания соответствует требованиям насоса, чтобы избежать проблем (в видео на 09:30).
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
}