0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Автономная схема для шагового двигателя

Схема и сборка контроллера для ЧПУ станка

У умельцев, которые пытаются сами собрать программируемый станок, часто возникает проблема: как выбрать для него контроллер управления шаговыми двигателями. Понятно, что их интересует схема этого устройства.

Среди большого разнообразия контроллеров, пользователи ищут для самостоятельной сборки те схемы, которые будут приемлемы и наиболее эффективны. Применяются и одноканальные устройства и многоканальные: 3-х и 4-х осевой контроллеры.

Варианты устройств

Многоканальные контроллеры ШД (шаговых двигателей) при типоразмерах 42 или 57 мм используется в случае небольшого рабочего поля станка – до 1 м. Когда собирают станок большего рабочего поля – свыше 1м, нужен типоразмер 86 мм. Управлять ним можно, пользуясь одноканальным драйвером (ток управления, превышающий 4,2 А).

Управлять станком с числовым программным управлением, в частности, фрезерным настольным можно контроллером, созданным на базе специализированных микросхем –драйверов, предназначенных к применению для ШД до 3А. Контроллер ЧПУ станка управляется спецпрограммой. Ее устанавливают на ПК, имеющий частоту процессора свыше 1GHz, а объем памяти 1 Гб). При меньшем объеме, систему оптимизируют.

ОБРАТИТЕ ВНИМАНИЕ! Если сравнивать с ноутбуком, то в случае подключения стационарного компьютера – лучшие результаты, да и обходится он дешевле.

Подключая контроллер к компьютеру, используют USB или разъем параллельного порта LPT. Если этих портов нет, то пользуются платами-расширителями или контроллерами-преобразователями.

Экскурс в историю

Вехи техпрогресса схематически можно обозначить так:

  • У первого контроллера на микросхеме был условно назван «синей платой». У этого варианта есть недостатки и схема требовала доработки. Главное достоинство – есть разъем, к нему и подключали пульт управления.
  • Вслед за синим, появился контроллер, называемый «красной платой». В нём уже использовались быстрые (высокочастотные) оптроны, реле шпинделя на 10А, развязка по питанию (гальваническая) и разъем, куда бы подключались драйверы четвертой оси.
  • Применялось также еще одно подобное устройство с красной маркировкой, но более упрощенное. При его помощи можно было управлять небольшим станком настольного типа – из числа 3-осевых.

  • Следующим в линейке техпрогресса стал контроллер с гальванической развязкой по питанию, быстрыми оптронами и особыми конденсаторами, имеющий алюминиевый корпус, который обеспечивал защиту от пыли. Вместо реле управления, которое включало бы шпиндель, в конструкции было два выхода и возможность, чтобы подключить реле или ШИМ (широтно-импульсная модуляция) управление скоростью вращения.
  • Сейчас же для изготовления самодельного фрезерно-гравировального станка, имеющего ШД, есть варианты – 4-х осевой контроллер, драйвер ШД от Allegro, одноканальный драйвер для станка, имеющего большое рабочее поле.

ВАЖНО! Не стоит перегружать ШД, применяя крупную фрезу агрегата и большую скорость.

Контроллер из подручных материалов

Большинство умельцев предпочитают управление через LPT порт для большинства программ управления любительского уровня. Вместо применения комплекта спецмикросхем для этой цели, кое-кто строит контроллер из подручных материалов – полевых транзисторов из сгоревших материнских плат (при напряжении свыше 30 вольт и током больше 2 ампер).

А поскольку создавался станок для нарезания пенопласта, в качестве ограничителя тока изобретатель использовал автомобильные лампы накаливания, а ШД снимали со старых принтеров или сканеров. Такой контроллер устанавливали без изменений в схеме.

Чтобы сделать простейший станок ЧПУ своими руками, разбирая сканер, помимо ШД, извлекается и микросхема ULN2003, и два стальные прутки, они пойдут на тестовый портал. К тому же понадобятся:

  • Коробка из картона (из нее смонтируют корпус устройства). Возможен вариант с текстолитом или фанерным листом, но картон резать легче; куски древесины;
  • инструменты – в виде кусачек, ножниц, отверток; клеевой пистолет и паяльные принадлежности;
  • вариант платы, которая подходит на самодельный ЧПУ станок;
  • разъем для LPT порта;
  • гнездо в форме цилиндра для обустройства блока питания;
  • элементы соединения – стержни с резьбой, гайки, шайбы и шурупы;
  • программа для TurboCNC.

Сборка самодельного устройства

