0
КОРЗИНА
0 ТОВАРА
 Мотор редуктор RS550-15000, 12V для Arduino ардуино
 Мотор редуктор RS550-15000, 12V для Arduino ардуино
 Мотор редуктор RS550-15000, 12V для Arduino ардуино

Мотор редуктор RS550-15000, 12V

Мотор RS550 с понижающим редуктором на 12 В — тянет тележку, ворота или лебёдку. В описании схема с драйвером BTS7960 и готовые скетчи. Подробнее...
Модификация
В наличии: 28 шт. Артикул: # 1223
939 ₽ 1341 ₽
Возможен безналичный расчёт для юридических лиц при оформлении заказа
Сообщить о поставке на e-mail:
{{ status }}
  • В наличии и готов к отправке!
  • Доставка товаров по России, Белоруссии, Казахстану
  • Возможен безналичный расчёт для юридических лиц при оформлении заказа
Количество:
Перейти в корзину и оформить заказ.
MAX
Telegram
Обсудить вопросы приобретения, не технические!
*Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
Офлайн
Описание товара
Подробное описание товара

Общие сведения

Мотор-редуктор RS550-15000, 12 В — силовой привод из тех, что стоят в детских электромобилях: коллекторный мотор RS550 и понижающий редуктор в одном пластиковом корпусе. Мотор сам по себе крутится очень быстро и слабо, редуктор превращает эти обороты в медленное и сильное вращение выходного вала.

Берут его туда, где нужна тяга, а не точность: тележки и большие колёсные роботы, лебёдки, приводы ворот и шлагбаумов, мешалки, кормушки, форточки теплиц, самодельная техника. Питание — 12 В постоянного тока: блок питания, автомобильный или гелевый аккумулятор.

И сразу честно, чтобы потом не было обид: своей электроники внутри нет. Нет энкодера и датчика оборотов, нет концевиков, нет защиты от перегрузки, нет тормоза. Мотор щёточный, редуктор пластиковый. Всё, что он умеет — крутиться в ту сторону, куда подали напряжение, и с той скоростью, которую вы задали.

К выводам Arduino такой мотор не подключают никогда, и маленькие драйверы ему не годятся: Motor Shield рассчитан на 2 А, L293D Motor Shield — и того меньше. Наш мотор возьмёт больше в первый же миг после включения и спалит их. Нужен силовой драйвер — драйвер мотора BTS7960 на 43 А, ему и посвящён раздел «Подключение».

Характеристики

  • Мотор: коллекторный RS550, питание 12 В постоянного тока
  • Обороты мотора: 15 000 об/мин на холостом ходу — это обороты до редуктора
  • Редуктор: понижающий, в пластиковом корпусе; на выходном валу получаются сотни оборотов в минуту, а не тысячи
  • Выход редуктора: шлицевая втулка под ось детского электромобиля
  • Крепление: два уха с отверстиями на корпусе редуктора
  • Выводы мотора: два плоских лепестка, провода не припаяны
  • Вес: 490 г
  • Энкодера, датчиков и защиты от перегрузки нет

Точное передаточное число производитель не сообщает. Если для вашей задачи важна скорость на валу, измерьте её сами: поставьте метку на выходной втулке, дайте небольшой ШИМ и посчитайте обороты за 10 секунд, потом умножьте на шесть. Нужен вариант побыстрее — рядом, в списке «Модификация», стоит мотор на 23 000 об/мин с тем же редуктором.

Подключение

Почему нужен силовой драйвер

Ток у такого мотора совсем не «миллиамперы, как у датчика». На холостом ходу он берёт единицы ампер, под нагрузкой заметно больше, а в момент пуска и в упоре (вал держат, а напряжение подано) счёт идёт на десятки ампер: стоящий ротор для источника питания почти то же самое, что короткое замыкание. Отсюда три правила:

  • драйвер выбирают по пусковому току, а не по рабочему;
  • силовая часть идёт мимо Arduino — плата только командует;
  • провода и клеммы в силовой части должны быть толстыми.

драйвер мотора BTS7960 на 43 А как раз для этого: 43 А кратковременно и до 10 А в долгую (в долгую ограничивает клеммник на плате), питание мотора от 5,5 до 27,5 В, управляющие входы понимают и 3,3 В, и 5 В логику. Наши 12 В укладываются в эти рамки с запасом.

Что приготовить

Мотор-редуктор RS550 и драйвер BTS7960: схема подключения к Arduino

