Запуск трехфазного двигателя от жесткого диска

3 083

Просмотрев видео работы этого двигателя, захотелось эту статью скопировать себе в архивчик. Какие обороты! Сам то я не разбираюсь в программировании, но кому-то и пригодится. Таких оборотов не выдаст ни один двигатель, разве что от формулы-1.

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

Подключение двигателя от жесктого диска
Двигатели из CD-ROM/DVD-ROM приводов выглядят так:

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

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

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

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

Подключение двигателя от жесктого диска

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


  1. #include <avr/io.h>
  2. #include <avr/interrupt.h>
  3. #include <stdio.h>
  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<<RXEN)|(1<<TXEN);
  53. UCSRB |= (1<< RXCIE);
  54. /* Set frame format: 8data, 2stop bit */
  55. UCSRC=0x86;//
  56. UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
  57. }
  58. void USART_Transmit( unsigned char data ) //
  59. {
  60. while ( !(UCSRA & (1<<UDRE)) ); //
  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. }

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

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

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

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

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

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

 

Оригинал здесь.

+1
Нравится схема? Поделитесь с другом.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

15 + пять =

Adblock
detector