Меню

Как подключить мотор hdd arduino

Феерическая расстановка точек над 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 Гц и дальше 😉

Читайте также:  Prology dvs 2135 как подключить

если брать привод как в промышленности 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 библиотеку. Кроме подмены аббервеатур ничего нового и тщательно маскируют недостатки и возможности своей софтины. Чего стоит толькоутверждение что датчик холла обеспечивает «точное позиционирование».

Какой-то нанятый обкуренный индус с изучением объектного кода развлекался без понимания сути и практики в предмете.

В авиамоделях используют 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%

Источник

Arduino.ru

Запустить мотор от жесткого диска

Как запустить мотор от жесткого диска с тремя пинами без драйвера юзая только ардуинку да транзисторы?

Облазил все, везде говорят мол шим, или у них мотор с 4-мя контактами, у меня то с тремя.

Там стоит трёхфазный бесколлекторный мотор (BLDC). Работает путём переключения фаз по очереди, ищи в гугле.

Искал, и много. Почти везде мотор с 4-мя контактами, или драйвер.

Я конечно могу запустить мотор на очень низких оборотов от самой ардуинки, и запускал. Но это не дело. 2-3 оборота в секунду это мало. Мотор то 7200

Искал, и много. Почти везде мотор с 4-мя контактами, или драйвер.

В жёстких дисках обычно такие и стоят. Там обмотка по схеме звезда (рис.1): один вывод общий и по одному выводу на каждую обмотку (всего четрые контакта). Есть ещё по схеме треугольник (рис.2), без общего вывода (всего три контакта)

Я конечно могу запустить мотор на очень низких оборотов от самой ардуинки, и запускал. Но это не дело. 2-3 оборота в секунду это мало. Мотор то 7200

Ищи как подключать и управлять бесколлектроными моторами по схеме треугольник, если только три вывода.

Походу я ошибся. В моторе с тремя выводами обмотка также по схеме звезда, просто общий не выведен наружу.

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

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

Читайте также:  Как подключить счетчик моточасов на дизельный двигатель

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

Чтобы мотор вышел на полные обороты и стабильно работал, обязательно должна быть обратная связь (для считывания положения ротора). Иначе на больших оборотах или при резком разгоне мотор может «срываться». Особенно если приложить усилие к ротору, т.к. слабый крутящий момент.

Странно конечно. По идее должно было заработать.

Ясно, а как дела обстоят с моторами от DVD ромов? На одном три пина, на другом 6, на третьем вообще пять. Через несколько дней будет l293d шилд. Им можно запустить? Или нафиг все это?

Да почти так же. Я встречал те же трехфазные бесколлекторные моторы. Кто-то говорил, что видел шаговый двигатель. Но там вроде датчики холла на плате уже стоят для обратной связи. Можно ещё глянуть мотор от флоппика.

От флоппика тоже есть, копил годами). Один совсем старый 5,25. А один 3.5. Сколько пинов не вспомню, но пять или больше, на 5,25 есть датчики

Через несколько дней будет l293d шилд. Им можно запустить?

Это я видел. Просто думал можно без контроллера как-нибудь, через транзисторы. Например мосфеты, у меня их 50 штук.

Ну можно, шесть мосфетов надо (три N-канальных + три P-канальных). Порядок переключения обмоток из поста #6, вторая ссылка.

И ещё про Dead time не забыть, чтобы не оказалось два одновременно включенных транзистора на одну обмотку. Иначе сквозной ток и транзисторы погорят.

Я выводил на полные обороты драйвером бесколлекторника, под нагрузкой обороты держало.

Я выводил на полные обороты драйвером бесколлекторника, под нагрузкой обороты держало.

Это ECS контроллером? Возможно потому что там обратная связь реализована.

Если я правильно помню, обратную связь можно сделать так: вывод обмотки, которая в данный момент времени не задействована подключается на АЦП и считывается наведённое напряжение на эту обмотку. И по нужному значению осуществляется переключение обмоток. Как-то так.

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

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

Источник

УПРАВЛЕНИЕ МОТОРОМ HDD ОТ ARDUINO

Обычно используют электронные переключатели для реверсирования тока в подобных бесколлекторных двигателях. В двигателях типа BLDC катушки намотаны на статоре, а ротор имеет постоянный магнит. Но следует отметить, что бесщеточный двигатель не может работать от обычного источника постоянного тока. Нужен контроллер (драйвер). Его функции выполняет стандартная Ардуино плата.

Выходы Arduino питают транзисторы Дарлингтона TIP122 и управляют тремя фазами электродвигателя. Каждая фаза контролируется с помощью своего контакта микросхемы.

Обычно моторчик жесткого диска имеет 3 фазы + 1 общую = 3 фазы с 4-мя проводами. Используйте мультиметр для проверки сопротивления в этих четырех точках схемы измерения. Общий вывод + катушка = 1 Ом. Катушка + катушка = 2 Ома.

Схема управления двигателем через Arduino

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

Внимание! К приводу подключена лента, не тяните ее, потому что внутри очень тонкие провода, которые подключены к катушкам двигателя. Предлагаем припаять дополнительные провода, как видно на фото.

Затем припаяйте удлинительные провода. Подключение к Arduino делаем по такой схеме:

Нужно 3 цифровых контакта для отправки сигнала, тут контакты 2, 3, 4.

Компоненты контроллера

Соедините всё как показано на рисунках.

Кодирование Ардуино

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

const int phase1pin = 2;
const int phase2pin = 3;
const int phase3pin = 4;
const int delayTime = 6000; // microsecs

void setup() <
Serial.begin(9600);
pinMode(phase1pin, OUTPUT);
pinMode(phase2pin, OUTPUT);
pinMode(phase3pin, OUTPUT);
>

void loop() <
switchStep(1);
switchStep(2);
switchStep(3);
>

void switchStep(int stage) <
switch(stage) <
case 1:
digitalWrite(phase1pin, HIGH);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 2:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, HIGH);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 3:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, HIGH);
delayMicroseconds(delayTime);
break;
>
>

Для данного двигателя от жесткого диска с 5400 об / мин использовалось напряжение 3,7 х 3 = 11,1 В. Минимальный период цикла = 1,3 мс, то есть он занимает около 1,3 х 2,25 х 2 = 5,85 мс для 1 об. Вы можете изменять значения в программе.

Источник