Собираем, по шагам

  1. Логика. 5V Arduino → Vcc драйвера, GND Arduino → GND драйвера. Драйвер потребляет от платы считанные миллиамперы, это безопасно.
  2. Скорость. Вывод 9 → входы R_EN и L_EN драйвера, соединённые вместе. Вывод обязательно с ШИМ.
  3. Направление. Вывод 8 → R_PWM, вывод 7 → L_PWM. Тут ШИМ не нужен, годятся любые цифровые выводы.
  4. Мотор. Клеммы M+ и M− драйвера → лепестки мотора. Поменяете местами — вал будет крутиться в другую сторону.
  5. Питание мотора. Клеммы S+ и S− → плюс и минус блока питания. В плюс ставится предохранитель.

Минус логики и минус питания мотора на плате драйвера общие, поэтому отдельный провод от Arduino к S− тянуть не нужно — и не нужно именно потому, что по такому проводу пошёл бы ток мотора. А вот GND Arduino с GND драйвера соединить обязательно: без общего минуса драйвер не понимает сигналы.

Питание логики драйвер берёт от Arduino, а мотор — только от своего источника. Запитать мотор от USB, от вывода 5V платы или от «того же блока питания, что и Arduino, лишь бы провод дотянулся» — верный способ спалить плату и получить перезагрузки на каждом пуске.

Как этим управлять

Схема в три провода, под неё написаны оба примера:

  • вперёд: L_PWM = 0, R_PWM = 1, на EN — ШИМ (больше ШИМ — выше скорость);
  • назад: L_PWM = 1, R_PWM = 0, на EN — ШИМ;
  • свободный выбег: EN = 0. Мотор электрически отключён и катится по инерции;
  • торможение: L_PWM и R_PWM в одинаковом состоянии (оба 0 или оба 1), на EN — ШИМ. Чем больше ШИМ, тем сильнее тормозит.

Есть ещё схемы в два и в четыре провода — они расписаны в карточке драйвера.

Какой нужен блок питания

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

  • Самое простое лекарство — плавный пуск, он есть в обоих примерах: ШИМ поднимается за полторы секунды, и броска нет.
  • Блок питания берите с запасом: 12 В / 200 Вт — это 16 А, 12 В / 300 Вт — 25 А.
  • Поставьте электролитический конденсатор прямо на клеммы S+ и S−: он сгладит бросок. Хорошо бы 470–1000 мкФ на 25 В и выше; из наших подойдут конденсаторы 220 мкФ × 35 В, поставленные парой параллельно. Полярность не перепутайте.
  • Аккумулятор 12 В к броскам тока относится спокойнее любого блока питания — для подвижной техники это и проще, и честнее.

Провода, клеммы, предохранитель

  • Силовая часть — провод 16AWG (1,27 мм²) и толще, коротким путём. Сигнальные три провода к Arduino могут быть любыми тонкими.
  • На мотор провода нужно припаять к лепесткам или надеть клеммы-«мама»: в комплекте проводов нет.
  • Предохранитель 20–30 А ставится в плюс от источника. Он бережёт проводку и источник, а не драйвер.
  • Плюс и минус питания не перепутайте: защиты от переполюсовки у драйвера нет.
  • Винты клеммника затягивайте как следует. Слабый контакт при 10 А греется и плавит колодку — это самая частая беда силовых схем.
  • Провода к мотору скрутите между собой парой: меньше помех соседней электронике.

Что беречь

  • Редуктор пластиковый. Держать вал застопоренным под напряжением нельзя: зубья срезает, а ток в этот момент максимальный. Если привод может упереться — ставьте концевик или ограничивайте время работы в программе.
  • Реверс только через остановку. Смена направления на ходу — это мгновенный двойной ток и удар по зубьям. В обоих примерах перед сменой стоит пауза.
  • Момент на выходе большой. Корпус редуктора крепите жёстко, иначе привод провернёт сам себя вместе с проводами.
  • Мотор греется. При долгой работе под нагрузкой давайте ему передышки или обдув; корпус редуктора пластиковый и перегрева не любит.
  • Гудение на ШИМ. Стандартные 490 Гц у Arduino мотор озвучивает хорошо слышимым гулом. В примерах частота поднята примерно до 3,9 кГц одной строкой: TCCR1B = (TCCR1B & 0b11111000) | 0b00000010; — это выводы 9 и 10. Выше 25 кГц драйверу нельзя, а выводы 5 и 6 трогать не стоит: на их таймере работают millis() и delay().
  • Щётки — расходник. Это не бесколлекторный мотор: у него есть свой ресурс, и чем чаще упоры и реверсы, тем он короче.

Примеры

Туда-сюда с плавным разгоном