Приступив к работе над самодельным контроллером для чпу, первый шаг – аккуратно припаять микросхему на макетную плату с двумя шинами электропитания. Дальше последует соединение вывода ULN2003 и коннектора LPT. Далее оставшиеся выводы подключаем по схеме. Нулевой вывод (25-ый параллельного порта) соединяется с отрицательным на шине питания платы.

Затем ШД соединяют с устройством управления, а гнездо для электропитания – с соответствующей шиной. Для надёжности соединений проводов выполняют их фиксацию термоклеем.

Не составит труда подключение Turbo CNC. Программа эффективна с MS-DOS, совместима и с Windows, но в этом случае возможны некоторые ошибки и сбои.

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

  • В отверстия, просверленные на одном уровне в трех деревянных брусках, вставляют прутки из стали и закрепляют шурупами небольшого размера.
  • ШД соединяют со вторым бруском, надевая его на свободные концы прутов и прикручивают, применяя шурупы.
  • Через третье отверстие продевается ходовой винт и ставится гайка. Винт, вставленный в отверстие второго бруска, завинчивают до упора, чтобы он, пройдя через эти отверстия, вышел на вал двигателя.
  • Далее предстоит соединение стержня с валом двигателя отрезком шланга из резины и проволочным зажимом.
  • Для крепления ходовой гайки нужны дополнительные винты.
  • Сделанная подставка также крепится к второму бруску при помощи шурупов. Горизонтальный уровень регулируется дополнительными винтами и гайками.
  • Обычно вместе с контроллерами подключаются и двигатели и тестируются на предмет правильного соединения. Далее следует проверка масштабирования ЧПУ, прогонка тестовой программы.
  • Остается сделать корпус устройства и это будет завершающим этапом работы тех, кто созидает самодельные станки.

Программируя работу 3-осевого станка, в настройках по первым двум осям – без перемен. А вот при программировании первых 4-х фаз третьей – вводятся изменения.

Читать еще:  Шумоизоляция отсека двигателя своими руками

Внимание! Используя упрощенную схему контроллера ATMega32 (Приложение 1), в отдельных случаях можно столкнуться с некорректной обработкой оси Z – режим полушага. А вот в полной версии его платы (Приложение 2), токи осей регулируются внешним аппаратным ШИМом.

Заключение

В контроллерах, собранных ЧПУ станков – широкий спектр использования: в плоттерах, небольших фрезерах, работающих с древесиной и пластиковыми деталями, граверах по стали, миниатюрных сверлильных станках.

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

Raspberry Pi в Киеве (Украина)

Arduino и многое другое купить в Киеве

В вашей корзине

Raspberry Pi. Урок 10. Шаговый двигатель

  • Опубликовано 18.05.2015
  • by leo
  • in Без рубрики

Шаговый двигатель — это что-то среднее между обычным электромотором (Урок 9) и сервоприводом (Урок 8). Их преимущество в том, что можно точно регулировать их положение, двигать вперед или назад на один «шаг» за раз, а также они могут вращаться непрерывно.

В этом уроке мы узнаем, как управлять шаговым двигателем с помощью Raspberry Pi и все того же чипа управления мотором L293D, который мы использовали с электромотором в Уроке 9.

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

В этом проекте не сильно важно, используете Вы L293D или ULN2803. Если у Вас нет ни одного из чипов, то, возможно, лучше выбрать ULN2803, поскольку его стоимость ниже и в комплекте к нему четыре запасных детали.

Двигателю требуется меньше питания и менее чувствителен к перепадам напряжения, чем электродвигатели и сервоприводы. Питания 5В от Raspberry Pi будет достаточно, если Pi имеет хороший источник питания как минимум 1А.

Детали

Для этого проекта Вам понадобятся следующие детали:

Шаговый двигатель 5В

Интегральная схема L293D

Макетная плата половинного размера

Аппаратное обеспечение (L293D)

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

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

Обратите внимание, что красный провод шагового двигателя ни к чему не подключен.

Ориентируйтесь по цветам, а не по позиции откуда идет провод.

Аппаратное обеспечение (ULN2803)

Если Вы используете ULN2803, тогда используются все пять проводов.

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

Установка не может быть использована с 5-пиновыми (однополюсными) шаговыми двигателями.

Шаговые двигатели

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

Подача питания на катушки в правильном порядке заставляет работать двигатель. Количество шагов шагового двигателя в одном полном вращении — это количество зубчиков колеса.

Двигатель, который мы используем имеет 8 шагов, но поскольку в нем есть понижающий редуктор 1:64, то шагов 512 (8х64).

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

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

