Управление электродвигателем постоянного тока с помощью MATLAB и Arduino

В этой статье мы рассмотрим управление электродвигателем постоянного тока (DC Motor) с помощью математической системы MATLAB и платы Arduino. Если вы начинающий в системе MATLAB, то рекомендуем сначала прочитать статью о мигании светодиода с помощью MATLAB. Также можно посмотреть проекты об автоматизации дома с помощью MATLAB и Arduino и управлении сервомотором с помощью MATLAB и Arduino.

Внешний вид проекта управления электродвигателем постоянного тока с помощью MATLAB и Arduino

Создание графического интерфейса в MATLAB для управления электродвигателем постоянного тока

После установки пакета аппаратной поддержки MATLAB для работы с Arduino (MATLAB Support Package for Arduino Hardware — описан в этой статье) нам необходимо создать графический интерфейс (GUI — Graphical User Interface) для управления двигателем постоянного тока. Чтобы запустить графический интерфейс в MATLAB напечатайте в командной строке:

Откроется всплывающее окно, в нем выберите новый blank GUI как показано на следующем рисунке:

Запуск редактора графического интерфейса в MATLAB

После этого поместите на рабочее поле три кнопки (pushbuttons) для вращения по часовой стрелке (Clockwise rotation), вращения против часовой стрелки (Anti-clockwise rotation) и остановки двигателя (STOP) как показано на следующем рисунке.

Размещение 3-х кнопок на рабочем редактора графического интерфейса

Чтобы изменить размер или форму кнопки просто кликните на ней и у вас появится эта возможность. Если вы сделаете двойной клик на кнопке вы можете изменить цвет, подпись и метку кнопки.

Окно изменения настроек кнопки

Мы кастомизировали эти три кнопки как показано на следующем рисунке.

Внешний вид кастомизированных нами кнопок

Вы можете кастомизировать эти кнопки по своему желанию. Когда вы сохраните созданный графический интерфейс в окне редактора MATLAB для него сформируется код. Вы всегда можете изменить этот код по своему желанию. Далее в этот сформированный код мы добавим команды для управления электродвигателем постоянного тока. Готовые файлы графического интерфейса и m-файл вы можете скачать по этой ссылке (клик правой кнопкой мыши и выбирайте «сохранить объект как»).

Объяснение кода MATLAB для управления двигателем постоянного тока с помощью Arduino

Скопируйте следующие строки и вставьте их в программу начиная со строки №74 чтобы убедиться в том что плата Arduino взаимодействует с MATLAB каждый раз когда вы запускаете на выполнение m-файл.

Добавление кода в MATLAB для взаимодействия с платой Arduino

Когда вы прокрутите вниз код, полученный из окна графического интерфейса (GUI), вы увидите, что в нем созданы заготовки функций для всех трех кнопок, которые вы создали в графическом интерфейсе. Теперь вам нужно наполнить тело этих функций соответствующими фрагментами кода чтобы при их нажатии выполнялись те задачи, которые вам необходимы.

В тело функции вращения двигателя по часовой стрелке скопируйте и вставьте следующие приведенные строчки кода – в них на контакт 6 подается напряжение высокого уровня (HIGH), а на контакт 5 – напряжение низкого уровня (LOW) чтобы двигатель вращался по часовой стрелке.

Добавление кода в MATLAB для вращения двигателя по часовой стрелке

Соответственно, в тело вращения двигателя против часовой стрелки скопируйте и вставьте следующие ниже приведенные строчки кода. В них на контакт 5 подается напряжение высокого уровня (HIGH), а на контакт 6 – напряжение низкого уровня (LOW) чтобы двигатель вращался против часовой стрелки.

Добавление кода в MATLAB для вращения двигателя против часовой стрелки

И, наконец, в функцию остановки двигателя (STOP) также добавьте следующие ниже приведенные строчки кода. В них на контакты 5 и 6 подается напряжение низкого уровня (LOW) чтобы остановить вращение двигателя.

Добавление кода в MATLAB для остановки двигателя

Необходимые компоненты

  1. Плата Arduino Uno.
  2. Установленная на компьютер математическая система MATLAB (предпочтительно версии R2016a или выше).
  3. Электродвигатель постоянного тока (DC Motor).
  4. Драйвер мотора L293D

Схема проекта

Схема проекта для управления электродвигателем постоянного тока с помощью MATLAB и Arduino представлена на следующем рисунке.

Схема проекта для управления электродвигателем постоянного тока с помощью MATLAB и ArduinoВнешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Тестирование работы проекта

После того как аппаратная часть проекта будет готова запустите на выполнение .m файл.

Запуск на выполнение .m файла в Matlab

Системе MATLAB может потребоваться несколько секунд на запуск этого файла, не нажимайте никакую кнопку на графическом интерфейсе до тех пор пока горит индикация BUSY (система занята) в левом нижнем углу экрана.

Ждем пока Matlab выполняет код файла

Когда все готово, нажмите на кнопку для управления вращением двигателя по часовой или против часовой стрелки. Когда вы будете нажимать на кнопку вращения двигателя по часовой стрелке, то ток будет протекать от контакта 6 к контакту 5 и двигатель будет вращаться по часовой стрелке, а при нажатии кнопки вращения двигателя против часовой стрелки ток будет протекать от контакта 5 к контакту 6 и двигатель будет вращаться против часовой стрелки. При нажатии на кнопку STOP вращение двигателя будет останавливаться. Аналогичный способ управления вы можете применить и для управления сервомотором с помощью MATLAB и Arduino соответствующим образом изменив код функций, вызываемых при нажатии кнопок. Более подробно процесс функционирования рассмотренного проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
20 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *