Motor Driver Speed Control with an Arduino

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

Примечание. Это руководство предполагает наличие предварительных знаний об основных электронных принципах, аппаратном и программном обеспечении Arduino. Если вы впервые используете Arduino, мы предлагаем изучить основы одного из многих замечательных руководств для начинающих, доступных через поиск в Google и на YouTube. Имейте в виду, что у нас нет ресурсов для оказания технической поддержки для пользовательских приложений, и мы не будем отлаживать, редактировать, предоставлять код или схемы соединений за пределами этих общедоступных руководств.

Компоненты

  • Линейный привод 12 В
  • Блок питания 12 В
  • Ардуино
  • Драйвер двигателя
  • Потенциометр (опция)
  • Электрические провода для подключения и обжимного инструмента или паяльника

Проводка

Обзор оборудования и программного обеспечения

Двигатели постоянного тока в линейных приводах требуют высокого тока (до 5 А), если бы мы подключили линейный привод непосредственно к Arduino, такое высокое потребление тока разрушило бы цифровые выводы Arduino, поскольку они рассчитаны только на 40 мА каждый. Поэтому мы используем драйвер двигателя, который может принимать слаботочный ШИМ-сигнал (широтно-импульсная модуляция) с платы Arduino и выводить сильноточный ШИМ-сигнал на линейный привод.

Драйвер двигателя подключен к двум цифровым выводам ШИМ (выводы 10 и 11 на Arduino Uno). Установив один из этих выводов в НИЗКИЙ, а другой в ВЫСОКИЙ (см. Строки 18 и 19 в коде ниже), мы можем выдвинуть привод на максимальной скорости. Чтобы остановить привод, мы устанавливаем оба контакта в положение LOW (см. Строки 21 и 22 в коде ниже), а чтобы изменить направление движения, мы можем изменить порядок контактов HIGH и LOW (см. Строки 24 и 25 в коде ниже). Мы также можем регулировать скорость, изменяя переменную «Speed» на любое значение в диапазоне [0, 255]; см. строку 17 в коде ниже.

Код

https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a

Регулировка скорости с помощью потенциометра

В приведенном выше примере мы вручную установили скорость в строке 17 кода. Однако могут возникнуть ситуации, когда мы хотим изменять скорость привода во времени. Самый простой способ добиться этого — использовать потенциометр. А потенциометртрехконтактный переменный резистор, который может действовать как делитель напряжения. Вращая ручку потенциометра, выходное напряжение будет изменяться, и мы можем подключить его к аналоговому выводу на Arduino, чтобы установить переменную скорость.

Проводка

Обзор оборудования и программного обеспечения

Как упоминалось выше, потенциометр — это поворотное устройство, которое изменяет сопротивление при повороте ручки. При подключении двух внешних выводов потенциометра к 5V и GND, а средний вывод к аналоговому выводу Arduino, A0, создается делитель напряжения. При вращении ручки Arduino будет считывать аналоговые показания в диапазоне от [0, 1023].

Для значений в диапазоне [512, 1023] мы хотим, чтобы привод выдвигался, а для значений [0, 511] мы хотим, чтобы привод втягивался, этого можно достичь с помощью простого оператора if () / else в строках 22 и 28 в код ниже. Затем, используя функцию map () (строки 23 и 29 в приведенном ниже коде), мы можем преобразовать это в сигнал ШИМ, который будет управлять скоростью и направлением привода.

Код


https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856

Управление скоростью, направлением и остановкой двигателя с использованием NRF24L01 — совместимость с Arduino



в Ардуино


0
1,478 Просмотров

Это совместимое с Arduino устройство может управлять скоростью, направлением и остановкой одного двигателя постоянного тока с помощью радиочастотного пульта дистанционного управления.

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Подробнее

Проект основан на микроконтроллере Atmega328, микросхеме драйвера двигателя постоянного тока (H-мост) LM18201, радиочастотном модуле NRF24L01, стабилизаторе напряжения 5 В и других компонентах.

Эта плата может приводить в действие двигатель с напряжением до 24 В постоянного тока с током нагрузки до 3 А. Подробная информация о конфигурации выводов Arduino представлена ​​ниже, пользователь может написать свой собственный код и использовать это оборудование. Данный проект совместим с дистанционным управлением с одним джойстиком.

Микроконтроллер Atmega328 является сердцем проекта, чип LMD18201 управляет двигателем, стабилизатор LM317-ADJ обеспечивает микроконтроллер напряжением 5 В, стабилизатор LM1117 выдает 3,3 В для радиомодуля NRF24L01.

