Добрый день, для вращения анализатора в Керр-микроскопе приобрел стандартный униполярный (как следует из даташита) шаговый двигатель 28BYJ-48 с драйвером на микросхеме ULN2003 (позже будет разведен сразу на печатной плате) (ссылка 1). Никаких даташитов в комплекте не было, но на просторах интернета был найден соответвующий документ (ссылка 2). Двигатель через драйвер был подключен к цифровым портам платы NI-6221. Далее я написал програмку в LV для управления, которая "дергает" четырмя соответствующими цифровыми выходами карты, а драйвер уже замыкает соответвсующую обмотку на землю. Между отдельными переключениями стоит задержка в 20мс + между шагами (шаг состоит из 4 либо 8 перключений) еще 10мс. Как я понял, существует 2 режима работы: полный шаг (4 переключения) и полушаг, для реализациие которого необходимо послать в два раза больше команд (см. картинку). Питание 5В берется с платы, ток, который течет по линии питания при замыкании обмотки порядка 150мА. Двигатель крутится, но возникли некоторые существенные проблемы: 1. В режиме полного шага двигатель (торчащая оська) совершает полный оборот за ~512 шагов, что соответвует повороту на 0.703° гард. за один шаг, хотя в даташите утверждается, что шаг должен быть 5.625°/64 , так как там встроен редуктор с коэффициентом 1/64. По факту же получается что шаг двигателя в 8 раз больше, т.е. 5.625°/8. Жить с таким шагом невозможно, так как яркость картинки в микроскопе за один шаг меняется на огромную величину. 2. Режим полушага вообще не работает, т.е. вместо полушага происходит полный шаг. 3. Если сначал вращать двигатель по часовой стрелке, а затем послать команду (просто инвертированный 2Д массив с картинки) для вращения в противоположную сторону, то двигатель начинает вращаться только после 4-5 команды. Такой вот "люфт". Если у кого-либо есть какие-либо соображения по поводу озвученных проблем, пожалуйста, поделитесь, так как ничего аналогичного на просторах интернета не нашлось и только на вашем форуме была немного близкая тема (ссылка 3) Есть идея, что возможно перепутаны провода обмоток и последовательность переключения состояний должна быть не такой как на картинке, а, например, 2 и 3 (или любые другие) строки должны быть поменяны местами. Аналогичное поведение продемонстрировал и 2-ой купленный отдельно двигател. Ссылка 1 (шаговый двигатель + драйвер): http://www.ebay.de/itm/281353506484?ssP ... 1497.l2649 Ссылка 2 (Даташит на двигатель): http://www.google.de/url?sa=t&rct=j&q=& ... 0786,d.bGQ Ссылка 3: http://forum.amperka.ru/threads/Подключение-шагового-двигателя-28byj-48-через-uln2003.1264/ Параметры Двигателя: Rated voltage : 5VDC Number of Phase 4 Speed Variation Ratio 1/64 Stride Angle 5.625° /64 Frequency 100Hz DC resistance 50Ω±7%(25℃) Idle In-traction Frequency > 600Hz Idle Out-traction Frequency > 1000Hz
А с таким включением обмоток разве можно сделать полушаг через одну только ULN-ку? Буду рад ошибиться, но тут, кажется, нужен пяток честных полумостов...
Спасибо большое за ответы. По-поводу ULN2003: я может конечно не догоняю, но что мешает этой микросхеме работать в режиме полушага? Она ведь по сути просто набор из независимых драйверов (см рис.1). Кроме того, когда я запустил в медленном режиме (200мс между переключениями, чтоб видеть): i) светодиоды на драйвере мигали правильно (см. видео по ссылке ниже), ii) ток по силовой линии протекал то 140 то 280 мА, что, вроде как, и должно соответвовать правильному режиму. Но самый главный вопрос: почему шаг у меня получается не соответсвует шагу в даташите, а получается в 8 раз больше? и почему люфтит при смене направления? ссылка видео: https://cloud.mail.ru/public/239277900a20/20141021_092901.mp4
ULN2003 - это сборка транзисторов Дарлингтона с открытыми коллекторами, она не может прижимать выход к (+) питания, только к (-), а без этой способности нельзя менять полярность включения обмоток.
Хм... а вот тут пишут, что полушаг получается и без этого... http://42bots.com/tutorials/28byj-48-stepper-motor-with-uln2003-driver-and-arduino-uno/
Хммм... А разве нельзя работать в режиме полушага с униполярным мотором? Открываем первую попавшуюся ссылку по запросу: "half step sequence stepper motor", например эту (см. ниже), и видем, что полушаг есть как для биполярного, так и для униполярного. Там в схеме для униполярного нули и единички, а для биполярного - плюсики и минусики. Разве нет? http://www.chinabaike.com/z/bzj/214479.html
Но проблема с полушагом для меня на самом деле вторична, мне бы правильный угловой шаг в 5.625°/64 получить как в даташите, а не в 8 раз больший как по факту. Попробовал сейчас с подключением обмоток поиграться, но при любой, отличной от текущей последовательности - мотор скачет на месте, значит вроде все верно. Или я не так даташит понимаю?
Я думаю, что я близок к пониманию проблемы. 1. По поводу крупного шага: я, видимо, шагом называл не то, что под этим понимают производители. Я считал, что шаг состоит из 4 переключений, а они называют шагом каждое переключение. Плюс полушаг - это у них тоже шаг, вот и получается что 4*2*4=64 - значение понижающего редуктора, которое они указывают. Так что все прояснилось. 2. Режим полушага пока так и остался загадкой. 3. Задержка при начале обратного вращения вызвана банальным люфтом в редукторе, который видно механический, если подергать оську. Всем спасибо за содействие.