Как подключить моторчик от жесткого диска


Запускаем трехфазный двигатель от HDD (контроллер бесколлекторного двигателя)

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

Ответ: столько оборотов в минуту из известных мне двигателей дает только движок от формулы 1 :-) Не зря трехфазные бесколлекторные двигатели нашли широкое применение в авиамоделизме. Стандартный бесколлекторный двигатель выглядит примерно так:

Двигатели из CD-ROM/DVD-ROM приводов выглядят так: В интернете есть даже статьи по переделке бесколлекторного двигателя от CD-ROM для дальнейшего его применения в авиамоделизме. В переделку обычно входят: - перемотка другим проводом(тоньше или толще диаметром), - изменение схемы намотки (звезда или треугольник), - замена обычных магнитов на ниодимовые.

После чего трехфазный двигатель приобретает дополнительные обороты и мощность.

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

Сам двигатель, который я использовал имеет четыре вывода, что говорит о том, что схема намотки у него в виде звезды с отводом от центра, то есть что-то примерно такое:

Схема управления простая, и состоит из не большого числа элементов. В виде управляющего устройства использован микроконтроллер ATmega8. Схема устройства показана на рисунке:

В схеме использованы драйверы полевых транзисторов IR4427 и сами полевые транзисторы IRFZ44. Управляющая программа была написана не мною, автор Дмитрий(Maktep) за что ему отдельное спасибо. Как исключение программа написана на Си для CV-AVR. ПРограмма транслирована под компилятор WIN GCC.

