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

Управление двигателем постоянного тока с использованием драйвера мотора L293D и широтно-импульсной модуляции Arduino

Управление двигателем постоянного тока с использованием драйвера мотора L293D и широтно-импульсной модуляции Arduino

Этот проект демонстрирует, как управлять скоростью и направлением постоянного двигателя с помощью схемы драйвера L293D и возможностей широтно-импульсной модуляции (ШИМ) Arduino. Эта конфигурация позволяет точно контролировать мотор, что делает ее подходящей для различных приложений.

Вот несколько идей для проектов с использованием этой конфигурации:

  • Робототехника:Контролируйте движение колес небольшого робота.
  • Автоматизированные устройства:Создайте автоматические шторы, жалюзи или небольшой конвейер.
  • Управление вентилятором:Регулируйте скорость вентилятора охлаждения в зависимости от показаний температуры.
  • Солнечные трекеры:Разместите небольшие солнечные панели так, чтобы они следовали за солнцем в течение дня.

Аппаратное обеспечение/Компоненты

  • Arduino Uno (или совместимая плата)
  • L293D драйвер двигателей
  • Двигатель постоянного тока (рассчитан на пределы напряжения и тока L293D, до 600 мА)
  • 9В блок питания (для мотора)
  • Соединительные провода
  • Макетная плата (рекомендуется)

Схема подключения

Чип L293D выполняет функцию интерфейса между Arduino и DC-двигателем. Он позволяет Arduino контролировать как скорость, так и направление вращения мотора. Чип требует отдельного источника питания для мотора, так как Arduino не может обеспечить достаточный ток для большинства моторов.

%%ПРОВОДКА%%

Объяснение кода

Код Arduino контролирует драйвер L293D, который, в свою очередь, управляет DC-двигателем. Код использует ШИМ для изменения скорости двигателя и цифровые сигналы для переключения направления.

Вот ключевые настраиваемые параметры в коде:


#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)

const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)

ТонL293D()функция управляет направлением и скоростью мотора. 'L' устанавливает мотор на вращение по часовой стрелке, 'R' - против часовой стрелки.spdпараметр управляет скоростью (0-255) иenвключает (1) или выключает (0) мотор. (в видео на 09:24)


void L293D(char dir,int spd, int en)
{
  if(dir =='L') // Clockwise rotation
  {
    // ...
    analogWrite(P1A,spd); // Set speed using PWM
    digitalWrite(P2A,LOW); 
  }else{ // Counter-clockwise rotation
    // ...
    digitalWrite(P1A,LOW);
    analogWrite(P2A,spd); // Set speed using PWM
  }
}

Живой проект/демонстрация

Видео демонстрирует проект в действии, показывая скорость и направление вращения мотора. Показания осциллографа визуализируют сигналы ШИМ, управляющие мотором. (в видео на 11:07)

Главы

  • Введение в управление двигателем постоянного тока с L293D
  • [00:30] Демонстрация и объяснение проекта
  • [01:12] Обзор драйвера двигателя L293D
  • [02:08] Технические характеристики двигателей постоянного тока
  • [02:30] Объяснение технического паспорта L293D
  • [04:40] Объяснение проводки и демонстрация
  • [07:05] Объяснение кода Arduino
  • [11:07] Демонстрация проекта и показания осциллографа
144-Arduino source for L293D motor driver (loop)
Язык: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
145-Source for a simple L293D motor controller using Arduino (CW, CCW, and STOP)
Язык: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Файлы📁

Нет доступных файлов.