Как подключить мотор к ардуино без драйвера

Обновлено: 06.07.2024

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

По ключевым словам "l298n arduino" поисковики много чего выдают, а то, что у Вас сдвоенный шилд, принципиального значения не имеет.

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

Посмотрел схемы подключения на 2-х моторные мотор шилды l298n, но схема подключения отличается от моего шилда. Подскажите пожалуйста, на моей плате имеются три контакта (Vin, Gnd, +5v) на какие из них подавать питание? Также рядом с контактами Vin и Gnd находится джампер off/on, для чего он нужен и в каком положении должен находится?

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

Спасибо за информацию! Статья помогла, разобрался.

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

Запитал L298N от 7.2 v Ni-Cd аккумулятора, после 5-10 минут непрерывной езды L298N сильно греется и соответственно значительно падает производительность моторов, они практически перестают крутиться. Спустя определенное время, после того, как схема остывает, производительность моторов восстанавливается. Подскажите плиз что обычно делают в таких случаях и какие есть достойные альтернативы L298N?

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

Схему подключения, скетч управления - в студию. Мой ХШ отдан на СТО на замену масла.

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

Схему подключения, скетч управления - в студию. Мой ХШ отдан на СТО на замену масла.

Заранее извиняюсь, хорошую схему нарисовать все равно не смогу, по этому опишу словами.

Драйвер моторов - Arduino Nano (для управления скоростью моторов я не использую ШИМ, в целях экономии пинов на ардуине, по этому все ШИМ контакты на драйвере L298N соединены с VCC джамперами, собственно джамперы оставлены на том же месте где они стояли изначально когда драйвер приехал из китая. Моторы подключены соответственно к выходам Motor1+,Motor1-. Motor4+,Motor4-):

GND - 7.2v батарея (-)

VCC - 7.2v батарея (+)

Arduino Nano - 3dr telemetry:

GND(4) - 7.2v батарея(-)

Vin(30) - 7.2v батарея(+)

Скетч управления:



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

А где "вторая половина" описания схемы? В смысле какие моторы и как включены ..

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

А где "вторая половина" описания схемы? В смысле какие моторы и как включены ..

Мотор драйвер - мотор:

Motor1(+) - плюсовая клемма моторчика 1

Motor1(-) - минусовая клемма моторчика 1

Motor2(+) - плюсовая клемма моторчика 2

Motor2(-) - минусовая клемма моторчика 2

Motor3(+) - плюсовая клемма моторчика 3

Motor3(-) - минусовая клемма моторчика 3

Motor4(+) - плюсовая клемма моторчика 4

Motor4(-) - минусовая клемма моторчика 4


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

Замечательно. Только у ваших моторов нет параметров "скока они жрут" на вашем питании. Проверяйте потребление моторов под нагрузкой. Нагрузку можете создать пальцами удерживая колеса. Если жрут больше 2А, то не удивительно что шилд греется. По виду этих моторов ничего сказать нельзя, надо мерить. Их бывает самых разных - просто вагон.

Кстати, блокировочные конденсаторы параллельно клеммам мотора - стоят? Если нет, то ставьте керамику на примерно 100нФ..

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

Да и программу желательно так выполнить

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

Замечательно. Только у ваших моторов нет параметров "скока они жрут" на вашем питании. Проверяйте потребление моторов под нагрузкой. Нагрузку можете создать пальцами удерживая колеса. Если жрут больше 2А, то не удивительно что шилд греется. По виду этих моторов ничего сказать нельзя, надо мерить. Их бывает самых разных - просто вагон.

Кстати, блокировочные конденсаторы параллельно клеммам мотора - стоят? Если нет, то ставьте керамику на примерно 100нФ..

Блокировочных конденсаторов не стоит. Можно поподробней на счёт применения этих кондеров, для чего они нужны? Сколько их нужно на один мотор? Параллельно клеммам это от плюсовой клеммы к минусовой, а затем на него питание подавать нужно?

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

без нагрузки и под нагрузкой:



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

Жрут действительно немного, от такого L298N не греется от слова "совсем". Мои даже со снятыми радиаторами от такого не греются.

Блокировочные конденсаторы да, ставят обязательно керамечиские от одной щетки мотора до другой. Их же ещё зовут "искрогасящими". Вполне достаточно одного конденсатора на мотор. Емкость 50-200нф, по идее лучше больше чем меньше, но не критично. В свое время ставил от 10нф до 1.0мкф .. после 50-100нф особой разницы нет, кроме резонансного значения емкости (индивидуально от мотора к мотору). Резонансный кондер у меня сожрал шетки мотора примерно за 10 часов работы .. не знаю, может мне так повезло, случай - единичный.

Напряжение пробоя надо смотреть не хуже на 3*U питания мотора. Я предпочитаю ставить (есть запас ещё) старую СССР-овскую керамику, зная что она вся на 50в - хватает точно. Еще надо посмотреть, есть ли блокирующие диоды на вашем шилде. Посмотрите сколько их стоит на одиночном L298N и есть ли такие на вашем. Дело в том, что в момент смены полярности или при ШИМ управлении мотором (регулировка "скорости", на самом деле мощности) с катушек мотора можете лететь нехилая ЭДС в генераторном режиме .. но, судя по вашей программе Вы не используете управление скоростью мотора через ШИМ (подают на вход EN этого драйвера).

Можно ставить блокирующие кондеры в кол-ве 3шт: между щетками + с каждой щетки на корпус мотора. Видел и такое, но чем это лучше - не знаю. По идее, якорь изолирован от корпуса мотора.

Да и ещё. Управление направлением вращения. Если Вы часто дергаете ноги направлений INx, то старайтесь вперед управлять той ногой, которую ВЫключаете, делать небольшую задержку в 5-10микросекунд и только потом Включать требуемую ногу в программе. Подбирая задержку можно полностью избежать сквозных токов через драйвер при переключении направлений, когда первый транзистор ещё не успел закрыться физически, а второй уже начал открываться. В этом разе ток течет через драйвер мимо двигла, поэтому его и зовут "сквозняком". Часто именно он греет шилд.

Подключение мотора постоянного тока к Ардуино (коллекторного двигателя) требуется при сборке машинки или катера на микроконтроллере Arduino. Рассмотрим различные варианты подключения двигателей постоянного тока: напрямую к плате, через биполярный транзистор, а также с использованием модуля L298N. В обзоре размещены схемы подключения и коды программ для всех перечисленных вариантов.

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

Коллекторный моторчик может быть рассчитан на разное напряжения питания. Если двигатель работает от 3-5 Вольт, то можно моторчик подключать напрямую к плате Ардуино. Моторы для машинки с блютуз управлением, которые идут в комплекте с редукторами и колесами рассчитаны уже на 6 Вольт и более, поэтому ими следует управлять через полевой (биполярный) транзистор или через драйвер L298N.

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

Как подключить моторчик к Arduino

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • мотор постоянного тока (Motor DC);
  • транзистор полевой/биполярный;
  • драйвер двигателей L298N;
  • провода «папа-папа», «папа-мама».

Перед выбором способа управления двигателем от Arduino Uno r3, уточните на какое напряжение рассчитан ваш моторчик. Если питание требуется более 5 Вольт, то следует использовать транзистор или драйвер. Распиновка транзисторов может отличаться от приведенного примера (следует уточнить распиновку для своего типа). Драйвер L298N позволит не только включать мотор, но и изменять направление вращения.

Скетч. Подключение мотора через транзистор

Подключение мотора через транзистор к Ардуино потребуется, если двигатель никак не хочет включаться от платы напрямую, то следует использовать порт 5 Вольт на микроконтроллере или внешний источник питания. Транзистор будет играть роль ключа, замыкая/размыкая электрическую цепь. Сам транзистор управляется цифровым портом. Соберите схему, как на картинке и загрузите программу.

Пояснения к коду:

  1. при необходимости можно подключить два мотора FA-130 к Ардуино;
  2. в зависимости от характеристик, двигатель подключается к 3,3 или 5 Вольтам.

Скетч. Подключение мотора через драйвер

Подключение мотора к Ардуино через драйвер L298N или Motor Shield L293D позволит менять направление вращения ротора. Но для использования данных модулей потребуется установить соответствующие библиотеки для Ардуино. В примере мы использовали схему подключения двигателя с помощью модуля L298N. Соберите схему, как на картинке ниже и загрузите следующий скетч с использованием.

Для работы с большими шаговиками (типа Nema 17) нужно использовать специализированные драйверы, ниже вы найдёте описания и схемы подключения для A4988, DRV8825 и TMC2208, драйверы такого формата подключаются и работают практически одинаково, т.к. разработаны для CNC шилдов и взаимозаменяемы. У этих драйверов нужно настроить ток при помощи крутилки на плате. Это можно сделать “на глаз”, заставив мотор вращаться и регулируя крутилку. Мотор должен вращаться, но не вибрировать как перфоратор и сильно не нагреваться. Лучше настроить ток по опорному напряжению Vref, у каждого драйвера оно считается по своей формуле (см. картинки ниже). Берём ток своего мотора из описания, подставляем в формулу вместо current, считаем, и накручиваем полученное напряжение крутилкой. Для измерения опорного напряжения нужно подключить щупы вольтметра к самой крутилке и пину GND.

Главное преимущество дорогущих драйверов TMC – отсутствие шума/свиста/вибраций при работе, так как драйвер своими силами интерполирует сигнал до микрошага 1/256.





