Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/88: Рейтинг темы: голосов - 88, средняя оценка - 4.86
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008

Запуск бесколлекторного двигателя от hdd

06.08.2016, 16:32. Показов 17344. Ответов 20
Метки нет (Все метки)

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

Пробовал подавать импульсы последовательно(даже через регистры портов не помогает), что-то вроде синусоиды и всё равно не крутится. Вот этот код http://arrduinolab.blogspot.co... -post.html даёт примерно такой же результат. Кто знает, в чём может быть проблема?
Мосфеты IRFS640A.

P.S. без оптронов тоже самое.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2016, 16:32
Ответы с готовыми решениями:

Драйвер бесколлекторного двигателя
Здравствуйте, коллеги! Заказал себе бесколлекторный двигатель током 100А, но не заказал драйвер(электронную платку которая всем...

Регулятор оборотов бесколлекторного двигателя
Подкиньте пожалуйста схему регулятора оборотов(ESC) под авиамодельный бесколлекторник. Буду признателен, если получу еще и прошивку для...

Выбор мощного бесколлекторного двигателя
Добрый день, форумчане! Есть задача - телега должна тягать груз (30 кг) по ангару со скоростью 40 км/ч. Вся система похожа на...

20
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
06.08.2016, 22:38
Ищите по ключевым словам "Векторное управление электромотором"
Дал бы ссылки, но там не для ардуины
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
07.08.2016, 00:19  [ТС]
Так давайте, если там не ассемблер, пойму)
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
07.08.2016, 08:25
DevAlone,я чейто не понял
у тебя один ключ? на три фазы?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2016, 14:06
http://nnm.me/blogs/qwerty-off... ka-i-rele/

Только
трехфазный бесколлекторный мотор
Странно для меня звучит, там же вроде бы шаговик.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
07.08.2016, 14:24
Avazart, в HDD давно уже не используют шаговики
для головок, устройство чем то напоминающее динамик, катушка и магнит, раньше(очень давно использовали шаговики)
для кручения диска всегда использовали трехфазники, ход у них плавный, в отличии от шаговика
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2016, 14:25
Цитата Сообщение от ValeryS Посмотреть сообщение
Avazart, Avazart, в HDD давно уже не используют шаговики
для головок, устройство чем то напоминающее динамик, катушка и магнит, раньше(очень давно использовали шаговики)
для кручения диска всегда использовали трехфазники, ход у них плавный, в отличии от шаговика
Ну я не знаю, только для трехфазника нужен генератор трехфазного переменного напряжения.
Если же подавать прямоугольные импульсы чем это будет отличатся от шаговика?

Еще ссылка http://cvavr.ru/index.php/arti... ska!-quot;
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
07.08.2016, 14:34
Цитата Сообщение от Avazart Посмотреть сообщение
Ну я не знаю, только для трехфазника нужен генератор трехфазного переменного напряжения.
ну да
нормальные люди и подаютгенератор, ШИМ или DAC, плюс там еще обратная связь
А "Кулибины", все пытаются нештатные режимы пришпандорить
Цитата Сообщение от Avazart Посмотреть сообщение
Если же подавать прямоугольные импульсы чем это будет отличатся от шаговика?
а сгореть может обмотки то на другой ток расчитаны
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
07.08.2016, 17:14  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
у тебя один ключ? на три фазы?
Нет, у меня было 3 таких схемы, для каждой катушки и ардуиной я пускал ток сначала через первую катушку, потом через вторую, потом через третью. Сейчас собрал схему с 6 ключами, не используя среднюю точку, но пока всё равно не удаётся раскрутить.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
07.08.2016, 17:18
Вот теория (упрощенна) http://we.easyelectronics.ru/blog/robots/928.html
3
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
07.08.2016, 17:42
Цитата Сообщение от DevAlone Посмотреть сообщение
но пока всё равно не удаётся раскрутить.
и не получится
движку синусоида нужна, точнее три синусоиды со сдвигом на 120 градусов
через оптрон ты её не получишь
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2016, 17:49
При чем тут оптрон?
По ссылке выше, "по теории" там "пытаются" приблизится "к синусоиде" как можно ближе.
1
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
07.08.2016, 18:10  [ТС]
Цитата Сообщение от Витальич Посмотреть сообщение
Вот теория (упрощенна) http://we.easyelectronics.ru/blog/robots/928.html
Попробовал реализовать 2 варианта, вот один из них:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#define O1 2        // + на обмотку
#define O2 3
#define O3 4
 
#define I1 5        // - на обмотку
#define I2 6
#define I3 7
 
void setPosition(int pos);
 
void setup()
{
    pinMode(O1, OUTPUT);
    pinMode(O2, OUTPUT);
    pinMode(O3, OUTPUT);
 
    pinMode(I1, OUTPUT);
    pinMode(I2, OUTPUT);
    pinMode(I3, OUTPUT);
}
int pause = 200;
int position = 0;
void loop()
{
    setPosition(position++);
    if (position > 5)
        position = 0;
 
    delay(pause);
    pause-=1;
    if (pause < 10)
        pause = 10;
}
 
