Содержание



Драйвер моторов TB6612

Описание

Драйвер моторов представляет из себя плату с микросхемой, позволяющей управлять моторами.

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

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

Модуль имеет два управляющих канала, каждый из которых позволяет управлять нагрузкой до 1,2 А. Два канала можно объединить в один и управлять одним мощным мотором до 2,4 А.

Микросхема имеет встроенную защиту по температуре, перенапряжению и короткому замыканию.

Технические характеристики:

Физические размеры:

Преимущества драйвера:

Ресурсы для загрузки:

Смотрите также

Модуль драйвера

На рисунке ниже представлен модуль драйвера и описание его компонентов:

  1. Выводы управления драйвером и питание микросхемы драйвера
  2. Микросхема драйвера TB6612
  3. Клеммы подключения питания моторов
  4. Клеммы подключения мотора А
  5. Клеммы подключения мотора Б

Помните, что выводы PWMA и PWMB должны быть подключены к контактам ШИМ.

Библиотека для работы с драйвером

Описание работы с библиотекой

Для более удобной и простой работы с драйвером моторов воспользуйтесь Библиотекой для Arduino. Данная библиотека содержит все основные функции и методы, необходимы для вращения моторов.

Создание объекта драйвера

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

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

TB6612SE driver(pinPwmA, pinAin1, pinAin2);

Параметры:

Подключены два мотора

TB6612SE driver(pinPwmA, pinAin1, pinAin2, pinPwmB, pinBin1, pinBin2);

Параметры:

Команды (методы) драйвера

Движение (вращение) вперёд

Вращает один или оба мотора вперёд (вращение вала против часовой стрелки).

forward(speed, ms)

Параметры:

Движение (вращение) назад

Вращает один или оба мотора назад (вращение вала по часовой стрелке).

back(speed, ms)

Параметры:

Остановка (тормоз) мотора

brake(ms)

Параметры:

Поворот вправо

Имеет смысл только при подключении двух моторов. Вращает правый мотор (мотор А) назад, а левый мотор (мотор B) вперёд.

right(speed, ms);

Параметры:

Поворот влево

Имеет смысл только при подключении двух моторов. Вращает левый мотор (мотор B) назад, а правый мотор (мотор A) вперёд.

left(speed, ms);

Параметры:

Примеры подключения и использования

Пример №1. Вентилятор

Соберём простейший вентилятор, который запускается при нажатии кнопка и вращает мотор пока кнопка нажата.

Шаг 1. Соберите компоненты для урока.

Шаг 2. Соберите элементы в соответствии со схемой ниже.

Шаг 3. Загрузите скетч на контроллер.

#include <TB6612SE.h> //библиотека для работы с драйвером

const int BUT_BLACK = 12; //вывод подключения кнопки

TB6612SE motor(5, 2, 4); //подключение драйвера, выводы PWMA, AIN1, AIN2

void setup() {
}

void loop() {
  //Если кнопка нажата
  if (digitalRead(BUT_BLACK)) {
    motor.forward(25); //включить мотор со скоростью 25
  }  else { //иначе
    motor.brake(); //выключить мотор
  }
}

Шаг 4. Охлаждайтесь!

Подключите питание к контроллеру (или оставьте его подключенным к компьютеру). Нажимая на кнопку мотор вращается с заданной скоростью. Добавьте на вал мотора любой пропеллер и получите полноценный вентилятор!

Пример №2. Два мотора.

Теперь продемонстрируем работу двух моторов, подключенных к драйверу. Управлять вращением моторов будем с помощью кнопок. Чёрная отвечает за вращение вперёд, белая за вращение назад.

Шаг 1. Соберите компоненты для урока.

Шаг 2. Соберите элементы в соответствии со схемой ниже.

Шаг 3. Загрузите скетч на контроллер.

//полное описание возможностей библиотеки на сайте http://know.smartelements.ru/
#include <TB6612SE.h> //библиотека для работы с драйвером моторов

const int BUT_BLACK = 12; //вывод подключения чёрной кнопки
const int BUT_WHITE = 11; //вывод подключения белой кнопки

TB6612SE motor(5, 2, 4, 6, 7, 8); //создание объекта драйвера с номерами выводов (PWMA, AIN1, AIN2, PWMB, BIN1, BIN2)

void setup() {
}

void loop() {
  //Если сработала чёрная кнопка
  if (digitalRead(BUT_BLACK)) {
    motor.forward(25, 1000); //запустить моторы вперёд со скоростью 25 на 1 секунду
  }  else if (digitalRead(BUT_WHITE)) { //если сработала белая кнопка
    motor.back(35, 1000); //запустить моторы назад со скоростью 35 на 1 секунду
  }
}

Шаг 4. Результат

Нажимайте на кнопки управления моторами и наблюдайте изменения во вращении. По нажатии белой кнопки моторы вращаются с более медленной скоростью вперёд, в течении 1 секунды. При нажатии на чёрную кнопку, моторы вращаются назад с более быстрой скоростью, в течении одной секунды.