БИБЛИОТЕКА

GyverStepper v2.1.6

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

  • Поддержка 4х пинового (шаг и полушаг) и STEP-DIR драйверов
  • Автоматическое отключение питания при достижении цели
  • Режимы работы:
    • Вращение с заданной скоростью. Плавный разгон и торможение с ускорением
    • Следование к позиции с ускорением и ограничением скорости
    • Следование к позиции с заданной скоростью (без ускорения)

    Совместимость

    Совместима со всеми Arduino платформами (используются Arduino-функции)

    УСТАНОВКА

    ДОКУМЕНТАЦИЯ

    Аааа почему так много всего?!
    Библиотека содержит набор инструментов для разных сценариев работы с шаговыми моторами

    • StepperCore.h [класс Stepper]: ядро всех остальных классов, умеет быстро щёлкать пинами (AVR) и делать один шаг для настроенного типа драйвера. Поддерживает 4 фазы шаг/полушаг, а также step-dir драйверы.
    • GyverStepper.h [класс GStepper]: основная тяжёлая библиотека, много настроек. Движение одного мотора с ускорением к заданной позиции или вращение с заданной скоростью. Не очень оптимальная работа в прерывании таймера.
    • GyverStepper2.h [класс GStepper2]: новая облегченная версия GyverStepper, практически полностью с ней совместима. Более оптимальный целочисленный гибридный алгоритм движения с ускорением, лёгкий вес. Оптимизировано для работы в прерывании таймера.
    • GyverPlanner.h [класс GPlanner]: многоосевой планировщик траектории, движение с ускорением (2 порядок). Остановка в каждой точке. Оптимальная работа в прерывании таймера.
    • GyverPlanner2.h [класс GPlanner2]: многоосевой планировщик траектории, движение с ускорением (2 порядок). Планирование скорости на маршруте, оптимальное движение по точкам. Оптимальная работа в прерывании таймера.

    Инициализация

    Время шага [NEW!]

    • A4988 - 1 мкс
    • DRV8825 - 4 мкс
    • TB6500 - 1 мкс

    Медленные скорости (new!)

    В версии 1.6 скорость во всех режимах может быть задана в виде десятичной дроби (тип float ), то есть меньше одного шага в секунду. Минимальная скорость ограничена разрешением используемой в библиотеке micros() и составляет 1 шаг в час. Для удобного задания медленных скоростей появились макросы degPerMinute() и degPerHour() , которые нужно использовать совместно с setSpeedDeg() и setMaxSpeedDeg() :

    Тик и тайминги

    Самый главный метод библиотеки - tick() , при активной работе мотора его нужно вызывать как можно чаще. Тик имеет встроенный таймер на micros() и работает по нему. Если в коде программы присутствуют задержки на большее время, чем нужно мотору на текущей скорости, скорость мотора будет ограничена этой задержкой. Узнать минимальный период вызова tick() (при установленной скорости) можно при помощи getMinPeriod() , который вернёт его в микросекундах. Также можно напрямую опрашивать переменную stepTime , в которой хранится текущий период. Эти инструменты можно использовать для организации работы шаговика в прерывании таймера (см. пример timerISR). Также .tick() возвращает true , если мотор движется к цели или крутится по KEEP_SPEED и false , если мотор остановлен или приехал. Метод getState() возвращает текущее состояние мотора аналогично tick() .

    Смена направления

    Можно глобально (для всех режимов) сменить направление вращения мотора при помощи reverse(true) .

    Режимы работы

    • FOLLOW_POS - режим плавного движения к заданной позиции с ускорением и ограничением скорости.
    • KEEP_SPEED - режим вращения с заданной скоростью (знак скорости задаёт направление вращения).

    Режим FOLLOW_POS

    • setTarget(pos) - установка абсолютной целевой позиции в шагах, принимает положительные и отрицательные значения (тип данных long ).
    • setTarget(pos, type) - то же самое, но можно указать тип позиции type - абсолютная ABSOLUTE или относительная RELATIVE .
    • setTargetDeg(pos) - установка абсолютной целевой позиции в градусах, принимает положительные и отрицательные дробные значения (тип данных float ).
    • setTargetDeg(pos, type) - то же самое, но можно указать тип позиции type - абсолютная ABSOLUTE или относительная RELATIVE .
    • getTarget() - возвращает тип данных long
    • getTargetDeg() - возвращает тип данных float
    • setMaxSpeed(speed) - установка максимальной скорости по модулю в шагах/секунду, тип данных float . По умолчанию 300.
    • setMaxSpeedDeg(speed) - установка максимальной скорости по модулю в градусах/секунду, тип данных float .
    • setAcceleration(accel) - установка ускорения по модулю в шагах/сек/сек, тип данных float . По умолчанию 300.
    • setAccelerationDeg(accel) - установка ускорения по модулю в градусах/сек/сек, тип данных float .
    • setCurrent(long pos);
    • setCurrentDeg(float pos);
    • getCurrent();
    • getCurrentDeg();

    Режим KEEP_SPEED

    • setSpeed(speed) - в шагах/секунду, положительные и отрицательные целые значения, тип данных float .
    • setSpeedDeg(speed) - в градусах/секунду, положительные и отрицательные дробные значения, тип данных float .
    • setSpeed(speed, smooth) - в шагах/секунду, положительные и отрицательные целые значения, тип данных float . smooth - SMOOTH или NO_SMOOTH
    • setSpeedDeg(speed, smooth) - в градусах/секунду, положительные и отрицательные дробные значения, тип данных float . smooth - SMOOTH или NO_SMOOTH
    • getSpeed() - возвращает тип данных float
    • getSpeedDeg() - возвращает тип данных float

    Алгоритм планировщика скорости

    Остановка и сброс

    • stop() - плавная остановка с заданным в setAcceleration() ускорением от текущего положения мотора. Можно вызвать в режиме KEEP_SPEED для плавной остановки вращения! Смотри пример accelDeccelButton
    • brake() - резкая остановка мотора. Если активен autoPower(true) - мотор будет отключен.
    • reset() - brake() + сброс текущей позиции в 0 . Удобно для остановки и калибровки начала координат по концевику (смотри пример endSwitch).

    Управление питанием

    Питанием мотора/драйвера можно управлять вручную при помощи enable() и disable() . Данные методы включают и выключают пин Enable (если он указан при инициализации), а также снимают и возвращают питание на управляющие выводы (для 4х пинового драйвера). Поведением пина EN (если он указан при инициализации) можно управлять при помощи invertEn(true) и invertEn(false) . По умолчанию установлено enable(false) переводит пин en в низкое состояние. В библиотеке реализовано автоматическое управление питанием, включается при помощи autoPower(true) , по умолчанию оно отключено. В режиме FOLLOW_POS при достижении целевой позиции мотор будет автоматически отключен (будет вызван disable() ). При дальнейшей установке новой позиции мотор будет автоматически включен (будет вызван enable() ).

    GStepper2, GPlanner и GPlanner2 являются нововведениями в библиотеке и работают чуть иначе, больше ориентированы на движение от точки к точке.

    Изменение скорости/ускорения

    Скорость и ускорение можно задать в любое время, они будут применены после остановки мотора в конечной точке!

    Тикер

    Движение мотора происходит внутри tick() , который нужно вызывать как можно чаще, например в loop() (или yield() , если в коде есть delay() ) tick() имеет встроенный таймер на micros() и крутит мотор с нужной скоростью.

    Также есть не имеющий таймера tickManual() , который делает шаг, считает период и проверяет, не доехал ли мотор до цели. Его нужно вызывать с периодом, который можно получить из getPeriod() в микросекундах.

    getPeriod() получает новое значение периода после очередного вызова tickManual() . Конструкция для работы в прерывании таймера может выглядеть так:

    Здесь setPeriod() и stopTimer() - функции смены периода и остановки аппаратного таймера, реализация функций зависит от применяемой платформы и/или библиотек. Пока мотор крутится - таймер перезапускается на новый период, как только мотор приехал - останавливаем таймер.

    Режим постоянной скорости

    Для запуска режима вращения с постоянной скоростью достаточно вызвать setSpeed(скорость) / setSpeedDeg(скорость) . Скорость может быть отрицательной. Остановить мотор можно при помощи brake() . В данной реализации скорость не меняется плавно, то есть включается сразу на заданную и тормозится в 0 при остановке. В реальном применении этого достаточно для движения к концевику (см. пример homing для всех трёх классов).

    Режим движения к позиции

    При помощи setMaxSpeed() / setMaxSpeedDeg() задаётся максимальная скорость, которой может достигнуть мотор (суммарная квадратичная скорость по осям для GPlanner) во время движения к следующей точке. Эта настройка не имеет отношения к режиму вращения.

    При помощи setAcceleration() можно задать ускорение в шагах/секунду^2, с которым будет меняться скорость. Если поставить ускорение 0 - мотор будет двигаться без ускорения, т.е. сразу с максимальной скоростью.

    Для старта движения к позиции достаточно вызвать setTarget(позиция) / setTargetDeg(позиция) (кроме GPlanner2). После выполнения этой функции можно запросить у getPeriod() время до следующего тика и запустить таймер, если мотор работает в прерывании.

    Если мотор находится в активном режиме движения к позиции и доезжает до цели - функция ready() однократно вернёт true . В примерах к библиотеке по этому условию "загружается" следующая точка траектории.

    Во время движения к позиции можно остановиться:

    • brake() - резко остановит мотор
    • stop() - плавно остановит мотор с заданным ускорением
    • pause() - мотор доедет до заданной позиции, но ready() не вернёт true

    Для возобновления движения можно вызвать resume() , траектория мотора будет пересчитана и он двинется к последней заданной в setTarget() позиции.

    Текущую позицию мотора (моторов, для GPlanner) можно прочитать как getCurrent() , установить через setCurrent() , а также сбросить в 0 через reset() .

    GPlanner2 работает чуть иначе, так как содержит буфер траектории. Подробнее о нём читайте ниже

    Инициализация

    Такая же как в GStepper

    Список функций

    "Слежение" не реализовано!

    В обычной GyverStepper мотор ведёт себя как инертный объект, позволяя менять конечную точку траектории прямо во время движения: профиль скорости будет пересчитан и мотор без резких движений изменит траекторию. В GStepper2 это не работает! При изменении цели во время движения мотор будет остановлен и только после этого отправлен на новую точку.

    Пример

    Многоосевой планировщик траекторий для шаговых моторов и создания станка с ЧПУ

    • ОСТАНОВКА В КАЖДОЙ ТОЧКЕ. БУФЕР НА ОДНУ СЛЕДУЮЩУЮ ПОЗИЦИЮ
    • Макс. скорость: 37000 шаг/с на полной, 14000 шаг/с на разгоне
    • Трапецеидальный профиль скорости (планировщик 2-го порядка)
    • Настройка скорости и ускорения
    • Любое количество осей. Будут двигаться синхронно к заданным целям
    • Быстрая целочисленная модель планирования траектории и скорости
    • Режим постоянного вращения для одной оси (для движения к концевику например)
    • Тормоз/плавная остановка/пауза на траектории планировщика
    • Оптимизировано для работы по прерыванию таймера
    • Быстрый контроль пинов шаговика для Arduino AVR

    Как работает

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

    Инициализация

    Использование

    Пример

    Многоосевой планировщик траекторий для шаговых моторов и создания станка с ЧПУ

    • ПЛАНИРОВАНИЕ СКОРОСТИ НА МАРШРУТЕ. НАСТРАИВАЕМЫЙ БУФЕР
    • Макс. скорость: 37000 шаг/с на полной, 14000 шаг/с на разгоне
    • Трапецеидальный профиль скорости (планировщик 2-го порядка)
    • Настройка скорости и ускорения
    • Любое количество осей. Будут двигаться синхронно к заданным целям
    • Быстрая целочисленная модель планирования траектории и скорости
    • Режим постоянного вращения для одной оси (для движения к концевику например)
    • Тормоз/плавная остановка/пауза на траектории планировщика
    • Оптимизировано для работы по прерыванию таймера
    • Быстрый контроль пинов шаговика для Arduino AVR

    Как работает

    Планировщик управляет любым количеством моторов, вращая их к указанной позиции. В данной версии реализован буфер траектории, который можно наполнять точками, пока available() возвращает true. addTarget() принимает:

    • Массив точек указанного при инициализации размера
    • Флаг остановки. Если передать 1 - планировщик остановит мотор в этой точке и будет ждать дальнейшей команды resume()
    • Тип точки: ABSOLUTE (абсолютная координата) или RELATIVE (относительно предыдущей точки)

    Когда планировщик приезжает до точки остановки - он встаёт на паузу (например для включения выключения инструмента), после совершения нужных действий вызываем resume() и он продолжает движение.
    В отличие от предыдущего GPlanner, в GPlanner2 реализован просчёт траектории в буфере и планирование скорости для всех точек, что позволяет системе двигаться быстрее и не тормозить в каждой точке.

    Шаговый двигатель от CD-ROM - запуск на Arduino без драйвера

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

    Cesium137 аватар

    Добрый вечер ребята. У меня такой вопрос. Как правильно подключить и запустить на ардуино шаговый двигатель от дисковода без драйвера и как урправлять реверсом? Заранее всем откликнувшимся большое спасибо за помощь.

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

    Jeka_M аватар

    Там нет шагового двигателя. Там три других двигателя: один обычный коллекторный моторчик, который открывает/закрывает каретку. И два трёхфазных бесколлекторных двигателя: один крутит диск (побольше), другой двигает лазерную головку (поменьше).

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

    Хмм . А я видел привод каретки и от коллекторного и от шагового движков.

    шаговый был обычный биполярный. Подключение много раз обсуждалось

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

    Cesium137 аватар

    Меня значит интересует тот который двигает лазерную головку ( у него 4 контакта). Как его можно подключить без драйвера к ардуино и сделать реверс программно??

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

    Jeka_M аватар

    Похоже я ошибся и двигатель, который двигает головку всё-таки биполярный шаговый.

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

    Cesium137 аватар

    Спасибо за ролики я первый смотрел уже, там через драйвер. Можно ли обойтись без драйвера?

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

    Cesium137 аватар

    А как можно реализовать через ардуино реверс обычного постоянного мотора (например от лотка дисковода)? Мотор собираюсь запускать через транзистор подавая на базу сигнал с ардуино. Спасибо за вашу помощь заранее.

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

    Через транзистор реверсить не получится надо или мост или полумост.

    или специальную мелкосхему по ссылке все разжевано.

    вообщетто непонятно , как Вы нашли этот форум, если не умеете пользоваться поиском?

    а если умеете то почему не ищете сами?

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

    Cesium137 аватар

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

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

    Cesium137 аватар

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

    Да, будет коротыш. Именно роэтому лучше применить мелкосхему, там есть защита.

    откуда такой антагонизм к драйверам? Драйвер на мелкосхеме - тот же Нмост с защитами и в одном корпусе. Очень удобно.

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

    Cesium137 аватар

    Да не антагонизм к драйверам. Просто нет в наличии пока. А так понимаю что очень удобно

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

    Хмм. L293 достаточно распрострненная и недорогая. На ебээ вообще копейки стоит.

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

    Cesium137 аватар

    Заказать собираюсь либо на алике или а ебее

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

    Cesium137 аватар

    Спасибо за совет вам. Вопрос такой L293 может управлять 12В моторами? Какое количество моторов можно задействовать максимально. Я так понимаю он служит вроде ключа для открывания (пропукскания) питания на моторы, а также реверсы делать.

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

    Jeka_M аватар

    В даташите всё написано:

    Wide Supply-Voltage Range: 4.5 V to 36 V
    Output Current 1 A Per Channel (600 mA for L293D)
    Peak Output Current 2 A Per Channel (1.2 A for L293D)

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

    Cesium137 аватар

    БЛАГОДАРЮ ВСЕХ ЗА ОКАЗАННУЮ ВАМИ МНЕ ПОМОЩЬ))))))))))))))))))))))))))))))))))

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

    andriano аватар

    Там нет шагового двигателя. Там три других двигателя: один обычный коллекторный моторчик, который открывает/закрывает каретку. И два трёхфазных бесколлекторных двигателя: один крутит диск (побольше), другой двигает лазерную головку (поменьше).

    Не будьте столь категоричны: недавно разбирал CD-Drive, так там головку двигает мотор, к которому идет ровно 2 провода - красный и черный. Вы уверены, что это трехфазный бесколлекторный?

    Реверс постоянного мотора через Ардуино без драйвера

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

    Cesium137 аватар

    Всем привет. Меня интересует как можно реализовать через ардуино реверс обычного постоянного мотора (например от лотка дисковода)? Мотор собираюсь запускать через транзистор подавая на базу сигнал с ардуино. Спасибо за вашу помощь заранее.

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

    Cesium137 аватар

    Например с таким кодом смена полярности работает, если напрямую мотор подсоединить к ардуино . Но я хочу включать мотор через транзистор. Хотелось бы менять полярность моторчика

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

    ЕвгенийП аватар

    Лучше и проще поставить мостовой драйвер. Готовый или самому спаять.

    А так, ну намудрите чтобы один пин вкючал мотор в одной полярности, а второй (независимо на разных транзисторах) - в другой, только следите, чтобы не вкючить оба пина сразу.

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

    Включать мотор (с возможностью реверса) через транзистор не получится. Нужно собирать мостовую схему на транзисторАХ. Если мотор потребляет ток до 40 мА, можно поэкспериментировать с подключением напрямую к выводам микроконтроллера. Но я бы не стал это делать (индуктивность, знаете ли).

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

    Cesium137 аватар

    А для реверса мотора (схема Н-моста) 4 транзистора npn нужны или два npn и два pnp?

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

    ЕвгенийП аватар

    Так в гугле же этого добра . и схемы и методики расчёта .

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

    Cesium137 аватар

    Спасибо читаю уже. И ещё один вопросик по поводу pnp npn переходов. Если на npn транзистор на базу подать HIGH он откроется. А вот чтобы pnp открылся надо LOW подать? ПРавильно? Хочу удостовериться мой транзистор не сгорел. ДАташиты на нних нашел . npn КТ819Г и pnp КТ837Ф

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

    ЕвгенийП аватар

    Правильно. Притянуть к земле. Тоже самое про полевые транзисторы. N-канальный - к питанию, P-канльный к земле.

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

    Cesium137 аватар

    Спасибо за ответ. А разные можно использовать марки тразисторов для Н моста (одинаковый у них переход npn и Uбэ 5в макс?) .

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

    ЕвгенийП аватар

    Там в тех статьях есть правила расчёта в том числе и параметров транзистора.

    Что касается Uбэ - оно почти у всех транзисторов примерно такое (ну, там 6 или 7 бывает, но не больше).

    Вопрос связан с тем как его к питанию прижимать для PNP транзисторов? Так там же на эмиттере питание сидит - смотрите схему. ТАк что когда Вы на базу дадите питание, напряжение между базой и эмиттером станет нулём.

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

    Cesium137 аватар

    Закажука наверное L293. Мне вроде как принцып понятен как работает аш мост. Вчера пробывал это все на релюшках реализовать. Схему нарисовал. В теории смена полярности должна заработать. ПОка не проверял на практике. Есть два реле для ардуино.

    Вопрос такой L293 может управлять 12В моторами? Какое количество моторов можно задействовать максимально. Я так понимаю он служит вроде ключа для открывания (пропукскания) питания на моторы, а также реверсы делать.

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

    Jeka_M аватар

    В даташите всё написано:

    Wide Supply-Voltage Range: 4.5 V to 36 V
    Output Current 1 A Per Channel (600 mA for L293D)
    Peak Output Current 2 A Per Channel (1.2 A for L293D)

    P.S. Что за дурацкая привычка создать кучу тем и писать в них одно и то же?

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

    Cesium137 аватар

    БЛАГОДАРЮ ВСЕХ ЗА ОКАЗАННУЮ ВАМИ МНЕ ПОМОЩЬ))))))))))))))))))))))))))))))))))

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

    Cesium137 аватар

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

    Теоретически должен, если частота ШИМа будет не велика. Насколько невелика - не знаю. Думаю сотни Гц.

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

    Cesium137 аватар

    Если ШИМ с ардуино уно?

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

    Cesium137 аватар

    Мне интересно будет ли управление ШИМ для моторов с Н-моста?

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

    Cesium137 аватар

    Здравствуйте. Мне интересно будет ли управление ШИМ ардуино ЮНО для мотора с Н-моста? Мне нужно управлять скоростью вращения.


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

    ЕвгенийП аватар

    Так, если интересно - соберите и попробуйте. И нам расскажете.

    Обязательно следите за нагревом транзисторов.

    И ещё, обратите внимание на то, что в этой схеме отсутствуе какая-либо защита (обработка) от одновременного включения высокого уровня в обеиъ отчках A и B. Прдеставьте себе, что произойдёт если транзисторы Т1 и Т3 (или Т2 и Т4) откроются одновременно! Убедитесь, что Ваш скетч никогда такой бяки не допустит.

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

    Cesium137 аватар

    Спасибо насчет защиты и кода в скетче. думал об этом уже. Хочу управлять реверсом переключателем который двигается в два положения. А в скетче на всякий случай дописать код:

    digitalWrite(Точка A, HIGH);

    И наоборот для точки В.

    Вот только неуверен успеет эта логика сработать раньше чем будет КЗ)))))

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

    ЕвгенийП аватар

    Так делайте наоборот. Переставьте местами. Первую строку исполняйте только после проверки, что там на B. Если в какой-то момент окажется везде LOW - это не страшно, а вот HIGH не допускайте никогда.

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

    Cesium137 аватар

    Кстати эту схему собирал. только резисторы везде использовал на 1КОм. Транзисторы разные. Все они были проверены на открывание подачаей сигнала на базу (+ или - взависимости pnp или npn). Измерял напряжение мультиметров где должен быть мотор. Источник питания 9В земли питание и ардуино обьединил.

    При подачи сигнала + на точку В 9 воль проходят спокойно. и ноль вольт если не подвать сигнал.

    С точкой А по другому все. До подачи сигнала показывает какие то 2,2 В а при подачи 0,2 или 0. ПОка не пойму почему так.

    Сейчас хочу резисторы найти подходящие для моих транзисторов или транзисторы ту которые в присланной статье указаны заново собрать схемуи проверить.

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

    Cesium137 аватар

    Хочу своей племяннице маленький подьемный кран сделать. два мотора и одна серва. Один мотор вокруг своей оси поворачивает кран. серва вверх стрелу поднимает за счет потенциометра. а второй мотор тросик поднимал бы.

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

    Cesium137 аватар

    Точно. сразу не подумал проверку в самом начале сделать.)))))

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

    Cesium137 аватар

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

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

    ЕвгенийП аватар

    Я бы на Вашем месте взял бы простенькую микросхемку TA7291 и не парился бы.

    Там работа двигателя управляется не ШИМом, а опорным напряжением. Его, конечно, тоже их ШИМа делать надо, но зато на мотор идёт плавно, а не рывками.

    Но самое главное её преимущество - режим торможения, т.е. быстрой остановки двигателя (как раз на оба входа HIGH подать). Режим классно работает. Двигатель быстро останавливается. А без такого режима, народу приходится его иммитиировать - после отключения питания "в одну сторону" подавать ненадолго "в другую", чтобы быстрее остановился.

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

    Cesium137 аватар

    НА одном канале В который работает пробывал ШИМ подавать. в градации от analogWrite от 1 до 10 напряжение от 2до 9в меняется (питание крона на 9В). Вроде как работает. Микросхему вашу себе запишу . приобрету.

    А l293d для моих целей подойдет? (в плане ШИМ). или все же лучше TA7291?

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

    ЕвгенийП аватар

    А l293d для моих целей подойдет? (в плане ШИМ). или все же лучше TA7291?

    Это для холивара фанатов той и другой микросхемы.

    Принципиальная разница между ними:

    293 - подаёт на двигатель всё напряжение сразу, так что управлять скоростью вращения надо через ШИМ, т.е. часто включая и выключая. А 7291 - подаёт на двигатель напряжение, равное опорному, которое на неё подали. Т.е. для управления оборотами мы не включаем/выключаем питание мотора постоянно, а просто подаём на него нужное напряжение.

    293 - два полумоста в одном курпусе, а 7291 - один полный мост в корпусе

    Ну и у 7291 есть режим торможения, а у 293 нет.

    Мне больш нравится 7291, возможно потому. что в крупном проекте мне было очень важно как можно быстрее останавливать и торможение меня просто спасало.

    Но, Вы не думайте, что это единственный выбор. Таких драйверов сотни и с торможением, и без, и полумостов и полных мостов. MAX14871, A3968, LV8716, DRV8837, вот ещё десяток на выбор

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

    Cesium137 аватар

    НУ спасибо вам огромное. ТЕперь я точно определился что лучше выбрать для моей затеии. Я так понял что ШИМ работает по принцыпу вкл выкл сигнала с очень болшое скоростью (этим задается ширина импульца) визуально кажется что это и есть ззамедление мотора или затухание плавное светодиода.

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

    Cesium137 аватар

    Если даст бог получится сделать кран подьемный то выложу фото и коды как я его реализовал

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

    Cesium137 аватар

    А какую модель лучше брать TA7291? TA7291sg или TA7291p? есть разницы в функциях ? У разных моделях кол-во ножек разное

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

    ЕвгенийП аватар

    Ну, это к Вам попрос. Я же не знаю, какой ток у Ваших двигателей.

    ТА7291Р - 1,2А, в пике до 2А

    ТА7291S и ТА7291F - 0,4А, в пике до 1А

    Разница между S и F только в корпусе. S - в корпусе SIP-9, а F - в корпусе HSOP-16. Опять же, никто, кроме Вас не знает какой корпус удобнее в Вашей конструкции. Я вот, например HSOP боюсь как огня - я их паять не умею :)

    На количество ножек не парьтесь - часть не используются. Так-то это одинаковые микросхемы.

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

    ЕвгенийП аватар

    В принципе, такие драйверы на мало-мальски большой ток - достаточно дорогие. Поэтому иногда проще сделать самогонный по той схеме, что Вы приводили (ну, а если ток совсем большой, то на полевых транзисторах). Например, нужен Вам драйвер на 4-5 ампер, берёте 4 штуки копеечных TIP122 (12 рублей за штуку), и делаете.

    Торможение в самодельном мосте сделать совсем нетрудно. Я не буду давать схему, только идею подскажу, дальше подумайте, запустите какой-нибудь протеус или мультисим и "решите задачу". А идея там такая. Если у Вас есть двигатель, который можно раскрутить рукой и он будет вращаться (без питания), попробуйте во время вращения закоротить его обмотку. Увидите, как он начнёт заметно притормаживать и быстро остановится. Это главная идея. Только не "дораскручивайте" при замкнутой обмотке - можно спалить.

    Если в Вашей схеме открыть одновоременно два нижних транзистора, а верхние оставить закрымыми, то Вы по сути закоротите обмотку двигателя на землю. Отдельно заметим, что если двигатель вращается, то он вырабатывает ЭДС - он же как электро-генератор работает. Так вот, когда к обмотке с двух сторон приложена земля, эта ЭДС будет будет уходить в землю, а двигатель тормозить. Это и есть "динамическое торможение".

    Таким образом, динамическое торможение даже специально делать не надо. Если мы сделаем защиту от одновременного включения по сигналам в точка А и Б такую, что при открытии любого из нижних транзисторов, соответсвующий верхний будет автоматически наглухо закрываться, то это будет защитой от КЗ и одновременно режимом торможения!

    Если же наоборот - открыть оба верхних и закрыть оба нижних, будет тоже самое - на обмотке с двух сторон питание - обмотка замкнута. Так что без рахницы, как придумаете.

    Читайте также: