Добрый день. Подскажите как правильно подключить к Arduino Mega(http://arduino.ru/Hardware/ArduinoBoardMega , там же есть принципиальная схема) блок управления шаговым двигателем SMD-4.2(http://electroprivod.ru/smd-4.2.htm). Управлять буду шаг.двигателем AD-200-31 по схеме 2(http://electroprivod.ru/ad-200.htm). Консультант в Электроприводе сказал, что нужно подключать к аналоговым входам. А какую библиотеку Arduino использовать, Stepper.h? И как инициализировать входы в скетче, если подключение будет: An1 - Step+ An2 - Step- An3 - Dir+ An4 - Dir- An5 - En+ An6 - En- Заранее спасибо.
Что-то странное сказал вам консультант… Можно, конечно, подключить и к аналоговым входам, но вам нужно будет работать ими всё же, как цифровыми выходами: Arduino выдаёт сигналы на железку, не так ли?! Кроме того пины с «плюсами» должны быть непосредственно притянуты к питанию. Смотрите внимательно на документацию к вашей коробочке. Я рекомендую подключить так: 5V - Step+ D2 - Step- 5V - Dir+ D3 - Dir- 5V - En+ D4 - En- Библиотека Stepper вам не поможет: коробочка уже умеет как нужно управлять обмотками. Вам остаётся лишь пипать пины 2, 3, 4, чтобы ей управлять на логическом уровне, а она уж сама передаст, всё что вы просили двигателю. Концептуально: Ставьте сигнал En (D4) в LOW. Это включает коробочку Ставьте сигнал Dir (D3) в LOW или HIGH в зависимости от нужного направления вращения Пипайте пин Step(D2) в LOW на 3 мкс для совершения 1 шага. Пипайте повторно для создания вращения.
Документации там как кот наплакал(( Я смогу переговорить с консультантами, но пока что даже не могу вопросы сформулировать. Полазил на различных сайтах, посмотрел аналоги подключения(через всевозможные контроллеры, в том числе самодельные) так вот там везде фигурируют только STEP/DIR/EN, и никаких там STEP+/STEP- нет. Сейчас попробую. По результатам отпишусь. Спасибо.
Попробовал подключить как Вы посоветовали. Не получилось. Нашел вот такую ветку http://arduino.cc/forum/index.php?topic=108914.0 Там у автора похожий по внешнему виду на мой контроллер. Там же предложили вариант подключения: Digital Pin 2 -> PUL+ // PUL по всей видимости у него аналог STEP Digital Pin 3 -> DIR+ And the PUL-, DIR- to the Arduino GND and ENA- unconnected. Моторчик зашумел при таком подключении, но не двигался. В том и другом случаи использовал след.скетч: Код (Text): int stepM1pin = 22; int dirM1pin = 24; int enM1pin = 26; int Steps = 10; int Delay = 3; int i; void setup() { pinMode(stepM1pin, OUTPUT); pinMode(dirM1pin, OUTPUT); pinMode(enM1pin,OUTPUT); digitalWrite(enM1pin,LOW); digitalWrite(dirM1pin,LOW); } void loop() { digitalWrite(stepM1pin, HIGH); delayMicroseconds(3); digitalWrite(stepM1pin, LOW); delayMicroseconds(3); } Я не так написал скетч?
Скетч похож на правду. А мотору точно хватает питания? И как именно он шумит: пищит, как электричка при разгоне?
Разобрался)) Подключил по схеме: Digital Pin 2 -> STEP+ Digital Pin 3 -> DIR+ Digital Pin 4 -> ENA+ GND -> PUL- GND -> DIR- Не подключаю никуда ENA-. Ошибка была в задержке, указанного в скетче. Видимо он не может столько шагов делать за секунду. Слишком маленькое прерывание было. Задержку сделал 500 микросекунд. Получилось следующее: Код (Text): int stepM1pin = 22; int dirM1pin = 24; int enM1pin = 26; int Delay = 500; void setup() { pinMode(stepM1pin, OUTPUT); pinMode(dirM1pin, OUTPUT); pinMode(enM1pin,OUTPUT); digitalWrite(enM1pin,LOW); digitalWrite(dirM1pin,LOW); } void loop() { digitalWrite(stepM1pin, HIGH); delayMicroseconds(Delay); digitalWrite(stepM1pin, LOW); delayMicroseconds(Delay); } Nailxx, спасибо за помощь.
Довольно странно ибо в документации именно 3 мкс были заявлены. Но что ж… Можно 500 попробовать поуменьшать пока не начнёт тупить. Это и будет оптимальный импульс
Схожая проблема, не могу заставить ходить ШД FL86STH80-4208 с 8ю выводами 4-х фазный подключен через SMD-4.2 драйвер. arduino mega 2560 использую скетч как в предыдущем посте подаю на step+ импульсы пробовал различные значения (начиная 5мкс до 10000мкс) dir+ пробовал 5v, 0v step- на земле dir- на земле шагает на месте меняю частоту импульсов = частота шагов меняется но шагать только в перед или только назад не хочет шагает на месте или периодически дергается на произвольное количество шагов пробовал параллельное и последовательное, а так же подключение 2х из четырех обмоток тот-же результат. может, кто, что подскажет ? Заранее спасибо.
Привет. Если я правильно тебя понял, то у тебя он дергается то в одну сторону, то в другую. Попробуй посмотреть "распайку" на моторе - поменять провода. Выход на который ты подаешь значение "сделай шаг" он у тебя отвечает сейчас за направление движения.
Cпасибо конечно за ответ. Но он мало что объясняет. Во первых, зачем подавать что либо на выход ) , подают обычно на входы - а именно на входы драйвера мотора, которые для удобства подписаны: dir т.е. Direction - направление step шаг на step согласно осциллограмме приведенной в инструкции http://electroprivod.ru/pdf/SMD-4.2-pasp.pdf подаются импульсы длинной не менее 3-х микросекунд. Импульсы могут быть и длиннее, контроллер срабатывает на фронт импульса т.е. в момент когда на входе напряжение меняется с 0 на 5v. на dir подается либо 5v для шагов в прямом либо 0 для обратного направления шагов/ если не требуется менять направление движения ш.д. можно вообще не подключать к этому входу ни чего или "посадить его на землю"/ тестировал в разных вариациях. Результат тот же. схемы коммутации Ш.Д. с драйвером приведены там же в инструкции, а именно при параллельном подключении это: синий,красный A + желтый,черный A - коричневый,белый B + оранжевый, зеленый B - Пробовал (последовательное). Результат тот же. И боюсь что несоблюдение конфигурации подключения обмоток Ш.Д. к драйверу на таком токе попросту выведут драйвер из строя. Мои предположения. - т.к. я использую источик питания GZT-H200S36 36v есть сомнения что Ш.Д. FL86STH80-4208 приспособлен к работе c напряжением 36v (к сожалению не могу найти информации об этом в спецификациях Ш.Д.) либо не корректная работа драйвера. так что, вопрос пока остается открытым.
Ну что же, проблема решилась неожиданно. Пролистав немного макулатуры о Ш.Д. выяснилось что многофазные двигатели часто входят в ступор на микрошаге на больших токах. Момент удержания у них достаточно высок и самостоятельно из заклиненного состояние они не выходят. Даже после снятия тока с обмоток, так что пришлось поморочится переключая ток и микрошаг. И (о чудо!) он вышел из этого состояния. Теперь функционирует нормально, но на низких оборотах на большом микрошаге и большом токе при резонансе может войти обратно в клин. Вот так. В следующий раз буду брать двух фазный. (ибо мороки меньше)