Мотор плавно разгоняется вперёд, работает, плавно тормозит, ждёт остановки и едет назад. Выводы назначены в первых строках, скорость и время — следом.

const uint8_t  PIN_EN   = 9;      // № вывода Arduino к входам драйвера L_EN и R_EN (соединены вместе). Обязательно вывод с ШИМ - это скорость
const uint8_t  PIN_LPWM = 7;      // № вывода Arduino к входу драйвера L_PWM. Любой цифровой, ШИМ тут не нужен
const uint8_t  PIN_RPWM = 8;      // № вывода Arduino к входу драйвера R_PWM. Любой цифровой, ШИМ тут не нужен

const uint8_t  SPEED    = 200;    // Рабочая скорость: 0 (стоп) ... 255 (полная). Начните с небольшой
const uint16_t RAMP_MS  = 1500;   // За сколько миллисекунд разгоняемся и за столько же тормозим
const uint16_t WORK_MS  = 3000;   // Сколько крутим на рабочей скорости
const uint16_t PAUSE_MS = 1000;   // Пауза перед сменой направления: вал должен остановиться

void setup(){
  pinMode(PIN_EN,   OUTPUT);
  pinMode(PIN_LPWM, OUTPUT);
  pinMode(PIN_RPWM, OUTPUT);
  analogWrite(PIN_EN, 0);                        // Мотор свободен: пока не подали ШИМ на EN, он никуда не поедет
  TCCR1B = (TCCR1B & 0b11111000) | 0b00000010;   // Частота ШИМ на выводах 9 и 10 -> около 3,9 кГц вместо 0,5 кГц: мотор не гудит
}                                                // Таймер 0 (выводы 5 и 6) не трогаем - на нём живут millis() и delay()

void motorDirection(bool forward){               // Направление задаётся ДО подачи скорости
  digitalWrite(PIN_LPWM, forward ? LOW  : HIGH);
  digitalWrite(PIN_RPWM, forward ? HIGH : LOW );
}

void motorRamp(uint8_t from, uint8_t to, uint16_t ms){   // Плавно меняем скорость: пусковой ток не бьёт по блоку питания
  int16_t steps = (from < to) ? (to - from) : (from - to);
  if(steps == 0){ analogWrite(PIN_EN, to); return; }
  uint16_t pause = ms / steps;
  for(int16_t i = 0; i <= steps; i++){
    analogWrite(PIN_EN, (from < to) ? (from + i) : (from - i));
    delay(pause);
  }
}

void loop(){
  motorDirection(true);                 // Вперёд
  motorRamp(0, SPEED, RAMP_MS);         // Плавно разгоняемся
  delay(WORK_MS);                       // Крутим
  motorRamp(SPEED, 0, RAMP_MS);         // Плавно тормозим
  delay(PAUSE_MS);                      // Ждём полной остановки вала. Реверс на ходу удваивает ток и ломает редуктор

  motorDirection(false);                // Назад
  motorRamp(0, SPEED, RAMP_MS);
  delay(WORK_MS);
  motorRamp(SPEED, 0, RAMP_MS);
  delay(PAUSE_MS);
}

Скорость и направление ручкой

Ручка потенциометра в середине — мотор стоит, вправо — едет вперёд, влево — назад, и чем дальше повёрнута, тем быстрее. Вокруг середины сделана мёртвая зона, направление переключается только на остановленном моторе, а скорость меняется плавно.

const uint8_t  PIN_EN   = 9;      // № вывода Arduino к входам драйвера L_EN и R_EN (соединены вместе). Скорость, нужен ШИМ
const uint8_t  PIN_LPWM = 7;      // № вывода Arduino к входу драйвера L_PWM. Направление
const uint8_t  PIN_RPWM = 8;      // № вывода Arduino к входу драйвера R_PWM. Направление
const uint8_t  PIN_POT  = A0;     // № вывода Arduino к среднему выводу потенциометра. Крайние - на 5V и GND

const uint8_t  SPEED_MAX = 255;   // Ограничение скорости: поставьте меньше, если мотор рвёт передачу
const uint16_t DEAD      = 60;    // Мёртвая зона вокруг середины ручки, в единицах АЦП. Меньше 30 не ставьте: ручка "дрожит"
const uint8_t  STEP_MS   = 5;     // Шаг разгона. 255 шагов по 5 мс = примерно 1,3 с от нуля до полной

int16_t speedNow = 0;             // Текущая скорость: минус - назад, плюс - вперёд
bool    dirNow   = true;          // Куда сейчас настроен драйвер

