Как управлять 4 двигателями постоянного тока с помощью Arduino?

Через несколько месяцев я планирую построить робота Arduino с несколькими датчиками и т. д. Я буду использовать Arduino Mega и полноприводное шасси, подобное этому: Шасси. В шасси используются 4 двигателя постоянного тока. Я планировал использовать моторный щит, но понял, что он подходит только к Arduino Uno (не Mega) и управляет только двумя двигателями постоянного тока. Что я могу сделать, чтобы все 4 двигателя постоянного тока двигались вперед и назад? Если я использую плату драйвера двигателя, которая управляет двумя двигателями, могу ли я соединить 2 правых и 2 левых двигателя параллельно вместе и управлять ими через Arduino?

, 👍4

Обсуждение

Используйте драйверы двигателей, которых нет на щите., @Majenko

@Маженко, тогда мне придется использовать 2 драйвера?, @shurup

Каждому двигателю нужен драйвер. Если плата драйвера может управлять двумя двигателями, вам понадобятся 2 платы драйвера для 4 двигателей. Если плата драйвера может управлять только одним двигателем, вам понадобятся 4 платы драйвера для 4 двигателей. Найдите плату драйвера, достаточно мощную для ваших двигателей, а затем выполните (*очень простые*) математические расчеты., @Majenko

Если это может помочь, у меня есть код, который я использую именно для этой цели: https://github.com/igor-stoppa/ChibiOS/tree/car. В последнее время у меня не было много времени, чтобы тратить на это, но это делает основное. Я использую 2 из них: http://www.ebay.com/itm/111671736661?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT, @Igor Stoppa

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

@IgorStoppa Каждый двигатель потребляет 120 мА при напряжении 6 Вольт. Я читал о людях, управляющих двумя двигателями одновременно. Я, наверное, буду контролировать их индивидуально, чтобы ничем не рисковать., @shurup

Если вы хотите добавить петлю обратной связи к каждому двигателю, я обнаружил, что эти оптические детекторы остановки работают достаточно хорошо: http://www.ebay.com/itm/1-x-Optical-Endstop-End-Stop-Limit- Switch-Solution-for-3D-Printer-or-CNC-NEW-DE-/281983545137?hash=item41a7876f31:g:6UsAAOSwxcRW-UHJ, @Igor Stoppa

@IgorStoppa Вы рекомендуете получить драйвер Sparkfun или тот, который вы получили на ebay, работает нормально?, @shurup

@NickSolonko, имея дело с двигателями, вы также должны учитывать пиковое потребление тока: преодоление начальной инерции потребует гораздо большего тока, чем при постоянном движении. В общем, любое изменение скорости (включая рулевое управление) вызывает временное увеличение., @Igor Stoppa

Пока что с драйвером, который я связал, все в порядке. У меня нет опыта работы с программой от Sparkfun. Но я могу посоветовать не покупать устройства на базе L298N из-за гораздо более высоких внутренних потерь мощности: http://www.ebay.com/itm/Dual-H-Bridge-DC-Stepper-Motor-Drive-Controller-Board- Module-Arduino-L298N-HG-/281551893660?hash=item418dccf49c:g:sm8AAOSwYGFUsJ9I, @Igor Stoppa

@IgorStoppa Я подумывал о покупке чего-нибудь на базе L298N. Спасибо, что предупредили меня. Теперь, пожалуй, возьму тот, который вы посоветовали. Тот, который я ранее планировал получить: http://www.ebay.com/itm/L298N-4-Channels-DC-Motor-Step-motor-Driver-Module-Robot-4WD-Car-for-Arduino-DG. -/262482009259?hash=item3d1d259cab:g:srwAAOSw9eVXXnyk, @shurup

Давайте [продолжим обсуждение в чате](http://chat.stackexchange.com/rooms/41125/discussion-between-igor-stoppa-and-nick-solonko)., @Igor Stoppa

Ожидается, что 6-вольтовые двигатели будут хорошо работать под приложением, вероятно, будут указывать на TB6612FNG. Некоторые из новых моторных щитов используют их, поскольку в качестве устройств на полевых транзисторах они имеют гораздо меньшие потери., @Chris Stratton

@ChrisStratton: это то, на что я дал ссылку., @Igor Stoppa


2 ответа


0

Да, вы действительно можете это сделать, но вам нужно учитывать ток двигателей и драйвера двигателя. Например, если у вас есть двигатели на 12 В, 2 А, то вам нужен двухканальный драйвер двигателя, который способен выдавать ток чуть выше 4 А (2*2 А) для каждого канала при напряжении 12 В. Вам нужно будет подключить каждые два двигателя на одной стороне параллельно к одному каналу.

,

2

Да, вы можете сделать это, используя 2 драйвера двигателей L293D, каждый драйвер двигателя может управлять 2 двигателями, и это очень просто в использовании.

Вы должны подключить Vcc 1 (используется для питания чипа) к 5 В, а Vcc 2 — к источнику питания, необходимому для работы ваших двигателей. Enable 1,2 и Enable 3,4 используются для включения двух сторон чип и должен быть подключен к 5В. Выходы 1–4 — это выходы для 2 двигателей, а входы 1–4 — входы микроконтроллера.

,

Но что, если я захочу использовать отдельный источник питания, например батарею на 9 В? Как мне подключить его к драйверу двигателя L293D? Я думаю, мне следует подключить положительную сторону батареи 9 В к контакту VCC 2 драйвера двигателя L293D. Но куда мне подключить отрицательную сторону батареи 9 В?, @Lloyd Dominic

Вам следует подключить отрицательную сторону к 4 контактам заземления., @Roshan