-
Управление шаговым двигателем
Здраствуйте, хотелось бы сделать управление шаговым электродвигателем – биполярный двухфазный, думаю реализовать на arduino, но в программировании не силен да и arduino пока не приехал (завтра буду оплачивать только). Нужно для управления распределением воздушных потоков на авто 2110, т.к. при установке монитора придется отказаться от механического регулятора, но совсем терять данную функцию очень не хочется.
Может кто нить поможет с кодом для ardino? если это вообще реально.
и какой драйвер использавать для двигателя uln2003 может быть?
-
Re: Управление шаговым двигателем
Если монитор не слишком большой, то можно и оставить рычажок регулятора потоков на месте (если панель низкая, на высокой не помню как сделано) только снять резиновый наконечник... Кстати есть готовая рамка под 7дюймовый монитор... Если нужно, могу предложить...
-
Re: Управление шаговым двигателем
Цитата:
Сообщение от
digijim
Если монитор не слишком большой, то можно и оставить рычажок регулятора потоков на месте (если панель низкая, на высокой не помню как сделано) только снять резиновый наконечник... Кстати есть готовая рамка под 7дюймовый монитор... Если нужно, могу предложить...
Спасибо. А можно фото рамки? хотел ставить пока eee pc701 уже располовинил шлейф удлинил, бп есть и т.д.
-
Вложений: 1
Re: Управление шаговым двигателем
-
Re: Управление шаговым двигателем
А по поводу управления потоками, я думаю через Carduino можно управлять сервоприводом... А можно и так http://forum.pccar.ru/showthread.php...%EE#post106981
-
Re: Управление шаговым двигателем
Цитата:
Сообщение от
digijim
Спасибо!!! сейчас посмотрю.
написал в личку по поводу рамки чтоб тему не раздувать.
-
Re: Управление шаговым двигателем
-
Re: Управление шаговым двигателем
Цитата:
Сообщение от
Chip
Мне не надо управлять печкой, мне нужно управление только одним шаговым двигателем с кнопок или с компьютера. нажал кнопку шаговый двигатель сделал например 400 шагов переключил воздух на стекло, другая кнопка в ноги ище 400 шагов например, третья в салон. Кнопки подключить к carduino или с экрана монитора управлять.
Вся проблема в коде для arduino.
Chip может вы поможете в данном вопросе?
-
Вложений: 1
Re: Управление шаговым двигателем
Вот схема драйвера ШД
Вложение 7466
И пример кода для Arduino
PHP код:
#include <Stepper.h>//подключить библиотеку
#define STEPS 100 // полное колличество шагов в одном обороте вашего ЩД
Stepper stepper(STEPS, 5, 6, 7, 8); // создать экземпляр класса , определить пины управления драйвером ШД
void setup()
{
stepper.setSpeed(30);// скорость вращения вашего ШД, хх оборотов в минуту
}
void loop()
{
// if(ваше условие)
stepper.step(10); // сделать 10 шагов
}
-
Re: Управление шаговым двигателем
На практике не проверял, но библиотека рабочая, так что должно работать.
-
Re: Управление шаговым двигателем
Chip спасибо огромное!!! как доедет carduino буду экспериментировать: :)
-
Re: Управление шаговым двигателем
актуальная тема!,много кнопок не есть хорошо!,удобнее будет с двумя кнопками,нажал на правую кн 400 шагов,ещё раз нажал,и ещё 400 шагов
нажал на правую 400 шагов в обратную сторону,и.т.д
осталось тока написать программу! :confused:
-
Re: Управление шаговым двигателем
Мне арудино уже идет по почте.
В планах поставить камеру обгона в угол, насадить ее при этом на шаговый двигатель. Рядом с приборкой вывести поворотный энкодер.
-
Re: Управление шаговым двигателем
Просветите чайника плз...хочу использовать данную схему в кач-ве автокорректора.....подключив датчик положения оси (переменный резистор) и 2 ШД от штатного корректора (какой именно девайс выбрать чтобы выходов управления хватило? ) можно ли научить данный контроллер выставлять нужно количество шагов двигателя от нулевого положения по заданным значениям от датчика полодения?
ну например:
включаем свет, ШД шевелят уровень фар вниз---потом вверх в нулевое положение.....затем считываетса сигнал от датчика положения...определяетса нужно ли корректировать положение...если нужно то по заложенной закономерности делает моторчиками определенное количество шагов и останавливаетса.....следующая проверка уровня производитса после достижения 50км\ч о остановки до 0 но уже без кивков вниз и до нуля.....ну т.е. так ж как работает ОЕМ автокорректор.
просто посмотрев проекты описанные здесь я понимаю что МК с этим вполне справитса...но хотелось бы услышать мнение тех кто с ними в боевы условиях работал :) Интересен именно момент определения измененияклиренса и вычисление необходимых шагов...если это реально то буду начинать читать инфу и закупаль детали если нет то куплю хеллу корректор с его глюками и тупостью :)))
-
Вложений: 1
Re: Управление шаговым двигателем
Помогите пожалуйста схемкой подключение ШД к carduino через драйвер L6219DSA
даташит прилагается..
-
Re: Управление шаговым двигателем
Цитата:
Сообщение от
Voron
Просветите чайника плз...хочу использовать данную схему в кач-ве автокорректора.....подключив датчик положения оси (переменный резистор) и 2 ШД от штатного корректора (какой именно девайс выбрать чтобы выходов управления хватило? ) можно ли научить данный контроллер выставлять нужно количество шагов двигателя от нулевого положения по заданным значениям от датчика полодения?
ну например:
включаем свет, ШД шевелят уровень фар вниз---потом вверх в нулевое положение.....затем считываетса сигнал от датчика положения...определяетса нужно ли корректировать положение...если нужно то по заложенной закономерности делает моторчиками определенное количество шагов и останавливаетса.....следующая проверка уровня производитса после достижения 50км\ч о остановки до 0 но уже без кивков вниз и до нуля.....ну т.е. так ж как работает ОЕМ автокорректор.
просто посмотрев проекты описанные здесь я понимаю что МК с этим вполне справитса...но хотелось бы услышать мнение тех кто с ними в боевы условиях работал :) Интересен именно момент определения измененияклиренса и вычисление необходимых шагов...если это реально то буду начинать читать инфу и закупаль детали если нет то куплю хеллу корректор с его глюками и тупостью :)))
Прикольная и вполне реализуемая идея.
-
Re: Управление шаговым двигателем
Ну тогда будупробовать :)
Chip а что лучше взять в плане реализации управления шаговые моторчики или обычные родные механизмы? у меня и то и то есть просто все в программно\аппаратную реализацию упираетса :)
-
Re: Управление шаговым двигателем
А у родных механизмов обратная связь типа переменного резистора или оптопара есть?
-
Re: Управление шаговым двигателем
У меня в электро корректоре стоит обычный двигатель и переменный резистор на обратную связь.
-
Re: Управление шаговым двигателем
Ну тогда лучше родные корректоры использовать
-
Re: Управление шаговым двигателем
Chip а чтобы реализовать эт самое переменное сопротивление подаваемое на корректоры нужно ключ собирать?
-
Re: Управление шаговым двигателем
Не понял вопроса, при чет тут сопротивление и ключ?
-
Re: Управление шаговым двигателем
все уже нашел :) корректоры можно подключить так же как сервопривод (по сути эт он и есть)
в общим изучаю седайс...как ченьть накумекаю отпишусь :)
-
Re: Управление шаговым двигателем
как остановить ШД при использовании поворотного енкодера
Код:
if (analogRead(pol) == p1)
{
stepper.step(5);
}
ведь пока на входе pol значение будет равняться p1 он будет крутить ШД, а как добиться того, что бы он сделал 5 шагов и отановился, потом когда значение поменяется допустим на p2 он должен сделать 10 шагов и остановиться
-
Re: Управление шаговым двигателем
Я делал не через stepper. И просто подавал все нули на все выходы.
-
Re: Управление шаговым двигателем
собирал ночью, сейчас обнаружил то что я забыл драйвер, напрямую ШД в arduino подключил :rolleyes: но вопрос о остановке ШД остался
-
Re: Управление шаговым двигателем
Ну так что? поможет кто советом как его остановить, уже все облазил не где не нашел =((
-
Re: Управление шаговым двигателем
Если ты используешь либу Stepper то команда myStepper.step(х); отрабатывает заданное число х шагов и останавливат двигатель.
Пример с офф сайта:
PHP код:
#include <Stepper.h>
#define motorSteps 200
#define motorPin1 8
#define motorPin2 9
// initialize of the Stepper library:
Stepper myStepper(motorSteps, motorPin1,motorPin2);
void setup()
{
// set the motor speed at 60 RPMS:
myStepper.setSpeed(60);
}
void loop()
{
// Step forward 100 steps:
myStepper.step(100);
delay(500);
// Step backward 100 steps:
myStepper.step(-100);
delay(500);
}
-
Вложений: 2
Re: Управление шаговым двигателем
Я маленько не то имел ввиду..
просто есть вот такое(смотреть фото1)
Там 9 положений ( в каждом положении свое сопротивление) но проблемма в том что оно колебриться на одну, две идиницы (фото 2) вот из за этого он крутит ШД постоянно. Как с этим быть?
P.S. переделываю управление отопителем, ШД будет дергать заслонку положений.
-
Re: Управление шаговым двигателем
Сопротивления в конкретных положениях ведь сильно отличаются, так что просто если прогой сделаешь, чтобы она реагировала, если про сравнению со старым новое значение на МНОГО отличается. Так колебания не учтутся.
Либо сделай проверку положения на интервал [4ком +/- 0,5] к примеру. Я так с джойстиком делал, там тоже скачет сопр-е при нажатии кнопки. Просто практическим путем (с помощью той же проги) нашел минимум и максимум куда скачет сопр. в каждом положении
-
Re: Управление шаговым двигателем
Я вставлю свои 5 копеек:
Не понятно зачем тут ШД, там хватит серво. При чем сервопривод можно сделать из обыкновенного электродвигателя и резистора.
Управление, когда не через библиотеку, осуществляю следующим образом, в цикле кручу двигатель например 100мс потом останавливаю и проверяю угол(аналоговый сигнал с резистора), потом кручу дальше и т.д. Чем дольше крутишь двигатель в каждой итерации цикла, тем быстрее происходит движение механизма, но тем менее точно устанавливается угол.
Так же на скорость двигателя влияет Вывод через ком порт(Serial). Если нет вывода крутится гораздо быстрее.
Так вот, есть вариант(а по закону Мура значит проскочишь однозначно) проскочить данный угол, если в цикле условие на четкое равенство. Нужно делать, больше-или-равно или меньше-или-равно.
-
Re: Управление шаговым двигателем
Во первых, тема о ШД а не о серво.
во вторых серво у меня управляет температурой,заслонку больше меньше
в третих мне нужен Шд пото му что он червячный(ходит вперед назад) чтобы дергать планку, а там именно это и надо делать..
Except, можеш плз показать на примере как сделать интервал?
-
Re: Управление шаговым двигателем
Цитата:
Сообщение от
Ant1Player
Except, можеш плз показать на примере как сделать интервал?
Код:
float j_val = analogRead(JOYSTIK_PIN);
if (j_val < 1000)
{
delay(5);
if(j_val == analogRead(JOYSTIK_PIN))
{
if ( ( 20 <= j_val) and (j_val <= 90) ) { Serial.print("J=off;"); delay(300); }
if ( (460 <= j_val) and (j_val <= 470) ) { Serial.print("J=center;"); delay(300); }
if ( (640 <= j_val) and (j_val <= 670) ) { Serial.print("J=mute;"); delay(300); }
if ( (730 <= j_val) and (j_val <= 750) ) { Serial.print("J=file;"); delay(300); }
if ( (785 <= j_val) and (j_val <= 839) ) { Serial.print("J=forward;"); delay(100); }
if ( (841 <= j_val) and (j_val <= 882) ) { Serial.print("J=backward;"); delay(100); }
if ( (886 <= j_val) and (j_val <= 891) ) { Serial.print("J=next;"); delay(100); }
if ( (921 <= j_val) and (j_val <= 940) ) { Serial.print("J=prev;"); delay(100); }
if ( (945 <= j_val) and (j_val <= 960) ) { Serial.print("J=sel;"); delay(300); }
if ( (970 <= j_val) and (j_val <= 980) ) { Serial.print("J=mode;"); delay(300); }
}
}
вот так я делал для джойстика, цифры это сопротивлене с кнопки.
-
Re: Управление шаговым двигателем
-
Re: Управление шаговым двигателем
Ant1Player, просто хотел тебе облегчить и удешевить задачу. Серво-самопал, как я описал выше, у меня переключает передачи на коробке. Мотора и послабее хватит чтоб "дергать планку". Но, хозяин-барин)
-
Вложений: 1
Re: Управление шаговым двигателем
Шаговый уже есть, я нехочу изобретать некакие рычаги и т.п. а шаговый как раз подходит под это
http://www.compcar.ru/forum/attachme...1&d=1272284448
-
Re: Управление шаговым двигателем
Помогите советом, уже не знаю на что думать, короче крутит ШД только в одну сторону незовисимо
Код:
mystepper.step(-30);
или
Но, если он крутит и рукой сделать нагрузку(давить в него в другую сторону) то он начинает работать в другую сторону, и теперь он крутит в другую независимо от mystepper.step
с чем это может быть связанно? думал питание, подключил к акомулятору, тож самое, вот щас подумываю насчет нерабочей L293D или может быть что то другое?
P.s. ШД на фото сверху
-
Re: Управление шаговым двигателем
Похоже неправильно подключил.
Обмотки прозвонил?
Какой драйвер используешь?
-
Re: Управление шаговым двигателем
L293D ,обмотка правильно, щас начал вспоминать вспомнил одну вещь, я нечайно 12В (вход питания ШД) подал на какойто контакт (другой) драйвера, результат: дырка в микроконтроллере, пока ждал новую атмегу забыл про это, видать еще повлияло на драйвер, щас перепаю отпишусь.
-
Re: Управление шаговым двигателем
все стало норм :) теперь осталось додуматься по какому принципу управление реализованно в стандартном блоке управление отопителем, этим ШД, ведь датчика положения нет, остается узнать:
1. а что если при выкл зажигании покрутить ручки ведь положение изменится а шд останеться в том положение: ну это можно в setup до самого начала выкручивать ШД. либо ставить концевик чтоб не делать лишних шагов
2. Что делать с перескоками, если резко повернуть ручку, ведь почти все положения проскочут и ШД встанет не в то положение, как быть тут?
код примерно такой:
Код:
if ((261 <= analogRead(pol) ) && ( analogRead(pol) <=265) && (x != 1) )
{
stepper.step(200);
x=1;
}
if ((284 <= analogRead(pol) ) && ( analogRead(pol) <=288) && (x != 2) )
{
stepper.step(200);
x=2;
}
и так 9 положений, может куда нибудь delay вставить?..