ULN2803

В уроке 9 мы уже рассматривали L293D. ULN2803 — очень полезный чип.

В то время как у L293D есть четыре вывода, полярность которых может быть изменена, у ULN2803 таких выводов 8, что позволяет усилить слабые сигналы с разъемов GPIO raspberry Pi и переключить их на более высокие показатели тока.

Однако в отличии от L293D, вывод ULN2803 может только поглощать ток, поэтому используется позитивный красный провод шагового двигателя. Поэтому вместо использования всей катушки между, например, розовым и оранжевым проводами, только половина катушки между красным и розовым проводами получает питание.

Программное обеспечение

В этом проекте используется библиотека Rpi.GPIO. Если Вы не использовали ее раньше, Вам нужно установить это.

Чтобы установить код, подключитесь к Pi через SSH и откройте окно редактора с помощью команды:

Затем скопируйте код ниже в окно редактора и сохраните (CTRL-X, затем Y).

GPIO . setmode ( GPIO . BCM )

GPIO . setup ( enable_pin , GPIO . OUT )

GPIO . setup ( coil_A_1_pin , GPIO . OUT )

GPIO . setup ( coil_A_2_pin , GPIO . OUT )

GPIO . setup ( coil_B_1_pin , GPIO . OUT )

GPIO . setup ( coil_B_2_pin , GPIO . OUT )

GPIO . output ( enable_pin , 1 )

def forward ( delay , steps ):

for i in range ( 0 , steps ):

setStep ( 1 , 0 , 1 , 0 )

time . sleep ( delay )

setStep ( 0 , 1 , 1 , 0 )

time . sleep ( delay )

setStep ( 0 , 1 , 0 , 1 )

time . sleep ( delay )

setStep ( 1 , 0 , 0 , 1 )

time . sleep ( delay )

def backwards ( delay , steps ):

for i in range ( 0 , steps ):

setStep ( 1 , 0 , 0 , 1 )

time . sleep ( delay )

setStep ( 0 , 1 , 0 , 1 )

time . sleep ( delay )

setStep ( 0 , 1 , 1 , 0 )

time . sleep ( delay )

setStep ( 1 , 0 , 1 , 0 )

time . sleep ( delay )

def setStep ( w1 , w2 , w3 , w4 ):

GPIO . output ( coil_A_1_pin , w1 )

GPIO . output ( coil_A_2_pin , w2 )

GPIO . output ( coil_B_1_pin , w3 )

GPIO . output ( coil_B_2_pin , w4 )

Читать еще:  Датчики двигателя на приоре и как они работают

delay = raw_input ( «Delay between steps (milliseconds)?» )

steps = raw_input ( «How many steps forward? « )

forward ( int ( delay ) / 1000.0 , int ( steps ))

steps = raw_input ( «How many steps backwards? « )

backwards ( int ( delay ) / 1000.0 , int ( steps ))

Настройка и тестирование

Программу нужно запустить от имени администратора, поэтому введите следующую команду в сессию SSH.

Задайте значение delay (5 подойдет), а затем количество шагов (number of steps) (512 — полный оборот).

Поэкспериментируйте со значением delay, чтобы достичь максимальной скорости двигателя.

Ардуино для начинающих. Урок 9. Моторы и транзисторы

Сегодня мы поговорим о транзисторах и подключении нагрузки к Arduino. Сама Ардуино не может выдать напряжение выше 5 вольт и ток больше 40 мА с одного пина. Этого достаточно для датчиков, светодиодов, но если мы хотим подключить устройства более требовательные по току, нам придется использовать транзисторы или реле. В этом уроке мы подключим девяти вольтовый моторчик и сервопривод к ардуино с помощью транзисторов.

В этом уроке используется:

Arduino Uno:Купить
Инфракрасный дальномер:Купить
Высокоточный лазерный дальномер с I2C:Купить
Набор резисторов из 100 штук на все случаи:Купить
Небольшой моторчик:Купить
Слабенький сервопривод:Купить
Мощный сервопривод:Купить
Мосфет транзистор для управления переменным током высокого напряжения:Купить
Набор npn транзисторов из 100 штук:Купить

Подключение мотора к Arduino

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

Транзистор это радиоэлектронный компонент из полупроводникового материала способный от небольшого входного сигнала управлять значительным током в выходной цепи, что позволяет его использовать для усиления, генерирования, коммутации и преобразования электрических сигналов. Обычно у транзисторов 3 вывода: база, эмиттер и коллектор. Алгоритм действия можно сформулировать так: пропустить ток от коллектора к эмиттеру в зависимости от сигнала на базе. Транзисторы бывают разных типов и номиналов. Об этом можно подробнее почитать на википедии.