Частота кварца 8МГц, для устройств с связью по UART рекомендую использовать внешний кварц, так как при тактировании от внутреннего генератора могут появляться ошибки в виду его нестабильной работы при изменении температуры окружающей среды.

  1. #include

  2. #include

  3. #include

  4. void USART_Init( unsigned int ubrr);

  5. void USART_Transmit( unsigned char data );

  6. char status,data;

  7. char state;

  8. unsigned int lvl=65530/4;

  9. // USART Receiver interrupt service routine

  10. ISR(USART_RXC_vect)

  11. {

  12. status=UCSRA;

  13. data=UDR;

  14. if (lvl<3000)

  15. { if (data=='+')

  16. lvl--;

  17. else

  18. if (data=='-')

  19. lvl++;}

  20. else

  21. {if (data=='+')

  22. lvl-=lvl/500;

  23. else

  24. if(data=='-')

  25. //if (lvl,/)

  26. lvl+=lvl/500;

  27. }

  28. }

  29. // Timer1 output compare A interrupt service routine

  30. ISR(TIMER1_COMPA_vect)

  31. {

  32. switch (state)

  33. {

  34. case 0: PORTC=1; break;

  35. case 1: PORTC=3; break;

  36. case 2: PORTC=2; break;

  37. case 3: PORTC=6; break;

  38. case 4: PORTC=4; break;

  39. case 5: PORTC=5; break;

  40. }

  41. if (state<5)

  42. state++;

  43. else

  44. state=0;

  45. }

  46. void USART_Init( unsigned int ubrr)

  47. {

  48. /* Set baud rate */

  49. UBRRH = (unsigned char)(ubrr>>8);

  50. UBRRL = (unsigned char)ubrr;

  51. /* Enable receiver and transmitter */

  52. UCSRB=(1<

  53. UCSRB |= (1<< RXCIE);

  54. /* Set frame format: 8data, 2stop bit */

  55. UCSRC=0x86;//

  56. UCSRC = (1<

  57. }

  58. void USART_Transmit( unsigned char data ) //

  59. {

  60. while ( !(UCSRA & (1<

  61. UDR = data; //

  62. }

  63. int main(void)

  64. {

  65. PORTC=0x00;

  66. DDRC=0x07;

  67. // Timer/Counter 1 initialization

  68. // Clock source: System Clock

  69. // Clock value: 8000,000 kHz

  70. // Mode: CTC top=OCR1A

  71. // OC1A output: Discon.

  72. // OC1B output: Discon.

  73. // Noise Canceler: Off

  74. // Input Capture on Falling Edge

  75. // Timer1 Overflow Interrupt: Off

  76. // Input Capture Interrupt: Off

  77. // Compare A Match Interrupt: On

  78. // Compare B Match Interrupt: Off

  79. TCCR1A=0x00;

  80. TCCR1B=0x09;

  81. TCNT1H=0x00;

  82. TCNT1L=0x00;

  83. ICR1H=0x00;

  84. ICR1L=0x00;

  85. OCR1AH=0xFF;

  86. OCR1AL=0xFF;

  87. OCR1BH=0x00;

  88. OCR1BL=0x00;

  89. // Timer(s)/Counter(s) Interrupt(s) initialization

  90. TIMSK=0x10;

  91. USART_Init (8);//28800 4MHz

  92. USART_Transmit('O');

  93. USART_Transmit('k');

  94. USART_Transmit('!');

  95. USART_Transmit(0x0d);

  96. USART_Transmit(0x0a);

  97. // Global enable interrupts

  98. sei();

  99. while (1)

  100. {

  101. OCR1A=lvl;

  102. };

  103. }

Скачать проект Win AVR

Алгоритм работы построен так, что при нажатии на клавиатуре кнопки "+" передается по UART в микроконтроллер, который увеличивает скорость коммутации обмоток. И при нажатии на кнопку "-" все выполняется наоборот, то есть обороты двигателя уменьшаются. Для работы устройства дополнительно понадобится UART-RS232 конвертер.

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

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

Видео работы устройства:

В видеоролике показано как я закрепил два кусочка пластика вырезанных из телефонной карточки в виде лепестка и прикрученных к ротору двигателя.

В планах попробовать применить ШИМ для коммутации обмоток. Рассчитываю на повышение мощности, улучшение характеристик разгона двигателя (в частности скорости разгона), повышение КПД.

»

avrlab.com

Ардуино. Подключаем двигатель жесткого диска и реле

В комментариях к предыдущим новостям звучали просьбы рассказать о подключении моторчиков из HDD и CD-приводов. Бонусом о том, что такое реле и как с ним работать.

--------------------------------------------

Мотор жесткого диска — это трехфазный бесколлекторный мотор. У него три обмотки, соединенные в звезду, из которой может быть выведен центральный провод.

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

После краткого теоретического введения можно начать собирать схему, используем знакомую из предыдущей новости микросхему — драйвер управления двигателями L293D. Контакты 2, 7 и 15 подключаем к портам ардуино (я использовал 5, 9 и 11), а выводы 3, 6 и 14 к обмоткам двигателя. Не забудьте подать на входы 1 и 9 высоки уровень (напряжение питания). Остальные выводы подключаются так же, как и в предыдущей новости.

Теперь загружаем скетч: int h=50; char c; int i; void setup() { Serial.begin(9600); pinMode(11, OUTPUT); //выводы устанавливаюся в режим выхода digitalWrite(11, LOW); //на выходе низкий уровень pinMode(9, OUTPUT); digitalWrite(9, LOW); pinMode(5, OUTPUT); digitalWrite(11, LOW); } void loop() { digitalWrite(5, LOW); //задаем активную обмотку digitalWrite(9, HIGH); digitalWrite(11, LOW); delay(h); //ждем h миллисекунд digitalWrite(5, LOW); //задаем активной следующую обмотку digitalWrite(9, LOW); digitalWrite(11, HIGH); delay(h); digitalWrite(5, HIGH); digitalWrite(9, LOW); digitalWrite(11, LOW); delay(h); if (Serial.available()>0) //ждем сигнал с последовательного порта { c=Serial.read(); if (c=='-') h=h-1; //уменьшаем время задержки если пришел '-' else h=h+1; //в противном случае увеличиваем Serial.println(h, DEC); //выводим время задержки } }

Подключаем, запускаем, УРА! Моточик крутится, но рывками, уменьшаем время задержки и движение становится плавнее. При маленьком значении h мотор "глохнет", придется раскручивать заново. Если используется источник питания 12в, то замените функцию delay на delayMicroseconds с соответствующей корректировкой значений, это позволит получить высокие обороты.

На самом деле такой мотор управляется тремя синусойдами, сдвинутыми на 120 градусов относительно друг друга, что можно попробовать реализовать с помощью ШИМ, но вследствие низкой частоты ШИМ самого Arduino скорее всего у Вас не получится добиться стабильного быстрого вращения.

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

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

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

В качестве примера подключение лампы накаливания:

Высокий уровень на 11 выводе ардуино зажгет лампу. Не используйте ШИМ вместе с реле, оно не может переключаться со столь высокой частотой.

nnm.me

Телеком/VoIP блог

Разное   

Как известно, каждый админ должен написать свой биллинг. Скажу больше: каждый линуксоид должен сделать своего боевого человекоподобного робота. 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 раза дороже международной розницы — умиляет. Но вернёмся к техническим аспектам, схема включения ниже:

Оставить отзыв

tamkovich.com

Подключение двигателя от жесткого диска (схема, видео)

Подключение двигателя от жесткого диска (схема, видео)

Иногда при изготовлении каких либо устройств их необходимо сначала раскрутить каким либо способом. Если обороты для этого должны быть существенными, то одним из простых способов - это использование двигателя от жёстких дисков! Можно взять любой ненужный или устаревший жёсткий диск в любом состоянии, лишь бы был цел двигатель!Далее в течении 20-30 минут (при наличии деталей) собирается простенькая схема:

и высокооборотистым двигетелем можно пользоваться.

Вот мой пример:

В данном видео используется двигатель с 4 выводпми (звезда), но тем же контроллером (при добавлении резисторов) можно раскручивать моторы и с 3-мя выводами (треугольник).При напряжении 13В в момент старта амперметр прыгает до 0,9 - 1А, а потом плавно опускается до показания 250 мА.Долго не крутил, но при кратковременных включениях (не более 5-10 минут) микросхема не греется вообще!

Удачи!

Автор: PReva

eurosamodelki.ru


Смотрите также