Примечание. Контроллер управляет двигателем постоянного тока с напряжением от 12 до 24 вольт. Однако чип LMD18201 может управлять двигателем с более высоким напряжением (до 48В). Поэтому при питания 48 В снимите перемычку VCC J2, подайте 48 В на разъем CN3 для двигателя и отдельно подайте 5 В на разъем CN1 для питания микроконтроллера. Для эффективного охлаждения LMD18201 рекомендуется использовать радиатор большого размера.

Блок питания 0…30 В / 3A

Набор для сборки регулируемого блока питания…

Подробнее

Контакты Arduino

  • LMD18201 : Arduino
  • PWM-Pin5 : Pin D5
  • Direction-Pin3 : Pin D6
  • Brake-Pin4 : Pin 7

 

  • NRF24L01 : Arduino
  • CE : Pin D9
  • CSN : Pin D10
  • MOSI : Pin D11
  • MISO : Pin D12
  • CSK : Pin D13

Скетч

Скетч для Arduino доступен для скачивания в конце статьи. Код «TESTED CODE RX» предназначен для Atmega328, а код «TESTED CODE TX» предназначен для передатчика.

Тестирование устройства

Подключите двигатель постоянного тока от 12 В до 24 В к MG1 (разъем двигателя), подключите источник питания от 12 В до 24 В к CN3. Установите перемычку J2 и перемычку J1. Включите питание, включите передатчик NRF24L01 с джойстиком, двигатель должен работать с джойстиком.

Скачать файлы проекта (75,8 KiB, скачано: 119)

Портативный паяльник TS80P

TS80P- это обновленная версия паяльника TS80 Smart, работающий от USB. ..

Подробнее

Двигатель 2021-09-09

С тегами: Двигатель

Использование MATLAB и Arduino для управления двигателем — видео

В этой демонстрации мы увидим, как управлять двигателями с помощью пакета поддержки MATLAB для Arduino. Что касается программного обеспечения, у меня есть MATLAB и пакет поддержки MATLAB для Arduino, предварительно установленные на моей машине. Если у вас не установлен пакет поддержки, вы можете перейти на вкладку надстроек и нажать «Получить пакеты поддержки оборудования», чтобы загрузить и установить пакет поддержки. Что касается оборудования, у меня есть Arduino Due, Motor Party Pack для Arduino, аккумулятор постоянного тока и кабель USB Micro-b.

Чтобы следовать этой демонстрации и выполнить соединения, которые у меня есть, подключите штырек Servo 1 на Motor Shield к серводвигателю. И один контакт к двигателю постоянного тока, а контакты M3 и M4 к шаговому двигателю. Важно отметить, что аккумуляторная батарея постоянного тока необходима для управления двигателем постоянного тока и шаговым двигателем. Подключите аккумуляторную батарею постоянного тока к контакту питания. Конец Micro-b кабеля должен быть подключен к порту программирования на Due, а конец USB — к ПК, на котором установлен MATLAB. Для получения более подробной инструкции о том, как выполнить подключение, перейдите по этой ссылке.

Теперь, когда мы сделали все необходимые соединения, давайте перейдем к MATLAB и посмотрим, как мы можем управлять двигателями. Для этого я написал скрипт, который собираюсь показать. Функция Arduino в этом скрипте устанавливает соединение с Due, который отключился от COM-порта, упомянутого в первом вводе. Эта функция также предоставляет MATLAB инструкции по библиотекам, которые необходимо включить в серверный код Arduino. Когда я выполняю это в командном окне MATLAB, MATLAB создает объект, представляющий физический объект, к которому он подключен.

После этого дополнительная функция может работать с объектом, созданным для подключения к Motor Shield. Выполнение команды в окне команд и запуск скрипта MATLAB имеют тот же эффект. Так что в оставшейся части этого видео я буду использовать кнопку для перехода к следующему разделу кода после выполнения текущего раздела.

MATLAB создает новый объект в рабочей области каждый раз, когда он подключается к новому физическому объекту. В данном случае Моторный Щит. Здесь, в этом разделе кода, мы должны обратить внимание на функции сервопривода и правильного положения. Функция сервопривода позволяет вам обмениваться данными из MATLAB с серводвигателем, который подключен к номеру порта, указанному во втором входе. Функция правильного положения позволяет вам дать команду серводвигателю переместиться в указанное положение. Здесь я использую 4 цикла для перемещения двигателя от 0 до 180 градусов пять раз назад и вперед. Я прикрепил здесь изображение колеса к серводвигателю, чтобы показать его в действии.