Будьте внимательны при выборе транзисторов для своих проектов. Некоторые рассчитаны на пропуск большого напряжения, или большого тока. Так же многие транзисторы не откроются от 5 вольт на базе. Всегда проверяйте характеристики транзисторов перед покупкой в datasheet. Так же обратите внимание, что для управления переменным током используются мосфет транзисторы.

Теперь давайте подключим мотор к ардуино по следующей схеме:

Подключение мотора к ардуино

Как всегда ничего сложного. Главное не перепутать выводы транзистора. Обратите внимание на резистор через который ардуино подключена к базе. Это резистор на 1 кОм и нужен он для того что бы обезопасить нашу ардуинку. В видео к схеме добавлены диод и конденсатор, но они не обязательны. Так же можно добавить резистор на 10 — 100 кОм между эмиттером и коллектором для стабильности работы нашей схемы. Так же не забудьте, что земля на всех уровнях напряжения должна быть объединена. И взглянем на наш код:

Как видите скетч очень прост. По комментариям в коде вы легко разберетесь, что к чему. Единственная конструкция, которую мы еще не использовали это цикл for.

Подключение сервопривода практически ни чем не отличается от подключения моторчика. Отличие в том что у сервы 3 вывода. Плюс, минус и логический. В видео подробно об этом рассказано.

Добавим в нашу схему инфракрасный дальномер. Просто потому, что мы можем Будем задавать положение сервопривода в зависимости от показаний дальномера. Мы уже подключали дальномер, поэтому схему рисовать не буду.
Подключаем его к пину А0. Новый скетч стал еще проще:

5 комментариев

Добрый день! Что то не получается с транзистором. Взял кт815Г (что было). Эмитер соединил с землей (самая левая ножка). на землю посадил землю от бп (8V) и землю от ардуино. К коллектору (средняя ножка) присоединил лампочку одним выводом. К другому выводу лампочки присоединил + от БП 8V.
базу (крайняя правая ножка) завел на землю через резистор 10К. На базу подал 5V от ардуино через резистор 1К. И ничего….

Попробуйте для начала проверить сам транзистор, подав 5 В на базу (через резистор). Если он рабочий, то лампа загорится.

Напишите, для примера, какие транзисторы можно использовать. Или какие у них должны быть характеристики. Также неясно как подбирать резистор между эмиттером и коллектором и о какой стабильности идет речь.

Дмтрий можешь помощь, и немогу написать код с шаговым двигателем и датчиком света, немогу их вместе свезат что когда на улице светло он крутится в одну сторону ждёт пока не стемнет и крутица в другую сторону и там ждёт пока не рвсветет

Объясните пожалуйста, почему вы пишите, что необходимо провести ток от коллектора к эмиттеру, при этом к коллектору у вас подключен мотор. какой сигнал в таком случае усиливает транзистор? разве он не должен быть между питанием и мотором, то есть в роли эмиттера будет мотор?

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Подключение двигателя HDD к микроконтроллеру


В жестких дисках, как правило, применяются трехфазные бесколлекторные двигатели. Обмотки двигателя соединены звездой, то есть получаем 3 вывода (3 фазы). Некоторые двигатели имеют 4 вывода, в них дополнительно выведена средняя точка соединения всех обмоток.

Чтобы раскрутить бесколлекторный двигатель, нужно в правильном порядке и в определенные моменты времени, в зависимости от положения ротора, подавать напряжение на обмотки. Для определения момента переключения на двигатель устанавливают датчики холла, которые играют роль обратной связи.

Читать еще:  Шумит двигатель приоры причины

В жестких дисках применяется другой способ определения момента переключения, в каждый момент времени к питанию подключены две обмотки, а на третьей измеряется напряжение, исходя из которого, выполняется переключение. В 4-х проводном варианте для этого доступны оба вывода свободной обмотки, а в случае двигателя с 3-мя выводами, дополнительно создается виртуальная средняя точка, при помощи резисторов соединенных звездой и подключенных параллельно обмоткам двигателя. Так как коммутация обмоток выполняется по положению ротора, здесь присутствует синхронность между частотой вращения ротора и магнитного поля созданного обмотками двигателя. Нарушение синхронности может привести к остановке ротора.

Существуют специализированные микросхемы типа TDA5140, TDA5141, 42,43 и другие, предназначенные для управления бесколлекторными трехфазными двигателями, но я не буду здесь их рассматривать.