void setDirection(bool forward){
  dirNow = forward;
  digitalWrite(PIN_LPWM, forward ? LOW  : HIGH);
  digitalWrite(PIN_RPWM, forward ? HIGH : LOW );
}

void setup(){
  pinMode(PIN_EN,   OUTPUT);
  pinMode(PIN_LPWM, OUTPUT);
  pinMode(PIN_RPWM, OUTPUT);
  analogWrite(PIN_EN, 0);                        // Мотор свободен
  setDirection(true);
  TCCR1B = (TCCR1B & 0b11111000) | 0b00000010;   // ШИМ на выводах 9 и 10 -> около 3,9 кГц: мотор не свистит
  Serial.begin(9600);
}

int16_t readTarget(){                            // Ручка в середине - стоп, вправо - вперёд, влево - назад
  int16_t pot  = analogRead(PIN_POT) - 512;      // Середина ручки - это ноль
  int16_t away = pot > 0 ? pot : -pot;           // Насколько ручка ушла от середины
  if(away < (int16_t)DEAD){ return 0; }          // В мёртвой зоне мотор стоит
  int16_t v = map(away - (int16_t)DEAD, 0, 511 - (int16_t)DEAD, 0, SPEED_MAX);
  if(v > SPEED_MAX){ v = SPEED_MAX; }
  return (pot > 0) ? v : -v;
}

void loop(){
  int16_t target = readTarget();

  if(speedNow < target){ speedNow++; }           // К цели идём по одному шагу: это и есть плавный пуск
  else if(speedNow > target){ speedNow--; }

  if(speedNow == 0){                             // Направление переключаем только на остановленном моторе
    bool want = (target >= 0);
    if(want != dirNow){ setDirection(want); }
  }

  analogWrite(PIN_EN, speedNow > 0 ? speedNow : -speedNow);

  static uint32_t tPrint = 0;                    // Раз в полсекунды показываем, что происходит
  if(millis() - tPrint > 500){
    tPrint = millis();
    Serial.print(F("ручка: "));   Serial.print(target);
    Serial.print(F("   мотор: ")); Serial.print(speedNow);
    Serial.println(dirNow ? F("  (вперёд)") : F("  (назад)"));
  }
  delay(STEP_MS);
}

Комплектация

  • 1x Мотор-редуктор RS550-15000, 12 В;
Товары
Первой необходимости и другие вещи, которые могут пригодиться!
Скоро в продаже
Драйвер мотора на 43А BTS7960: Управлять одним коллекторным двигателем рассчитанным на напряжение от 5,5 до 27,5 В постоянного тока до 43 А. Подробнее
730₽
В наличии
Силиконовый провод 16AWG (1 м / Красный): Многожильный мягкий красный провод сечением 1,27 мм² и длиной 1 м Подробнее
131₽
В наличии
Силиконовый провод 16AWG (1 м / Чёрный): Многожильный мягкий чёрный провод сечением 1,27 мм² и длиной 1 м Подробнее
131₽
В наличии осталось 4 шт.
Блок питания AC-DC (12 В / 200 Вт): Модуль для преобразования переменного напряжения AC 220 вольт в постоянное DC 12 вольта с током до 16,7 А Подробнее
2400₽
В наличии
312₽
В наличии
Тройной винтовой клеммник, 3шт.: Набор из 3 клемников. Подробнее
28,33 ₽
за штуку · упаковка 3 шт. — 85 ₽
В наличии
252₽
Скоро в продаже
612₽
Скоро в продаже
Соленоидный клапан 2P025-08 (ВР 1/4”, 12 В, NC): Электромагнитный клапан с питанием 12 В для управление потоком жидкости или газа Подробнее
580₽
В наличии
491₽
В наличии осталось 1 шт.
Конструктор ПВХ Белый «Рейки»: Набор мелких конструктивных деталей из решетчатого конструктора Подробнее
240₽
В наличии
Муфта фланцевая на вал мотора ⌀3 мм: Втулка для соединения вала мотора диаметром 3 мм с различными механизмами Подробнее
351₽
В наличии осталось 5 шт.
Конструктор ПВХ Белый «Крепления LCD 2004»: Набора деталей из решетчатого конструктора для крепления текстовых дисплеев 2004 Подробнее
240₽
В наличии
Соленоид JF-0837B (15 Н, 12 В): Электромеханический толкатель c усилием 15 Н и номинальным питанием 12 В Подробнее
495₽
Или перейти в корзину и оформить заказ.
Гарантии и возврат Используя сайт Вы соглашаетесь с условями Библиотеки
Есть вопрос?