void setPosition(int pos)
{
    switch (pos)
    {
    case 0:
        PORTD &= B00000011;
        PORTD |= B01000100;
        /*digitalWrite(O1, HIGH);
        digitalWrite(O2, LOW);
        digitalWrite(O3, LOW);
 
        digitalWrite(I1, LOW);
        digitalWrite(I2, HIGH);
        digitalWrite(I3, LOW);*/
        break;
    case 1:
        PORTD &= B00000011;
        PORTD |= B10000100;
        /*digitalWrite(O1, HIGH);
        digitalWrite(O2, LOW);
        digitalWrite(O3, LOW);
 
        digitalWrite(I1, LOW);
        digitalWrite(I2, LOW);
        digitalWrite(I3, HIGH);*/
        break;
    case 2:
        PORTD &= B00000011;
        PORTD |= B10001000;
        /*digitalWrite(O1, LOW);
        digitalWrite(O2, HIGH);
        digitalWrite(O3, LOW);
 
        digitalWrite(I1, LOW);
        digitalWrite(I2, LOW);
        digitalWrite(I3, HIGH);*/
        break;
    case 3:
        PORTD &= B00000011;
        PORTD |= B00101000;
        /*digitalWrite(O1, LOW);
        digitalWrite(O2, HIGH);
        digitalWrite(O3, LOW);
 
        digitalWrite(I1, HIGH);
        digitalWrite(I2, LOW);
        digitalWrite(I3, LOW);*/
        break;
    case 4:
        PORTD &= B00000011;
        PORTD |= B00110000;
        /*digitalWrite(O1, LOW);
        digitalWrite(O2, LOW);
        digitalWrite(O3, HIGH);
 
        digitalWrite(I1, HIGH);
        digitalWrite(I2, LOW);
        digitalWrite(I3, LOW);*/
        break;
    case 5:
        PORTD &= B00000011;
        PORTD |= B01010000;
        /*digitalWrite(O1, LOW);
        digitalWrite(O2, LOW);
        digitalWrite(O3, HIGH);
 
        digitalWrite(I1, LOW);
        digitalWrite(I2, HIGH);
        digitalWrite(I3, LOW);*/
        break;
    default:
        digitalWrite(O1, LOW);
        digitalWrite(O2, LOW);
        digitalWrite(O3, LOW);
 
        digitalWrite(I1, LOW);
        digitalWrite(I2, LOW);
        digitalWrite(I3, LOW);
        break;
    }
}
Но крутится как-то не плавно и всё равно не разгоняется. Эх, осциллограф бы..
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2016, 18:14
Для начало стоить научится рисовать схемы, что бы не вводить людей в заблуждение детскими каракулями.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
07.08.2016, 18:23
Цитата Сообщение от DevAlone Посмотреть сообщение
Но крутится как-то не плавно
я не разбираюсь в ардуино, но не вижу в коде где задаётся частота?
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
07.08.2016, 18:27  [ТС]
Цитата Сообщение от Витальич Посмотреть сообщение
где задаётся частота?
Вот тут:
C++
1
2
3
4
5
6
7
8
9
10
11
void loop()
{
    setPosition(position++);
    if (position > 5)
        position = 0;
 
    delay(pause);
    pause-=1;
    if (pause < 10)
        pause = 10;
}
Функция loop повторяется в вечном цикле, setPosition устанавливает состояния ключей, delay делает задержку текущего состояния на pause миллисекунд.
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
07.08.2016, 18:41  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Для начало стоить научится рисовать схемы, что бы не вводить людей в заблуждение детскими каракулями.

Лучше?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.08.2016, 20:22
DevAlone, Лучше, но нужно еще знать где какой вывод, т.е какое чередование это тоже может быть важным.
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
08.08.2016, 16:24  [ТС]
C++
1
2
3
4
5
6
7
#define O1 2        // + на обмотку
#define O2 3
#define O3 4
 
#define I1 5        // - на обмотку
#define I2 6
#define I3 7
В таком же порядке и на схеме, а переключать пытался по этой статье http://we.easyelectronics.ru/blog/robots/928.html 2-ой и 3-ий способ.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.08.2016, 16:27
DevAlone, какая у Вас частота получается?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2016, 16:27
Помогаю со студенческими работами здесь

Контроллер для бесколлекторного двигателя на DRV8301
Здравствуйте! Собрал схему для управления 600 Вт бесколлекторным двигателем FL86BLS125 по схеме предоставленной по ссылке: ...

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

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

Отключить питание двигателя вала HDD
Добрый день. Читаю гайды по восстановлению HDD (например при сбое микропрограммы). Иногда для обесточивания двигателя вала предлагают...

Контроллер трехфазного двигателя от 2.5" hdd
Привет, ищу простые схемы для запуска трехфазного двигателя от hdd 2.5&quot; Двигатель запускался при подаче на плату 5 вольт(usb), к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru