- КАК ПОДКЛЮЧИТЬ МОТОР ОТ DVD ИЛИ HDD
- Схема драйвера мотора
- Видео подключения мотора HDD
- Подключение двигателя HDD к микроконтроллеру
- Феерическая расстановка точек над HDD motors. Часть 1
- Введение
- Алгоритмы управления
- 1 способ.
- 2 способ.
- 3 способ.
- 4 способ.
- 5способ.
- Обратная связь по положению.
- Технические аспекты.
- Комментарии ( 98 )
КАК ПОДКЛЮЧИТЬ МОТОР ОТ DVD ИЛИ HDD
Как-то давно попалась мне на обозрение схема драйвера шагового двигателя на микросхеме LB11880, но поскольку такой микросхемы у меня не было, а двигателей валялось несколько штук, отложил интересный проект с запуском моторчика в долгий ящик. Прошло время, и вот сейчас с освоением Китая с деталями проблем нет, так что заказал МС, и решил собрать и протестировать подключение скоростных моторов от HDD. Схема драйвера взята стандартная:
Схема драйвера мотора
Далее идёт сокращённое описание статьи, полное читайте здесь. Двигатель, вращающий шпиндель жесткого диска (или CD/DVD-ROM) — это обычный синхронный трёхфазный мотор постоянного тока. Промышленность выпускает готовые однокристальные драйверы управления, которым к тому же не требуются датчики положения ротора, ведь в роли таких датчиков выступают обмотки двигателя. Микросхемы управления трёхфазными двигателями постоянного тока, которым не требуются дополнительные датчики, являются TDA5140; TDA5141; TDA5142; TDA5144; TDA5145 и конечно же LB11880.
Двигатель, подключенный по указанным схемам, будет разгоняться до тех пор, пока либо не наступит предел по частоте генерации VCO микросхемы, которая определяется номиналами конденсатора подключенного к выводу 27 (чем его ёмкость меньше, тем выше частота), либо двигатель не будет разрушен механически. Не следует слишком уменьшать ёмкость конденсатора подключенного к выводу 27, так как это может затруднить пуск двигателя. Регулировка скорости вращения производится изменением напряжения на выводе 2 микросхемы, соответственно: Vпит — максимальная скорость; 0 — двигатель остановлен. От автора имеется и печатка, но я развёл свой вариант, как более компактный.
Позже пришли заказанные мной микросхемы LB11880, запаял в две готовые платки и провёл тест одной из них. Всё прекрасно работает: скорость регулируется переменником, обороты определить трудно но думаю до 10000 есть точно, так как двигатель гудит прилично.
В общем, начало положено, буду думать куда применить. Есть мысль сделать из него такой же точильный диск как у автора. А сейчас тестировал на куске пластика, сделал типа вентилятора, дует просто зверски хоть на фото даже не видно как он крутится.
Поднять обороты выше 20000 можно переключением ёмкостей конденсатора С10 и подачей питания МС до 18 В (18,5 В предел). На этом напряжении у меня мотор свистел капитально! Вот видео с питанием в 12 вольт:
Видео подключения мотора HDD
Подключил ещё двигатель от CD, погонял при питании 18 В, поскольку в моём внутри шарики, разгоняется так, что прыгает всё вокруг! Жаль не отследить обороты, но если судить по звуку то она очень большая, до тонкого свиста. Куда применять такие скорости, вот вопрос? Приходит на ум мини болгарка, настольная дрель, точильный станок. Применений много — думайте сами. Собирайте, тестируйте, делитесь впечатлениями. В интернете есть множество обзоров с применением данных двигателей в интересных самодельных конструкциях. В интернете видео видел, там кулибины с этими моторами помпы мастерят, супер вентиляторы, точилки, покумекать можно куда такие скоростя применить, мотор тут разгоняется свыше 27000 оборотов. С вами был Igoran.
Форум по обсуждению материала КАК ПОДКЛЮЧИТЬ МОТОР ОТ DVD ИЛИ HDD
Подключение двигателя 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 А. Транзисторы необходимо установить на теплоотвод.
На видео можно увидеть процесс запуска на разных скоростях, а также оптический датчик оборотов, который я приделал для измерения скорости вращения.
Феерическая расстановка точек над HDD motors. Часть 1
Всем привет! В статье попытаюсь разъяснить основные способы управления двигателем HDD и сходными с ним электрическими машинами.
Введение
1 ом.
Алгоритмы управления
Забегая далеко вперёд скажу — идеальным случаем для нашей машины является подача на её фазы 3х синусоид сдвинутых на 120 градусов (как в обычных электрических сетях). Однако в некоторых случаях такая «идеальность» попросту не нужна.
1 способ.
Простой перебор фаз. Необходимо 3 силовых ключа, которые подключают фазы к источнику в порядке АВ-ВС-СА. Такой способ чаще всего встречается в интернете у самодельщиков.
Достоинства :
— простота;
— малое кол-во силовых ключей (3 шт);
— простота организации о\с по противоЭДС;
— меньший вес\габариты, что важно в rc моделизме.
Недостатки:
— большой ток через ключи;
— электромагнитный момент пульсирует и далёк от идеала (насыщен высшими гармониками). В итоге – стабильность работы без о\с низкая. В максимальной скорости также проигрывает другим способам управления.
На рис. ниже — фазные напряжения.
2 способ.
Перебор фаз с формированием 6-ти базовых векторов. Наткнулся на него в апноуте ST microelectronics [1]. Является улучшением 1-го способа (или ухудшением 3-его). Преимущества и недостатки смешаны. Рассматривать не будем, т.к. не понимаю почему имея 6 ключей не использовать способ, приведенный ниже О_о
3 способ.
Формирование 6-ти базовых векторов. Необходимо 6 ключей. В каждый момент времени работает 3 из них. Всего существует 8 положений этих ключей, 6 векторов (формируют синусоиды) + 2 нулевых вектора (открыты все ключи верхнего или нижнего плеча). Нулевые векторы нужны для более продвинутых систем с ШИМ.
Достоинства :
— простота;
— форма напряжения питания более приближена к синусоиде;
— как следствие предыдущего вывода – меньший нагрев;
— более стабилен в работе без о\с;
Недостатки :
— поле машины всётаки не круговое, как должно быть;
— ток машины немного выше чем в идеальном случае.
Фазные напряжения ниже.
4 способ.
Промышленный стандарт – добавляем к предыдущему способу №3 ШИМ модуляцию между базовыми векторами, для того чтобы получить любой вектор окружности вместо 6ти.
Достоинства :
— здесь всё практически идеально. Ток минимален, магнитное поле круговое. Момент при этом не пульсирует
Недостатки :
— Для организации полноценного привода с ШИМ 6ти векторов и о\с по положению необходим DS процессор.
Так выглядит ШИМ модуляция некоего привода ТРИОЛ АТ [2].
5способ.
Векторное управление. В силу своей сложности рассматривать не будем.
В данном случае популярный на западе Field Oriented Control — контроль по полю, конкуренцию которому позже составил DTC — Direct torque control (прямое управление моментом). Остальные способы векторного управления (по вектору потокосцепления статора, ротора. ) в промышленности я не встречал
Обратная связь по положению.
Необходимо сказать, что привод с датчиковым управлением всегда более предпочтителен чем привод с управлением без датчиков. Это касается и векторного управления асинхронными машинами и систем управления двигателем постоянного тока. Однако все пром производители стремятся исключить датчики, как лишний механический элемент.
Принцип используемой связи по противоЭДС: нам необходимо поймать момент когда полюс магнита проходит через фазу. Упрощённо это значит что ротор машины прошёл ровно половину пути и нам необходимо скорректировать (задержать) включение ключей на соответствующее время. К примеру: в способе №1 это время равно половине времени на включение ключей. В 3ем – оно равно времени работы одного базового вектора.
Технические аспекты.
Используя способ №1 необходимо на один вход компаратора подать половину питающего напряжения инвертора. На второй вход завести фазу и ловить момент когда выход компаратора изменится. Это опять же пром стандарт, который используется и в 4ом способе управления как одна из составляющих ШИМ. Кому интересны другие способы — прошу пройти по ссылке
На этом всё. В следующей статье расскажу о попытках реализовать разные способы управления и поделюсь схемами и исходниками к готовому устройству
ps Моя первая статья здесь, прошу сильно не критиковать
Комментарии ( 98 )
Для организации полноценного привода с ШИМ 6ти векторов и о\с по положению необходим DS процессор.
Так ли он необходим? А что мешает сделать систему трех шимованых синусов в виде обычной таблицы, скажем с точностью до градуса. Тогда мы получим небольшой (360*3) расход памяти и бешеную скорость формирования этого самого тройного синуса.
Осталось только отслежить положение двигателя. Тут либо датчики Холла, либо какие другие ухищрения. И получаем в результате ОС.
Тут ШИМ из векторов — к примеру 1ый и 2ой вектор — первое положение(ключи 1,2,6) второе — ключи (1,5,6) — их модулируем. Потом переходим к следующему сектору, 2-3 векторы. + туда добавляем нулевые вектора (1,3,5) и (2,4,6) и для обработки о\с, кнопок БЫСТРЕЕ, МЕДЛЕННЕЕ и тд времени нет с единственным условием. Мы пытаемся раскрутить его на максимальные обороты с частотой синусоиды 300-500 Гц и дальше 😉
если брать привод как в промышленности 0-50 Гц, то вполне может хватить и ресурса mega.
теперь понял что вы предлагаете. Но мне трудно представить как это возможно реализовать. У нас есть 6 ключей, с их помощью мы формируем сразу 3 синусоиды. А как в вашем случае?
ps существуют инверторы из 9 ключей. Там синусоида более «синусоидальная»
Ну, во первых, для современных Мег 6 аппаратных шим генераторов в порядке вещей. А для STM32 так и все 12 не проблема. Так что создать таблицу с шимами это совсем просто.
Во-вторых, нам не нужно 6 шим сигналов. достаточно только трех. Ведь у нас не просто 6 ключей, а 3-полумоста, по одному на фазу. Т.е. каждую пару ключей (верхнюю-нижнюю) можно дрыгать одним шимом, главное соблюдать dead time. Тут автомотив версии контроллеров нам в помощь. У них это аппаратно. По шиму на каждую фазу (полумост) со сдвигом на 120 градусов и вот мы получаем трехфазную систему напряжений, соотношение напряжения фаз дает нам вектор. Ну и гоняя по таблице мы можем выбрать любое значение ШИМ с точностью хоть до долей градуса, главное рассчитать таблицу правильно.
Тут правда один минус все же есть. Приходится дрыгать сразу два ключа в верхнем и нижнем плече, что несколько увеличивает потери.
Что Вы понимаете под дополнительными схемными решениями? Внешние компараторы?
У микрочипа тоже есть апноуты www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2819 например, по 18-м пикам.
Хотя 33-и намного вкуснее.
Микрочип кстати в этом преуспел, согласен!
мне понравились ихние апноуты по FOC, очень хорошо расписаны
Подключал по такой схеме: www.arduino.cc/en/Reference/StepperUnipolarCircuit
Прощупывал обмотки и обнаружил две группы:
жёлтый—зелёный, сопротивление 1.1 КОм, средний провод синий (делит на две группы с равными полусопротивлениями)
коричневый—розовый провода, сопротивление 6 Ом (отводной красный делит на две группы по 3 Ом)
Такое случается на униполярнике? Я почему-то думал, что у обмоток должны быть одинаковые сопротивления.
На крепёжном диске двигателя видна ещё какая-то микросхема, может это схема управления и для неё нужен специальный интерфейс?
Есть еще самый простой и понятный способ — фозосдвигающая цепь и 1-но фазный ШИМ.
А мануалы от ST, лучше читать с предварительной академической подготовкой. Они там такой бредятину порой пишут, передергивая основы и здравый смысл. Взять хотя бы их недавно опубликованную PMSM-FOC библиотеку. Кроме подмены аббервеатур ничего нового и тщательно маскируют недостатки и возможности своей софтины. Чего стоит толькоутверждение что датчик холла обеспечивает «точное позиционирование».
Бред от ST короче.
Какой-то нанятый обкуренный индус с изучением объектного кода развлекался без понимания сути и практики в предмете.
В авиамоделях используют 6 ключей… маломощные на N и P мосфетах с прямым управлением от МК для нижних и через транзюк+резюк — для верхних
потом китайци до этого же контроллера прикручивают ir2103 и получаем уже 6 одинаковых полевиков вверху внизу + дедтайм + защиты от одновременного открытия сквозняка
НО у них всех используется 2 способ а перемещение магнитой ловят смещением фазы реальной и фазы — суммы напруг на концах АВС — просто резисторами — заводят на компаратор или АЦП и вуаля
самый простой на 20-30 ампер контроллер стоит 6-8 баксов
смысла играться с такими вещами не вижу
далее
перематывать ХДД моторчики не советую
там очень слабый магнит
есть маленькая проблемка
когда полюс вентиля одной из обмоток перенасыщяется (намагничивается) больше чем магнит который к нему аналогичным полусом повёрнут — то вместо отталкиваться — магнит к нему притягивается — это называется срыв… потому что соседние катушки сами себе генерируют землю и получается что контроллер уходит в килогерцовые частоты думая что ротор за ним успевает а в реальности он стоит и гудит… свистит… ну и через 2-3 секунды обмотки обгорают так как КЗ
я пробывал перематывать и сидюковые моторки и моторки от хдд 5.25″ — фигня полная…
от ХДД кстати в родном исполнении и 24 вольтах питания можно раскрутить до 1600 оборотов и при этом иметь крутящий момент очень серьёзный… но… нужно следить ибо если оставить на максимуме модуляцию(типа газ — заполнение ШИМом верхних ключей которые в данный момент по таблице должны быть открыты) — возможен срыв ибо магнитики в ХДД очень никакие… вот когда их заменил неодимовыми шариками… уууу… отогда крутяк… можно мини болгарку сделать или ещё что — по крайней мере рукой остановить за шпиндель выходной под диск — не мог рука горит…
я же сейчас мучаю СТМVLdiscovery чтоб заставить его красиво и без глюков выдавать ШИМом высокочастотным красивые синусоиды размах которых будет контроллировать ручка газа и ток через обмотки
делаю электромопед
без контроля тока я уже катался… мотор у меня 2500 ватт
100 ампер 24 вольта
взял обычный авиамодельный хороший контроллер с драйверами и четкими таймингами — не упрощенный китайский вариант
усилил выходную часть IRF3205
посеребренные провода 2800 жильные специальные… золотые разьёмы выдерживающие 250 ампер запросто…
аккумулятор с номинальной токоотдачей 200 ампер…
короче без контроля тока прокатался я до первой выбоины когда ручка газа дрогнула…
мотора — это 8 витков проволки 10мм квадратных… тоесть полное КЗ… если б не магниты — один раз отвертку туда заосало — ели отодрал… короче бахнуло так что у всех транзисторов и драйверов посрывало крыши в прямом смысле слова…
но всётаки он ехал… и очень непривычно…
теперь вот хочу сделать свой умный и быстрый контроллер…
Ах да… контроля положения ротора нет… по обратке и смещению реального нуля и виртуального из фаз… срыва синхры не наблюдал ни разу даже на этом авиамодельном контроллере а там мега 8-я на 8 мегагерцах клокает… не сильно она шустрая… но хватает чтоб до 10 000 оборотов раскрутить мотор(2 килогерца на каждой фазе) 🙂
Так что жду Вашу статью об алгоритмах… пока что у меня затык с моментом старта когда надо в режиме шаговика его клацать это раз и… проблема с оптимальными таймингами… на низких оборотах клацаю таблицу векторов по проходу виртуальной фазы через ноль — холостой ход 0.4 ампера поднимаюсь выше 4000 — ток до 20 ампер подскакивает — я явно торможу сам себя… но как китайцы в мегу 8-ю засунули какой-то алгоритм который любые моторы крутит на любой скорости и показывает 0.3 ампера холостого току… я ума не приложу… я не делаю на данный момент синусоид красивых… мне хватает второго способа…
хотят по идее на малых газах и на максимальном газу это не эффективно и сильно подогревает транзюки(хотя 4 минты на 100 процентах газа и 90 амперах сделали еле теплыми линейку верхних транзюков(радиатор без вентилятора от пня 4-го 2 гигагерцного… до 50 ватт отводимого тепла с вентилятором при разнице 40 градусов)мой же радиатор нагрелся до 30-35 не больше… ну и мотор конечно нагрелся… градусов до 70… но у него это нормал… ему обдув… а точнее жостий продув нужен… его КПД 92 % при 50 амперах… а вот при 100 амперах уже 80… потому он кочегарить будет… но… в пути только при разгоне давиш на полную… в основном пути я трачу примерно 15-20 ампер по фазе… при газе в 30%