В следующем разделе Cord функция «Шаговый двигатель» помогает нам установить соединение с шаговым двигателем, подключенным к порту 2. Третий вход этой функции определяет количество шагов, которые шаговый двигатель должен делать за каждый оборот. Функция Move дает команду шаговому двигателю переместиться на количество шагов, указанное во втором входе. Давайте посмотрим, сможет ли MATLAB заставить балерину танцевать под свои мелодии.

Для связи с последним типом двигателя, поставляемым вместе с пакетом Motor Party Pack от MATLAB, можно использовать функцию двигателя постоянного тока. Комментарий остановки и запуска делает именно то, что следует из названия. Помните, что эти функции можно использовать только после указания скорости двигателя. Скорость двигателя должна быть указана в процентах от максимальной скорости двигателя. Гипнотизирующий диск здесь показывает работу двигателя постоянного тока.

Итак, мы увидели, как управлять двигателями с помощью MATLAB и пакета поддержки для Arduino.

Сопутствующие товары
  • MATLAB
Узнать больше

Загрузить пакет поддержки MATLAB для Arduino

Основы электроники Arduino: управление двигателем

Эта статья была переведена на английский язык и первоначально опубликована для deviceplus. jp.

В Device Plus было представлено множество приложений для Arduino и примеры деталей, но знание основ особенно важно, когда вы что-то создаете. Вот почему в сегодняшней статье мы рассмотрим ключевые основы Arduino. Обучать нас этому сегодня будет эксперт и автор книги «Введение в основы Arduino Electronic Crafts!» Казухиро Фукуда.

В этой статье я хотел бы рассказать о том, как можно управлять двигателями с большими электрическими токами.

Двигатели используются для запуска самых разных машин, таких как дроны и автомобили. Подключение двигателей к источнику питания позволяет электронным компонентам генерировать вращательное движение. Присоединение шин или пропеллеров к двигателю также увеличивает вращение и движение операций.

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

Двигатель вращается в противоположном направлении при изменении направления подключенного источника питания. Также возможно изменить скорость вращения, регулируя количество протекающего тока. В результате это дает возможность вращаться с высокой скоростью, когда двигатель движется, или медленно останавливаться в желаемом положении путем постепенного замедления при остановке. Даже если снаряд попадет в вентиляторы, двигатель может двигаться назад и двигаться в других направлениях. При этом сегодня мы рассмотрим способы управления двигателем на Arduino.

[Содержание]

・ Работая двигатель требует драйвера

・ Соединение двигателя с Arduino

. двигатель

Для работы двигателя требуется драйвер

На цифровом выходе Arduino вы можете переключаться между высоким и низким уровнем для управления световыми вспышками светодиода. Используя эту функцию, вы сможете подавать электроэнергию на двигатель. Однако, даже если вы на самом деле подключите двигатель напрямую к Arduino, он не будет работать.

Для того, чтобы двигатель двигался, требуется большое количество электрического тока. Например, для сегодняшнего [RE-280RA] вам потребуется более 1 А электрического тока, чтобы он двигался. Однако цифровой выходной разъем Arduino может протекать только до 20 мА. Протекание любого электрического тока через это потенциально может повредить Arduino. Для этого нам нужно подключить мотор к выходному разъему Arduino и управлять им.

Здесь будет использоваться「Драйвер двигателя」. Драйвер двигателя — это электрический компонент, используемый для управления двигателем. Подготовьте цепь, которая соединяет двигатель с источником питания для работы двигателя, и вставьте драйвер двигателя внутрь. Драйвер двигателя может подключать и отключать цепь управления двигателем с помощью внешнего сигнала, а также управлять вращением и остановкой двигателя. Так как в управляющий сигнал почти не поступает ток, то даже при подключении Arduino управлять мотором можно будет без проблем.

В зависимости от привода двигателя направление вращения может переключаться управляющим сигналом. Оснащенный двумя разъемами управления, когда для одной стороны установлено значение «Высокий», он будет вращаться нормально, а для другой стороны, для которого установлено значение «Высокий», будет вращаться в обратном направлении. Это позволяет осуществлять управление вперед, назад и остановку.

Подключение мотора к Arduino

Теперь попробуем управлять мотором с Arduino. Для этой части будет использоваться следующая электроника, поэтому, пожалуйста, убедитесь, что вы подготовили ее.

Двигатель постоянного тока

Это корпус двигателя. Эти типы двигателей, в которых используются сухие батареи, называются «двигателями постоянного тока». В этой статье мы будем использовать「RE-280RA」. Аккумулятор RE-280RA может поддерживать электрическое напряжение до 4,5 В.

Драйвер двигателя

