Распиновка двигателя жесткого диска – Как подключить моторчик от жёсткого диска к источнику питани

КАК ПОДКЛЮЧИТЬ МОТОР ОТ 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

radioskot.ru

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

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

Ответ: столько оборотов в минуту из известных мне двигателей дает только движок от формулы 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.  

  5. void USART_Init( unsigned int ubrr);

  6. void USART_Transmit( unsigned char data );

  7.  

  8. char status,data;

  9. char state;

  10. unsigned int lvl=65530/4;

  11.  

  12. // USART Receiver interrupt service routine

  13. ISR(USART_RXC_vect)

  14. {

  15. status=UCSRA;

  16. data=UDR;

  17. if (lvl<3000)

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

  19. lvl--;

  20. else

  21. if (data=='-')

  22. lvl++;}

  23. else

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

  25. lvl-=lvl/500;

  26. else

  27. if(data=='-')

  28. //if (lvl,/)

  29. lvl+=lvl/500;

  30. }

  31. }

  32.  

  33. // Timer1 output compare A interrupt service routine

  34. ISR(TIMER1_COMPA_vect)

  35. {

  36. switch (state)

  37. {

  38. case 0: PORTC=1; break;

  39. case 1: PORTC=3; break;

  40. case 2: PORTC=2; break;

  41. case 3: PORTC=6; break;

  42. case 4: PORTC=4; break;

  43. case 5: PORTC=5; break;

  44. }

  45.  

  46. if (state<5)

  47. state++;

  48. else

  49. state=0;

  50. }

  51.  

  52.  

  53. void USART_Init( unsigned int ubrr)

  54. {

  55. /* Set baud rate */

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

  57. UBRRL = (unsigned char)ubrr;

  58. /* Enable receiver and transmitter */

  59. UCSRB=(1<<RXEN)|(1<<TXEN);

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

  61.  

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

  63. UCSRC=0x86;//

  64. UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

  65. }

  66.  

  67. void USART_Transmit( unsigned char data ) //

  68. {

  69. while ( !(UCSRA & (1<<UDRE)) ); //

  70. UDR = data; //

  71. }

  72.  

  73.  

  74. int main(void)

  75. {

  76. PORTC=0x00;

  77. DDRC=0x07;

  78.  

  79. // Timer/Counter 1 initialization

  80. // Clock source: System Clock

  81. // Clock value: 8000,000 kHz

  82. // Mode: CTC top=OCR1A

  83. // OC1A output: Discon.

  84. // OC1B output: Discon.

  85. // Noise Canceler: Off

  86. // Input Capture on Falling Edge

  87. // Timer1 Overflow Interrupt: Off

  88. // Input Capture Interrupt: Off

  89. // Compare A Match Interrupt: On

  90. // Compare B Match Interrupt: Off

  91. TCCR1A=0x00;

  92. TCCR1B=0x09;

  93. TCNT1H=0x00;

  94. TCNT1L=0x00;

  95. ICR1H=0x00;

  96. ICR1L=0x00;

  97. OCR1AH=0xFF;

  98. OCR1AL=0xFF;

  99. OCR1BH=0x00;

  100. OCR1BL=0x00;

  101.  

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

  103. TIMSK=0x10;

  104.  

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

  106. USART_Transmit('O');

  107. USART_Transmit('k');

  108. USART_Transmit('!');

  109.  

  110. USART_Transmit(0x0d);

  111. USART_Transmit(0x0a);

  112.  

  113. // Global enable interrupts

  114. sei();

  115.  

  116. while (1)

  117. {

  118. OCR1A=lvl;

  119. };

  120. }

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

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

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

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

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

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

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

avrlab.com

Подключение двигателя HDD к микроконтроллеру | RadioLaba.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-х, как показано на схеме ниже.

Прошивка МК и исходник + файл проекта Proteus_7.7

В качестве питания я использовал нестабилизированный трансформаторный блок питания, с напряжением 11,7 В. Ток потребления в зависимости от скорости вращения колеблется в пределах 0,75 – 0,9 А. Транзисторы необходимо установить на теплоотвод.
На видео можно увидеть процесс запуска на разных скоростях, а также оптический датчик оборотов, который я приделал для измерения скорости вращения.

Последние записи:

radiolaba.ru

О некоторых аспектах ремонта платы электроники жесткого диска

Здравствуйте, уважаемые хабравчане! Это первая публикация в недавно открытом корпоративном блоге компании “Хардмастер”, специализирующейся на профессиональном восстановлении данных с накопителей. И с вами я, ведущий инженер Артем Макаров aka Robin. В этом блоге я и мои коллеги в меру сил будем стараться выкладывать материалы, которые смогут реально помочь всем желающим самостоятельно справляться с задачами по ремонту вышедших из строя девайсов и восстановлению информации с них.

Одной из распространенных причин выхода из строя жестких дисков являются проблемы с платой электроники.


(в простонародье это называют контроллером HDD, что конечно же некорректно)

И мы начинаем цикл публикаций по обзору поломок плат HDD и методов их устранения. Подписывайтесь и следите за обновлениями!

“Он сказал — Поехали!” (с)

Поломки плат можно условно разделить на электромеханические и логические. Про логические речь зайдет попозже, ну а безусловным лидером первых являются выгорающие защитные элементы в цепи питания, что обусловлено так называемым тиристорным эффектом БП, — ситуацией, когда при включении\выключении питания отпираются верхние и нижние ключи и происходит резкий рост тока потребления, что приводит к “пробою” защитных элементов жесткого диска, после чего те либо “звонятся” на КЗ, либо уходят “в обрыв”.

