HDD бесколлекторный мотор и L293d
- Войдите на сайт для отправки комментариев
Пробую запустить мотор от винчестера.
Всё подключил. Мотор запускается и крутится 2-3 оборота в секунду. Мне нужны обороты до 10000 об\мин.
Помогите разобраться с таймингами. Пробовал постепенно уменьшать время между циклами. Не получается поднять обороты выше.
Код выкладываю.
int h=100;
int ms=16383;
char c;
int i;
void setup() {
int sensorPin = A0;
pinMode(10, OUTPUT); //выводы устанавливаюся в режим выхода
digitalWrite(10, LOW); //на выходе низкий уровень
pinMode(9, OUTPUT);
digitalWrite(9, LOW);
pinMode(8, OUTPUT);
digitalWrite(10, LOW);
}
void loop() {
int sensorPin = A0;
if (analogRead(sensorPin)==1023) {
h=h*0,98;
ms=ms*0,99;
}
digitalWrite(8, LOW); //задаем активную обмотку
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
// delay(h);
delayMicroseconds(ms); //ждем h миллисекунд
digitalWrite(8, LOW); //задаем активной следующую обмотку
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
// delay(h);
delayMicroseconds(ms);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
// delay(h);
delayMicroseconds(ms);
}
На "вскидку", на что обратить внимание:
Спасибо. Учту всё.
Только вот один нюанс. На выходах L293D всего лишь 0,7 вольта. А на транзисторах получил лишь 1,7 вольта. И это при постоянном +5В на управляющей ножке. Входное высокое напряжение 12В. Как так может быть? Присутствует просадка напряжения при работе? Кондер надо добавить да?
Попробовал подключить не через L293D, а прям через транзисторы. Подал на них 12В от системника, а управлял ими 5В с Ардуины. Итого 3 транзистора. Пока использую ручное пониже паузы, чтобы можно было находить оптимальную работу. Вывел на LCD дисплей текущую величину паузы. Мотор запускается ,а иногда дергается и требует толчка. ТАк вот, при снижении паузы с 13000 до 4900 мотор нормально работает. По звуку слышу срабатывание обмоток двигателя. Жужжат. Как тлько понижаю паузу еще на пару микросекунд как мотор останавливается. Словно мощности ему не хватает набрать дальнейших оборотов для соотвествия новым паузам между циклами.
Есть обороты на которых мотор идеально работает. Близкие к срыву мотора.
По размеру паузы и жужжанию обмоток двигателя понимаю, что ардуинка выдает большую частоту, а мотор не вытягивает её.
Есть ли смысл аналоговыми портами задавать нарастающий импульс и убывающий для каждой обмотки? Не HIGH подавать а от 50 и до 250 ступенями..
Если это безколлекторник, то у него должны быть датчики положения ротора. Обычно 3. Двигатель разгоняется за счет "убегания" магнитного поля статора от датчиков. То есть тайминги задаются от датчиков. Почитайте о безколлекторниках - инфа есть в нете
Конкретно эти моторы идут без датчиков. Там всего 4 провода. 3 на обмотку и один центральный. Народ писал ,что разгонял их до 30 000 оборотов. Начинаю его крутить с тайминга 9 000 микросекунд. delayMicroseconds(9000) т.е. 90 милисекунд. При уменьшении таймингов и достижении значения 4000 мотор затихает. При этом видно, что обороты не достигают тех, что развивались при запуске от родной платы HDD.
delayMicroseconds()
Description
Pauses the program for the amount of time (in microseconds) specified as parameter. There are a thousand microseconds in a millisecond, and a million microseconds in a second.
Currently, the largest value that will produce an accurate delay is 16383. This could change in future Arduino releases. For delays longer than a few thousand microseconds, you should use delay() instead.
По моим прикидкам 30000 оборотов получится при 660 микросекундах. НО! Вы в основном цикле инициализируете LCD, потом шлете в него данные. Это ОЧЕНЬ медленные проседуры. Попробуйте инициализировать 1 раз (в ините) и выводить данные ну, хотя бы раз в секунду. Ну или при смене задержки чтоли...
По уму, если хочется работать с индикатором, нужно управление двигателем вывести в прерывание по таймеру (соответственно программировать таймер задержкой)
Попробуйте так:
даите пожалуста ктота skype!
нужна неболшая обеснения проста у меня есть мотор с 3 и 4 контактами
буду признателен
мой skype: garmoska89
Используйте для этого специальный контроллер, например с хоббикинга. http://www.hobbyking.com/hobbyking/store/__61__182__ESC_UBEC_VR-All_Spee...
они стоят не очень дорого и управляются как сервопривод.
Касательно этих контроллеров. Есть у меня мотор бесколлекторный, авиамодельный на 30А. И есть к нему ESC как раз таки.
Мотор крутит так, что табуретки поднимает с пола :)
Однако, когда подключил этот контроллер к мотору HDD, то получил лишь подергивания. Мотор крутится, но оооочень медленно и шагами. Обороты не набирает таки. Даю мощность сильнее и он начинает сильнее клинить себя же. греется ооочень сильно.
На моторе HDD 4 провода. Минусовой провод тот, у которого сопротивление по отношению к остальным 3-м контактам одинаковое. Вычислил его так. Да и методом тыка тоже самое показало. Мотор вращается лишь в одном случае подключения контактов. Минусовой подключил на минус аккумуляторов. Другие 3 на контакты с модуля управления.
На видео в инете видел как у людей они на ура крутятся. Однако у меня такое не получилось :( Вращается медленно с рывками.
Простите, опечатался, мотор не сидирума, а HDD.
у меня от самолетного регуля отлично крутятся и сиюдки, и хдд и другие бесколлекторные моторы.
правда в сидиромах мне чаще попадаются движки, у которых три провода на обмотки - треугольником обычно соединены и четыре провода для трех датчиков хола.
если провода от обмоток соединены звездой, как Вы описываете, то советую соединить их треугольником, так проще будет скорость на них набрать большую.
Всем здрасти) Сидел и ломал голову с запуском через L298N. Перепробовал все возможные програмные варианты(( двигатель запускался, дергался и жжужал но нормальной работы так и не добился. Пришлось подключить осцелограф и вот что я там увидел:
Выход с пинов Ардуинки
Выход с L298N
Скетч один и тот же. Просто перекинул щупы.
Вывод что на L298N движочек не запустится т.к маленькая рабочая частота у L298N драйвера да и по току он не совсем подходит сопротивление между обмотками 3.3Ом напр 12В 12/3.3=3.6А а она до 2А.
А у L293d максимальный ток 1.2А
P.s Если где то ошибся то прошу поправить.