Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока

Компоненты и материалы

Arduino UNO × 1
Биполярный транзистор NPN (general purpose) × 2
Биполярный транзистор PNP (general purpose) × 2
Резистор 1 кОм × 2
Диод 1N4007 (высоковольтный, высокотоковый) × 4

Приложения и сервисы

О проекте

Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока
Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока
Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока
Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока

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

Возможности библиотеки

  1. Управление направлением вращения.
  2. Управление скоростью 0–100%.
  3. Мягкий пуск (soft start) за заданное время — плавный разгон от 0% до заданной скорости.
  4. Плавная остановка (smooth stop) за заданное время — плавное снижение скорости до 0%.
  5. Рывковое управление (jog control) в любом направлении — короткий импульс движения.
  6. Динамическое торможение (DC BRAKE) — мгновенная/аварийная остановка.

Ниже краткое описание всех функций, затем примеры использования. В конце приведена схема с H-мостом для управления двигателями.

Для использования скопируйте папку DC_Motor в директорию библиотек Arduino (например, C:\arduino-1.6.7\libraries).

Описание функций библиотеки

Базовые функции (без управления скоростью):

  1. DC_Motor(int pin1, int pin2) — объявление пинов Arduino для управления двигателем.
  2. DC_Motor(int pin1, int pin2, int speed_flag) — объявление ШИМ-пинов для управления скоростью.
  3. start_motor(int dir) — запуск вращения в заданном направлении (1 — вперед, 0 — назад).
  4. forward() — запуск вперед.
  5. reverse() — запуск назад.
  6. dc_break() — мгновенная остановка* (требует специальной схемы с тормозными резисторами и осторожности).
  7. stop_motor() — остановка двигателя.
  8. jogg_full_speed(int dir) — рывок на полной скорости 5 сек в заданном направлении.

Функции с управлением скоростью (требуют инициализации второй функцией с speed_flag=1 на ШИМ-пинах):

  1. set_speed(int speed) — установка скорости 0–100%.
  2. forward_with_set_speed() — запуск вперед с заданной скоростью.
  3. reverse_with_set_speed() — запуск назад с заданной скоростью.
  4. run_motor(int dir, int speed) — вращение в направлении dir со скоростью speed.
  5. jogg_set_speed(int dir, int speed) — рывок в направлении dir со скоростью speed.
  6. motor_speed_zero() — плавное снижение скорости до 0 (не используйте stop_motor(), он выдает цифровой сигнал).
  7. soft_start(int dir, int speed, int time_in_sec) — разгон от 0 до speed за time_in_sec секунд в направлении dir.
  8. smooth_stop(int time_in_sec) — плавная остановка от текущей скорости до 0 за time_in_sec секунд.

Примеры

1) Вращение вперед/назад на полной скорости (без управления скоростью)

/* this program will rotate DC motor forward for 5 sec
then stop for 2 sec and again rotate motor reverse for
5 sec, stop for 2 sec continuously
created by A M Bhatt (+91-9998476150), Gujarat, INDIA
on 12/10/2016
*/
#include 
DC_Motor motor(8, 12);
void setup() {}
void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) Вращение вперед/назад с заданной скоростью

/* this program will rotate DC motor forward for 5 sec
at 40% speed then stop for 2 sec and again rotate motor reverse for
5 sec at 80% speed continuously
created by A M Bhatt (+91-9998476150), Gujarat, INDIA
on 12/10/2016
*/
#include 
DC_Motor motor2(9, 10, 1);
void setup() {}
void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) Рывковое управление в обе стороны с/без скорости

/* this program applies jog to two different DC motors
* it applies jog to 1st motor in full speed in both direction
* and then provides jog to 2nd motor with 80% speed in reverse
* direction and 30% speed in forward direction
* created by Ashutosh M Bhatt(+91-9998476150), Gujarat (INDIA)
* on 22/10/2016
*/
#include 
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);
void setup() {}
void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) Мягкий пуск и плавная остановка

/* this program will give soft start to motor and increase its speed
from 0 to 90% in 10 sec in forward direction
then it gives smooth stop from 90% to 0 in 5 sec
again soft start from 0 to 50% in 6 sec in reverse direction
and finally smooth stop from 50% to 0 in 3 sec
created by A M Bhatt (+91-9998476150), Gujarat, INDIA
on 12/10/2016
*/
#include 
DC_Motor motor2(9, 10, 1);
void setup() {}
void loop() {
  motor2.soft_start(1, 90, 10);
  delay(3000);
  motor2.smooth_stop(5);
  motor2.soft_start(0, 50, 6);
  delay(3000);
  motor2.smooth_stop(3);
}

Код

Библиотека управления DC-мотором (C Header File)

Библиотека управляет скоростью и направлением всех типов двигателей постоянного тока. Предпросмотр недоступен (только скачивание).

Схемы

Высокопроизводительная библиотека Arduino для управления двигателями постоянного тока

Производственный процесс

  1. Создание аудио-эффектов, управляемых датчиками, с набором Satellite CCRMA
  2. Сборка домашней машины для написания домашних заданий (плоттер-писатель)
  3. Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
  4. Полнофункциональная библиотека для управления биполярным шаговым двигателем на Arduino
  5. Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
  6. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  7. Автономный линий-следующий робот на Arduino UNO
  8. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  9. Точное управление сервоприводом через MPU6050 (Arduino, SG90, MG996R)
  10. Набор для создания робота с умной внутренней навигацией на базе Arduino