Проявляться такая неисправность может следующим образом:

  • При включении ПК с подключенным к нему “сгоревшим” HDD, компьютер не включается, либо совсем не реагируя на нажатие кнопки питания, либо кратковременно стартуя и тут же выключаясь. То же верно и при подключении к таком диску отдельно разъема питания от внешнего БП
  • При подаче питания на жесткий диск, тот не проявляет никаких признаков разумной жизни. Не вращается шпиндельный двигатель, и если приложить к гермоблоку простое человеческое ухо, то не слышно никаких шумов, писков и т.п. А если такой диск подключить к АТА терминалу (функционал доступен в популярных диагностических продуктах mhdd и victoria) и подать питание, то регистры не будут активны.

Найти “слабое звено” не представляет труда. Даже если вы никогда не видели той или иной платы — все они устроены по сходным принципам и TVS-диоды, равно как и защитные SMD предохранители, будут гнездиться неподалёку от разъема питания. С помощью мультиметра можно прозвонить эти элементы и выявить неисправный.


TVS-защитные диоды: при попадании на них импульса больше заданного, спекают анод и катод и тёмная сторона силы уходит на массу.

Дальше, если речь идет о TVS-защитных диодах, то выявив “сгоревший” элемент его можно заменить. Лучше, и по-православному, — взять такой же, заведомо исправный. Но такая возможность есть не всегда. В нашей многолетней практике мы руководствуемся простым правилом для такого рода замены — взять произвольную плату от Seagate 3,5” 7200.7-12, WD 3,5” (любой SATA) или Samsung 3,5” SATA\IDE. Отыскать по нужной цепи (+5 или +12 V) внешне похожий, и менять на него.

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

Кроме того, впаяв нужные элементы вместо сгоревших прежде чем прикручивать плату к гермоблоку и подавать питание, настоятельно рекомендуется сделать прозвонку по цепям «+5 — земля» и «+12 — земля», а так же внимательно осмотреть остальные элементы на плате HDD на предмет визуальных следов аццкого пламени. В противном случае вновь запаянные детальки при включении как минимум сгорят сами а как максимум — прогорит процессор или коммутатор в гермозоне. Кстати, для дополнительного ознакомления с предметом публикации желающие могут почитать краткий обзор устройства жесткого диска, чтобы лучше понимать терминологию.


Проверяем не только защитные диоды около разъема питания (вверху) но и остальные элементы


Вот пример платы от HDD Samsung, где пользователь решил самостоятельно устранить поломку, впаяв перемычку, и сжег процессор на PCB.

Если без диодов накопитель на свой страх и риск запустить можно, то без SMD предохранителей диск работать не будет. Взять замену можно с другой платы, и для этих целей отлично подходят Вестерны, — на их платках много вкусной и полезной SMD мелочёвки “без ГМО”. Наиболее часто такая защита встречается на платах от винчестеров форм-фактора 2,5″, т.н. «ноутбучных»:


Отмечены защитные элементы на PCB HDD Toshiba

Следующая проблема — это выгорание так называемой “крутилки”, она же “крутилка-шевелилка” она же микросхема предусиления\коммутации. Вот примеры:

Выявить причину визуально никаких проблем не составляет. А если кому то не повезло со зрением, то такую поломку и по характерному запаху найти можно. Проблемка позаковыристее сгоревшего трансила. Для ее устранения в ряде случаев можно перепаять м\с взяв с диска-донора, но зачастую микруха выгорает поджигая вокруг себя проводники, сплавляя SMD-обвязку и т.п.

Поэтому, как для ремонта, так и для вытаскивания архива фоток любимого кота Барсика — проще, и пожалуй правильнее, будет поменять плату электроники целиком. Как это делать, какие подводные камни могут ожидать на этом этапе у разных производителей и семейств, мы расскажем вам в одной из следующих публикаций.

habr.com

Как запустить двигатель винчестера 🚩 двигатель от моторки 🚩 Авто 🚩 Другое

Автор КакПросто!

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

Статьи по теме:

Инструкция

Обесточьте винчестер.

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

Взяв лупу и фонарь, безошибочно перепишите маркировку этой микросхемы.

Введите в поисковую систему следующую строку: chipname datasheet, где chipname — марка микросхемы. Найдите в справочном листке на микросхему расположение вывода под названием SPNENAB, spindle enable или аналогичным.

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

Возьмите резистор сопротивлением в 1 килоом. На тонких изолированных проводниках (чтобы не повредить плату и микросхему) присоедините отпаянные вывод через этот резистор с линией питания +5 В. Исключите возможность любых коротких замыканий. Подайте на жесткий диск питание обычным образом. Убедитесь, что двигатель больше не останавливается, даже если держать его включенным пятнадцать и более минут.

Если вам необходимо включить двигатель винчестера отдельно от его корпуса, снимите плату, двигатель и диски. При откручивании винтов, крепящих двигатель, может потребоваться сила. Отпаяйте шлейф, соединяющий плату с двигателем, после чего замените его на набор обычных проводов. Оставьте схему соединений такой же, какой она была при использовании шлейфа. Закрепите двигатель и плату так, как вам удобно. Если вам необходимо питать схему одним напряжением в 12 В, получите из него второе, равное 5 В, при помощи стабилизатора 7805, установленного на теплоотводе и дополненного блокирующими конденсаторами.

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

Обратите внимание

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

Совет полезен?

Статьи по теме:

Не получили ответ на свой вопрос?
Спросите нашего эксперта:

www.kakprosto.ru