roboforum.ru

Технический форум по робототехнике.

Arduino pro mini для управления шаговым двигателем

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 24 сен 2015, 17:31

ОтписАлся "в теме" ))
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 26 сен 2015, 11:50

Поскольку в элементной базе (если правильно выразился) я не силён, подмотку пластика решил подключить тоже к ардуино (по крайней мере пока, все равно есть еще запас), нашел скетч и описание, подредактировал под себя но...или из-а того, что транзистор взял первый попавшийся а схему и номиналы из темы со скетчем или еще что но... вопросик.. транзистор не закрывается полностью. Может кто подскажет верное решение по номиналам? Сейчас с ноги ардуино на базу идёт резистор 300Ом, транзистор КТ814Г. Если сопротивление увеличить (думал типа ток будет меньше и он закроется) то обороты в общем падают, но полностью всё равно не закрывается. (( Пробовал еще резистор на базу/эмиттер вешать (видел ко-е где на схемах), но тогда обороты повышаются полностью, т.е. он открывается на всю наверное.

Поясню что хочу: Сейчас, поскольку моточик там колекторный и привод через ремень с низким понижением, при резком включении контакта (когда пластик после протяжки провисает) происходит рывок наматывающей катушки, я хочу сделать типа притормаживания процесса, т.е. кнопка (или может фотореле прилеплю приехавший из китая) замыкается и подаёт питание на мотор, и он плавно раскручиваясь подматывает пластик, а не успев разогнаться уже вроде и кнопка выключится и катушка остановится. Надеюсь понятно объяснил :oops:
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение stepmotor » 27 сен 2015, 00:31

Я же по моему выкладывал скетч для управления намотчиком на основе шагового двигателя. Шаговый чем удобен что в момент остановки он удерживает катушку с нитью.

Схема.pdf
(16.06 КиБ) Скачиваний: 0

my_stepper.zip
(819 байт) Скачиваний: 0

AccelStepper_library.zip
(12.53 КиБ) Скачиваний: 0


Если чего пишите..
Эта схема по сей день прекрасно у меня работала.. пока не сделал последний апгрейд и завел все включая управление намотчиком в один контроллер.
Sergey-3D Printer :) Arduino 2560 + Ramps 1.4 + Leadshine DM422C. Firmware: Marlin. + my Filament extruder :)
+ My H-Bot 218\218\218mm \ Mega2560 \ DRV8825 \ Marlin-RC
Аватара пользователя
stepmotor
 
Сообщения: 331
Зарегистрирован: 19 май 2014, 18:05
Откуда: Россия, Московская обл.
Skype: sergius_efremov
прог. языки: Delphi,VB,PHP,MicroC,CVAVR
ФИО: Сергей Ефремов

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 00:37

Удобен конечно но у мну шаговых свободных уже нет. Сделано коллекторным через ремешок (фото/видео в теме по экструдеру вставлял), по этому и пытаюсь исходить из того, что есть ((
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение RootAdmin » 27 сен 2015, 00:55

По какой схеме включал 817?
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 00:58

http://arduinokit.ru/arduino/lessons-ar ... omment-258
Причём что бесит... если питание мотора подаю минуя питание ардуино (12В отдельного БП) то он вообще не крутится...А если соединить массу питания ардуино (всей схемы в общем) с массой питания стороннего БП, то мотор раскручивается бодро, на все 12В, но не останавливается тогда.. только замедляется. и я то думал, что транзистор просто типа реле ((
Последний раз редактировалось Revenger 27 сен 2015, 01:00, всего редактировалось 1 раз.
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение RootAdmin » 27 сен 2015, 01:00

То есть 814. Двигатель между коллектором и питанием? Питание - сколько вольт? В скетче именно выключение-включение ноги или какой-то ШИМ?
Первое что приходит в голову -базовый резистор Ом 470, шунтирующий тоже.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 01:02

Да, между К и Э, всё как на схеме, но транзистор другой. Резистор поставил на 1кОм (примерно на 1/3 оборота стоИт) сейчас и транзистор 816, стало заметно изменение обротов, но только когда массы общие связаны. Ну и греется.

А что за шунтирующий? В схеме нет такого. Это надо с базы на массу поставить?
Последний раз редактировалось Revenger 27 сен 2015, 01:04, всего редактировалось 1 раз.
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение RootAdmin » 27 сен 2015, 01:03

Если правильно понял ту схему - то там два гатель включён между эмиттером и землёй. Для тестов - пойдёт. Но нам надо имеенно между коллектором и питанием.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 01:06

это другой транзистор нужен? другой "переход" чтобы был? Просто я эти брал для включения с таймера 555 релюшки одной, пока стоЯл 3205 работало, а эти пока не запустил, решил сюда применить, но схемотехник из меня ... п.п.ц. уже готов разбить всё ))


п.с. там на схеме вроде мотор между +5 и коллектором...
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение RootAdmin » 27 сен 2015, 01:11

Надо вообще так: эмиттер транзистора на землю. Один резистор с базы транзистора на землю, примерно на килоом.второй резистор с базы -на ардуино, Ом на 300. Двигатель - к коллектору и питанию. Также между коллектором и питанием диод параллельно двигателю, катодом к питанию.

Добавлено спустя 32 секунды:
Транзистор пойдёт.

Добавлено спустя 3 минуты 14 секунд:
Схема там вообще правильная. Я б проверил так: отключил ардуину, замкнул резистор базы на землю. Тупо руками. Не вращается? Хорошо. Вращается - транзистор в помойку. Или проверить правильность монтажа ещё раз.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 01:41

Ну всё это есть, кроме как транзистор не так включен... сейчас попробую перекинуть проводки.
Питание да, хочу 12В и скетч да, плавное нарастание скорости и плавное снижение, но это просто пока поиграться. Достаточно просто плавного старта и выключение. За этим по идее долен следить датчик/сенсор (у меня есть из китая опто реле готовое, может его прилепить чтобы оно смотрело на провис пруткА).

Вот тот скетч, но я чуть поковырял и пока шапку удалил, чтобы много места здесь не занимало:
Код: Выделить всёРазвернуть
// Будем управлять двигателем используя цифровой порт 9 (pin 9).
// Это должен быть любой ШИМ порт Arduino

const int motorPin = 9;
void setup()
{
// Установим порт мотора как выходной:

pinMode(motorPin, OUTPUT);

// Активируем «Монитор порта»:

Serial.begin(9600);
}
void loop()
{
// Здесь мы использовали комментарии для отключения некоторых
// примеров. Чтобы испробовать другой пример, раскомментируйте
// одну из следующих строк и закомментируйте другие. См функции,
// для того чтобы узнать что они делают и как работают.

// motorOnThenOff();
// motorOnThenOffWithSpeed();
motorAcceleration();
//serialSpeed();
}

// Попробуйте разные значения.

// void motorOnThenOff()
// {
// int onTime = 3000; // миллисекунд для вращения мотора
// int offTime = 3000; // миллисекунд для простаивания мотора

// digitalWrite(motorPin, HIGH); // включить мотор — максимальная скорость
// delay(onTime); // задержка, для продолжения вращения
// digitalWrite(motorPin, LOW); // выключить мотор
// delay(offTime); // задержка, для простаивания мотора
// }

// Функция «motorOnThenOffWithSpeed» переключает работу мотора между
// двумя скоростями. Пробуйте разные значения, если интересно.

// void motorOnThenOffWithSpeed()
// {
// int Speed1 = 255; // скорость «Speed1» 0 (остановка), 255 (полный ход)
// int Time1 = 8000; // время «Time1» в миллисекундах

// int Speed2 = 0; // скорость «Speed2» 0 (остановка), 255 (полный ход)
// int Time2 = 8000; // время «Time2» в миллисекундах

// analogWrite(motorPin, Speed1); // включаем мотор на скорости «Speed1»
// delay(Time1); // продолжаем вращение заданное время
// analogWrite(motorPin, Speed2); // включаем мотор на скорость «Speed2»
// delay(Time2); // продолжаем, заданное время «Time2»
// }
// Функция «motorAcceleration» раскручивает двигатель от нуля до
// максимума, и обратно до полной остановки.

void motorAcceleration()
{
int speed;
int delayTime = 20; // пауза в миллисекундах

// будем раскручивать мотор, увеличивая скорости от 0 до 255 с паузой в
// 20 миллисекунд меду каждым шагом (1, пауза, 2, пауза, 3, пауза и.т.д)

for(speed = 0; speed <= 255; speed++) // шаг, увеличение на единицу
{
analogWrite(motorPin,speed); // установка новой скорости
delay(delayTime); // пауза «delayTime», т.е 20 миллисекунд
}
{
  //Делаем паузу
   delay(3000);
}

// будем останавливать мотор, уменьшая скорость от 255 до 0 с паузой в
// 20 миллисекунд меду каждым шагом (255, пауза, 254, пауза, 253, пауза …)

for(speed = 255; speed >= 0; speed--)
{
analogWrite(motorPin,speed); // установка новой скорости
delay(delayTime); // пауза «delayTime», т.е 20 миллисекунд
}
}


Добавлено спустя 5 минут 4 секунды:
Такс.. про проверку... сейчас отключил провод от ардуино и не включая её этот провод кинул на минус 12В которые идут к мотору, прямо как есть на макетке. Мотор стартует. Это всё? Так это новый.. только минутку как воткнул (((

Добавлено спустя 2 минуты 49 секунд:
Так ведут себя оба и 814 и 816. Разве что 3205 так не срабатывает (который у меня на таймере 555 стоЯл)

Добавлено спустя 20 минут 57 секунд:
поменял ноги включения транзистора. Работает, но так же, т.е. не останавливается полностью ((

Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 14:59

В общем не стал голову ломать, нашел у себя 2Н3055, он вроде н-п-н (не понимаю, при чём тут это?!), поставил по схеме и всё заработало как я хотел, и закрывается он полностью при отключении питания (предыдущий наоборот, при отключении питания "включался" на всю).
теперь останется придумать как датчик прилепить (чтобы ардуино не мучить постоянными включениями для цикла) ))
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 27 сен 2015, 23:55

Фух... кажись начинает получаться! В смысле прутОк нормальный. Диаметр пока не замерил, но идёт вполне стабильно и ровненько!!!!!!!!!! Единственное.. автомат протяжки выключил, вручную чуть по чуть регулировал, потому что какие-то странные броски повышения оборотов стали появляться. Крутит крутит, затем бац и на максимум дёргает, соответственно растягивает нить. Показания на дисплее скачут в этот момент сильно вверх. Протяжку придвинул сантиметров на 12-15 к соплу, сопло сделал 1,7, так что выходит в общем то готовый диаметр. Бери и собирай )) Кулер успевает охлаждать, без кулера ролики плющат конечно пластик. Ну вот как-то так. Фото чуть позже дисплея ну и видео снял, как параметры бегают.

В самом начале заметен пиковый скачок



И видео общее:
Вложения
IMG_1690.JPG
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Re: Arduino pro mini для управления шаговым двигателем

Сообщение Revenger » 29 сен 2015, 20:08

пытался сейчас победить оптодатчик.. разрезал, установил.. нет стабильности в импульсах. Скачет ужасно. Может с ним что-то не так стало? А теперь, после того как разрезал еще ухудшилось? Импульсы на дисплее срываются на сотни, чаще появляется inf и шаговик естественно стартует на максимум. Куда копать?
Сейчас замерю что опто выдаёт в вольтах.

Добавлено спустя 1 час 17 минут 50 секунд:
вопчем я возвращаюсь в первобытнообщинный строй.
х.з. что случилось, но пока лазил искал почему с БП компьютерного не 5 а 7В идёт (возможно по этому импульсы срывались невпопад), напереключал наверное что-то, что дисплей умер. Вернее сначала черточки показал, а потом при включении просто правая часть квадраты показывает и ярко (мне кажется) светится. К тому же, хреновина с тремя ножками (одна из двух) на платке питания макетки через какое-то время начинает сильно греться и аж до дыма. Если питание дисплея отключить, то не греется. Но и ардуина не включается без дисплея.
Поигрались и хватит ((
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

Пред.След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2