Как-то давно попалась мне на обозрение схема драйвера шагового двигателя на микросхеме 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 вольт:
Подключил ещё двигатель от CD, погонял при питании 18 В, поскольку в моём внутри шарики, разгоняется так, что прыгает всё вокруг! Жаль не отследить обороты, но если судить по звуку то она очень большая, до тонкого свиста. Куда применять такие скорости, вот вопрос? Приходит на ум мини болгарка, настольная дрель, точильный станок... Применений много - думайте сами. Собирайте, тестируйте, делитесь впечатлениями. В интернете есть множество обзоров с применением данных двигателей в интересных самодельных конструкциях. В интернете видео видел, там кулибины с этими моторами помпы мастерят, супер вентиляторы, точилки, покумекать можно куда такие скоростя применить, мотор тут разгоняется свыше 27000 оборотов. С вами был Igoran.
Форум
Обсудить статью КАК ПОДКЛЮЧИТЬ МОТОР ОТ DVD ИЛИ HDD
radioskot.ru
В жестких дисках, как правило, применяются трехфазные бесколлекторные двигатели. Обмотки двигателя соединены звездой, то есть получаем 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-х, как показано на схеме ниже.
В качестве питания я использовал нестабилизированный трансформаторный блок питания, с напряжением 11,7 В. Ток потребления в зависимости от скорости вращения колеблется в пределах 0,75 — 0,9 А. Транзисторы необходимо установить на теплоотвод.На видео можно увидеть процесс запуска на разных скоростях, а также оптический датчик оборотов, который я приделал для измерения скорости вращения.
radiolaba.ru
Как известно, каждый админ должен написать свой биллинг. Скажу больше: каждый линуксоид должен сделать своего боевого человекоподобного робота. ALL HAIL MEGATRON! ой. Для разработки столь грозного оружия, нам подойдут сломанные компоненты ПК. Например, жёсткие диски или оптические приводы — отличный источник моторчиков. Многие ошибочно полагают, что в жёстких дисках используются шаговые двигатели. Это не так. В современных жёстких дисках, для раскрутки шпинделя используются 3х-фазные моторы. В оптических приводах (CD-ROM, DVD-ROM, BD-ROM) используются моторы побольше.
Управлять такими моторами замкнув два контакта — не получится. Для того что бы раскрутить мотор в нужную сторону следует подавать импульсы в правильном порядке на обмотки мотора. Моторы в жёстких дисках и оптических приводах, отличаются друг от друга. Как правило, моторы оптических приводов снабжены датчиками хола. Эти датчики используются для определения текущего положения шпинделя. В моторах от жестких дисков таких датчиков, как правило, нет. Отсюда и разное количество контактов у мотора ЖД обычно 4 контакта, тогда как у мотора ОД — 11 контактов.
Для наиболее эффективного вращения, подавать импульсы на обмотки мотора следует с учётом текущего положения шпинделя. В случае с мотором от оптического привода — всё просто: есть обмотки, есть датчики положения. В случае же с моторами от жёстких дисков, ситуация несколько сложней. Для вычисления положения шпинделя, необходимо анализировать ЭДС на обмотках мотора. Делать контроллер для подобного мотора во-первых сложно, а во-вторых не нужно, потому что фирма Philips уже более 15 лет выпускает контроллер TDA5145. В контроллер интегрированы такие операции как: управление скоростью и направлением вращения, торможение. Цена контроллера невысока даже в дорогущем Чип-и-Дипе и составляет на сегодня 230 рублей за штуку. Кстати вот про российскую экономику. На ebay этот контроллер стоит 4.89$ и 5$ доставка в Россию. Т.е. при покупке более 2х контроллеров (2*4.89$ + 5$ = 14.78$ = 461.478 Руб) — выгоднее покупать за рубежом. Отечественный мелкий опт, который почти в 2 раза дороже международной розницы — умиляет. Но вернёмся к техническим аспектам, схема включения ниже:
Категории: Разное 12 Комментарии
Подписаться на комментарии
tamkovich.com
То о чем много спрашивают и никто толком не говорит. Разобрал жесткий диск, нарыл там двигатель интересной конструкции. Разобрать не получилось, да и особо не старался. Оказалось что есть такие двигатели, у которых три обмотки и которых необходимо как-то по особому питать чтобы они крутится начали.В чем прелесть спросите?
Ответ: столько оборотов в минуту из известных мне двигателей дает только движок от формулы 1 :-)Не зря трехфазные бесколлекторные двигатели нашли широкое применение в авиамоделизме.Стандартный бесколлекторный двигатель выглядит примерно так:Двигатели из CD-ROM/DVD-ROM приводов выглядят так:В интернете есть даже статьи по переделке бесколлекторного двигателя от CD-ROM для дальнейшего его применения в авиамоделизме.В переделку обычно входят:- перемотка другим проводом(тоньше или толще диаметром),- изменение схемы намотки (звезда или треугольник),- замена обычных магнитов на ниодимовые.После чего трехфазный двигатель приобретает дополнительные обороты и мощность.
Я в эксперименте использовал обычный бесколлекторный двигатель от HDD привода, виглядит он так:Предварительно конечно лучше закрепить его на чем-то, я использовал корпус от того самого HDD привода.
Сам двигатель, который я использовал имеет четыре вывода, что говорит о том, что схема намотки у него в виде звезды с отводом от центра, то есть что-то примерно такое:
Схема управления простая, и состоит из не большого числа элементов. В виде управляющего устройства использован микроконтроллер ATmega8. Схема устройства показана на рисунке:
В схеме использованы драйверы полевых транзисторов IR4427 и сами полевые транзисторы IRFZ44.Управляющая программа была написана не мною, автор Дмитрий(Maktep) за что ему отдельное спасибо.Как исключение программа написана на Си для CV-AVR.ПРограмма транслирована под компилятор WIN GCC.Частота кварца 8МГц, для устройств с связью по UART рекомендую использовать внешний кварц, так как при тактировании от внутреннего генератора могут появляться ошибки в виду его нестабильной работы при изменении температуры окружающей среды.
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
void USART_Init( unsigned int ubrr);
void USART_Transmit( unsigned char data );
char status,data;
char state;
unsigned int lvl=65530/4;
// USART Receiver interrupt service routine
ISR(USART_RXC_vect)
{
status=UCSRA;
data=UDR;
if (lvl<3000)
{ if (data=='+')
lvl--;
else
if (data=='-')
lvl++;}
else
{if (data=='+')
lvl-=lvl/500;
else
if(data=='-')
//if (lvl,/)
lvl+=lvl/500;
}
}
// Timer1 output compare A interrupt service routine
ISR(TIMER1_COMPA_vect)
{
switch (state)
{
case 0: PORTC=1; break;
case 1: PORTC=3; break;
case 2: PORTC=2; break;
case 3: PORTC=6; break;
case 4: PORTC=4; break;
case 5: PORTC=5; break;
}
if (state<5)
state++;
else
state=0;
}
void USART_Init( unsigned int ubrr)
{
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
UCSRB=(1<<RXEN)|(1<<TXEN);
UCSRB |= (1<< RXCIE);
UCSRC=0x86;//
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit( unsigned char data ) //
{
while ( !(UCSRA & (1<<UDRE)) ); //
UDR = data; //
}
int main(void)
{
PORTC=0x00;
DDRC=0x07;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0xFF;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;
USART_Init (8);//28800 4MHz
USART_Transmit('O');
USART_Transmit('k');
USART_Transmit('!');
USART_Transmit(0x0d);
USART_Transmit(0x0a);
// Global enable interrupts
sei();
while (1)
{
OCR1A=lvl;
};
}
Скачать проект Win AVR
Алгоритм работы построен так, что при нажатии на клавиатуре кнопки "+" передается по UART в микроконтроллер, который увеличивает скорость коммутации обмоток. И при нажатии на кнопку "-" все выполняется наоборот, то есть обороты двигателя уменьшаются. Для работы устройства дополнительно понадобится UART-RS232 конвертер.
Эксперимент показал что при данной программе и данной схеме включения можно разогнать двигатель до приличных оборотов, точное число не известно, думаю в пределах 30 000 оборотов в минуту. Но к сожалению сила двигателя недостаточная для раскручивания пластикового пропеллера, верней с пропеллером двигатель набирает обороты, но при нагрузке происходит сбой и остановка двигателя.
Для избежания данного недостатка применяются датчики Холла, устройства контролирующие положение ротора бесколлекторного двигателя. Это сделано для того, чтобы импульс на обмотку двигателя подавать именно в тот момент когда ротор проходит конец обмотки, то есть для смещения момента силы ближе к концу прохождения сектора обмотки. Это даст прирост мощности двигателя и он не будет глохнуть при нагрузках.
Видео работы устройства:
В видеоролике показано как я закрепил два кусочка пластика вырезанных из телефонной карточки в виде лепестка и прикрученных к ротору двигателя.
В планах попробовать применить ШИМ для коммутации обмоток. Рассчитываю на повышение мощности, улучшение характеристик разгона двигателя (в частности скорости разгона), повышение КПД.
avrlab.com
Схема |
Ничего сложного в данной схеме нет, резисторы R1-R3 необходимы если у двигателя нет общей точки (это был как раз мой случай), Vp и VMot я соединил вместе, питание подаю в пределах 6-12V. Двигатель должен быть с достаточно высокоомными обмотками (между фазами должно быть примерно 6 Ом или более) иначе микросхемка может сгореть.
Для доработки был взят стандартный 80мм куллер.
Для начала высверливаем середину с куллера:
Убираем лишнюю пластмассу с креплений, как можно точнее сверлим три маленьких отверстия крепления самого двигателя, устанавливаем плату драйвера на термоклей, крепим провода термоклеем (на максимальных оборотах он их может всосать и порубать, так-же как и мой фотоприемник для TV-тюнера):
Устанавливаем решетки, так как максимальные обороты были порядка 9000 об./мин. если не больше.
doommen.blogspot.com