Мы будем использовать это для управления двигателем. Следуя сигналам от Arduino, можно управлять подачей электроэнергии на двигатель и направлением вращения. Мы будем использовать「BA6956AN」из ROHM. От разъема с вырезами (слева на картинке) они считаются как разъем 1 и разъем 2.

Конденсатор 0,1 мкФ

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

Резистор 10 кОм (1/4 Вт)

Чтобы предотвратить поломку электронных компонентов из-за внезапного протекания большого электрического тока, ток можно подавить с помощью резистора. На этот раз, чтобы указать напряжение, подаваемое на двигатель, разъем Arduino 3.3V подключен к драйверу двигателя. Обычно ток почти не течет, но в некоторых случаях может течь большой ток, поэтому подключите резистор 10 кОм, чтобы предотвратить протекание больших токов. На резисторе 10 кОм напечатано «Коричневый Черный Оранжевый Золотой» вместе с цветовым кодом.

Батарея

Защелка батареи

Батареи используются в качестве источника питания для вращения двигателя. Здесь будет использоваться 006P, который может подавать напряжение до 9 В. Он также использует батарейные защелки для подключения батарей к макетной плате.

Электрические зажимы Линии перемычек

Для двигателя необходима проводка для разъемов до макетной платы. Обычно проводник припаивается к разъему. Однако, если вы используете перемычку с электрическим зажимом, вы можете просто подключить его, вставив зажим в разъем двигателя, что устраняет необходимость пайки.

Подготовив каждый из компонентов, соедините их, как показано ниже.

Подсоедините двигатель к разъемам 2 и 4 привода двигателя, зажав разъем электрическим зажимом. Имейте в виду, что во время работы двигателя может возникать шум, который может повлиять на другие устройства. Таким образом, подключение конденсаторов к обоим разъемам двигателя уменьшит уровень шума.

Двигатель может питаться от отдельно подготовленного аккумулятора. Следовательно, питание можно подавать от аккумулятора, подключив аккумулятор к пятому и третьему разъемам драйвера двигателя.

Кроме того, двигатель, использованный на этот раз, имеет диапазон питания до 4,5 В. По этой причине напряжение может быть слишком высоким с батареей 9 В, поэтому существует вероятность повреждения двигателя. Поэтому укажите максимальное выходное напряжение, подаваемое на двигатель, на разъеме 1 драйвера двигателя. На этот раз мы сможем подать на двигатель до 3,3 В. Подключите блок питания Arduino 3,3 В к разъему 1 и укажите максимальное напряжение. Вращением двигателя можно управлять с помощью седьмого и девятого разъемов драйвера двигателя. Это означает, что подключение к разъемам 5 и 6 Arduino позволяет вам управлять двигателем через выход Arduino.

Управление двигателем по программе

После подключения попробуем управлять двигателем с помощью кода программирования. Вращением двигателя можно управлять с помощью выходных сигналов разъемов 5 и 6 Arduino. Вращением, остановкой и направлением вращения можно управлять, изменяя высокий или низкий уровень на этих двух разъемах. В случае с BA6956AN им можно управлять следующим образом.

При нормальном вращении выход разъема 5 устанавливается на высокий уровень, а выход разъема 6 — на низкий. Запись приведенного ниже кода программирования в Arduino должна запустить нормальное вращение двигателей.

В десятой строке выход должен быть установлен на высокий уровень, а на разъеме 6 в шестой строке выход должен быть установлен на низкий уровень.

Если вы хотите, чтобы двигатель вращался в противоположном направлении, выход разъема 5 должен быть установлен на низкий уровень, а выход разъема 6 — на высокий уровень.

Программный код должен выглядеть следующим образом:

В десятой строке выход разъема 5 должен быть установлен на низкий уровень, а в одиннадцатой строке разъем 6 должен быть установлен на высокий уровень. Если вы хотите остановить двигатель, оба выхода для разъемов 5 и 6 должны быть установлены на низкий уровень.

Программный код должен выглядеть следующим образом:

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

Изменение скорости вращения двигателя

В прошлый раз мы смогли изменить яркость с помощью метода вывода светодиодов, называемого ШИМ. Даже на двигателе скорость вращения можно изменить, управляя двигателем с помощью ШИМ. Переключаясь между высоким и низким за короткий промежуток времени, двигатель попеременно переключается между вращением и остановкой, при этом скорость вращения фактически ниже, чем обычно. Чем дольше High time, тем быстрее будет скорость вращения, и наоборот.

Для двигателя выведите разъем управления в том направлении, в котором вы хотите вращать ШИМ, и всегда держите другой разъем на низком уровне.