В общем случае диаграмма коммутаций представляет собой 3 сигнала с импульсами прямоугольной формы, смещенные между собой по фазе на 120 градусов. В простейшем варианте запустить двигатель можно и без обратной связи, просто подавая на него 3 прямоугольных сигнала (меандр), смещенных между собой на 120 градусов, что я и сделал. За один период меандра магнитное поле созданное обмотками совершает один полный оборот вокруг оси двигателя. Скорость вращения ротора при этом зависит от количества магнитных полюсов на нем. Если количество полюсов равно двум (одна пара полюсов), то ротор будет вращаться с той же частотой что и магнитное поле. В моем случае ротор двигателя имеет 8 полюсов (4 пары полюсов), то есть ротор вращается в 4 раза медленнее, чем магнитное поле. У большинства жестких дисков с частотой вращения 7200 об/мин, ротор должен иметь 8 полюсов, но это лишь мое предположение, так как я не проверял кучу винчестеров.

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

Для запуска двигателя я применил микроконтроллер PIC16F628A. В силовой части стоит трехфазный мост на биполярных транзисторах, хотя лучше использовать полевые транзисторы для уменьшения тепловыделения. Прямоугольные импульсы формируются в подпрограмме обработчика прерываний. Для получения 3-х сигналов сдвинутых по фазе, выполняется 6 прерываний, при этом получаем один период меандра. В программе микроконтроллера я реализовал плавное увеличение частоты сигнала до заданной величины. Всего 8 режимов с различной заданной частотой сигнала: 40, 80, 120, 160, 200, 240, 280, 320 Гц. При 8-ми полюсах на роторе получаем следующие скорости вращения: 10, 20, 30, 40, 50, 60, 70, 80 об/сек.

Прошивка МК и исходник + файл проекта Proteus_7.7

Разгон начинается с 3 Гц в течение 0,5 секунд, это экспериментальное время необходимое для начальной раскрутки ротора в соответствующем направлении, так как бывает, что ротор проворачивается на небольшой угол в обратную сторону, только затем начинает вращаться в соответствующем направлении. При этом теряется момент инерции, и если незамедлительно начать увеличение частоты, происходит рассинхронизация, ротор в своем вращении просто не будет успевать за магнитным полем. Чтобы изменить направление вращения, нужно просто поменять местами любые 2 фазы двигателя.

По истечении 0,5 секунд происходит плавное увеличение частоты сигнала до заданной величины. Частота увеличивается по нелинейному закону, скорость роста частоты увеличивается по ходу разгона. Время разгона ротора до заданных скоростей: 3,8; 7,8; 11,9; 16; 20,2; 26,3; 37,5; 48,2 сек. Вообще без обратной связи двигатель туго разгоняется, необходимое время разгона зависит от нагрузки на валу, я проводил все эксперименты без снятия магнитного диска (“блин”), естественно без него разгон можно ускорить.

Переключение режимов осуществляется кнопкой SB1, при этом индикация режимов выполнена на светодиодах HL1-HL3, информация отображается в двоичном коде, HL3 – нулевой бит, HL2 – первый бит, HL1 – третий бит. Когда все светодиоды погашены, получаем число ноль, это соответствует первому режиму (40 Гц, 10 об/сек), если например горит светодиод HL1, получаем число 4, что соответствует пятому режиму (200 Гц, 50 об/сек). Переключателем SA1 запускаем или останавливаем двигатель, замкнутому состоянию контактов соответствует команда “Пуск”.

Выбранный режим скорости можно записать в EEPROM микроконтроллера, для этого надо удерживать кнопку SB1 в течение 1 секунды, при этом все светодиоды вспыхнут, тем самым подтверждая запись. По умолчанию при отсутствии записи в EEPROM, микроконтроллер переходит в первый режим. Таким образом, записав режим в память и установив переключатель SA1 в положение “Пуск”, можно запустить двигатель просто подав питание на устройство.

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

Добавив 3 транзистора в трехфазный мост, можно уменьшить количество управляющих линий микроконтроллера до 3-х, как показано на схеме ниже.

Прошивка МК и исходник + файл проекта Proteus_7.7

В качестве питания я использовал нестабилизированный трансформаторный блок питания, с напряжением 11,7 В. Ток потребления в зависимости от скорости вращения колеблется в пределах 0,75 – 0,9 А. Транзисторы необходимо установить на теплоотвод.
На видео можно увидеть процесс запуска на разных скоростях, а также оптический датчик оборотов, который я приделал для измерения скорости вращения.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector