roboforum.ru

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

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

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

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

Сообщение Revenger » 11 ноя 2015, 02:54

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

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

Сообщение Revenger » 11 ноя 2015, 19:19

Поправил в скетче (по моему намотчику) порядок шагов и мотор стал реально мощнее... аж сломалась напечатанная шестерёнка )) Это радует.
Последний раз редактировалось Revenger 12 ноя 2015, 01:18, всего редактировалось 1 раз.
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

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

Сообщение loox » 11 ноя 2015, 23:26

Спасибо, что сообщил..
loox
loox
 
Сообщения: 326
Зарегистрирован: 26 мар 2008, 12:45

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

Сообщение Revenger » 12 ноя 2015, 03:55

Андрей (или кто знает), скажите, в стандартном тестовом скетче для управления ШД есть возможность регулировки оборотов, используется пин А0,а куда второй/третий провод резистора цеплять?
Можно ли использовать первую версию "нашего" скетча, где использовался переменник, для управления ЩД 28BYJ-48 с драйвером, где нужно использовать 4 провода управления и пара питания?

Добавлено спустя 47 секунд:
loox писал(а):Спасибо, что сообщил..
loox

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

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

Сообщение Revenger » 13 ноя 2015, 01:02

вопчем регулировку оборотов для мотора 28BYJ-48 с его же драйвером сделал на основании стандартного скетча среды Ардуино. Регулирует :)
скетч потом на всякий случай в первое сообщение воткну, вдруг кто-то тоже ардуино пустит на одну операцию :oops: .
Начал там потихоньку оглавление делать.

Код: Выделить всёРазвернуть
/*
Stepper Motor Control - speed control

This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 2 - 5 of the Arduino.
A potentiometer is connected to analog input 0.

The motor will rotate in a clockwise direction. The higher the potentiometer value,
the faster the motor speed. Because setSpeed() sets the delay between steps,
you may notice the motor is less responsive to changes in the sensor value at
low speeds.

Created 30 Nov. 2009
Modified 28 Oct 2010
by Tom Igoe

*/

#include <Stepper.h>

const int stepsPerRevolution = 32;  // change this to fit the number of steps per revolution
// for your motor


// initialize the stepper library on pins 2 through 5:
Stepper myStepper(stepsPerRevolution, 5, 3, 4, 2);

int stepCount = 0;  // number of steps the motor has taken

void setup() {
  // nothing to do inside the setup
}

void loop() {
  // read the sensor value:
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 1023, 0, 800);
  // set the motor speed:
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution / 32);
  }
}



Может кто подсказать, что значат параметры этой строки int motorSpeed = map(sensorReading, 0, 1023, 0, 800); ? Я 800 поставил, т.к. более 950, например, мотор срывается и не крутит, это типа максимума шагов? 0 перед ним это типа с какого кол-ва шагов запуск, А другие параметры, перед ними две цифры?
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

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

Сообщение Dmitry__ » 13 ноя 2015, 05:29

Revenger писал(а):Может кто подсказать, что значат параметры этой строки int motorSpeed = map(sensorReading, 0, 1023, 0, 800); ? Я 800 поставил, т.к. более 950, например, мотор срывается и не крутит, это типа максимума шагов? 0 перед ним это типа с какого кол-ва шагов запуск, А другие параметры, перед ними две цифры?

Кхе, ты ж жеж уже почти мастер дуино :) Стыдно должно быть, такие вопросы задавать :)
http://arduino.ru/Reference/Map
Но настоящие дзены приводят диапазоны вручную, умножением/делением. Типа: "значение" умножить на N, а потом разделить на N2. Получится тот же map. Можно еще разбавить плюсом/минусом (для смещения).
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Revenger » 13 ноя 2015, 14:01

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

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

Сообщение Revenger » 13 ноя 2015, 20:47

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

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

Сообщение Dmitry__ » 13 ноя 2015, 21:56

:)
Ну ацп с переменного резистора дает значения от 0 до 4095 (2^12). А скорость двигателя может меняться только от 0 до 800. Что делать с оставшимися 4096 - 800 значениями? Правильно, надо диапазон значений 0-4095 привести к диапазону 0-800. Это и делает map.
Математически это просто коэффициент: 800/4096 = 0,1953125. Например, когда резистор дает 0: 0 * 0,1953125 = 0 скорость. Резистор ровно в центре = 2047: 2047 * 0,1953125 = 400, т.е. середина резистора равна середине мощности. Резистор на максимуме = 4095: 4095 * 0,1953125 = 800, т.е. макс. значение резистора равно максимальной мощности.
Понел? :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Revenger » 13 ноя 2015, 22:38

Вона чо...теперь понятно ))) Ну как понятно? Почти.. до меня медленно доходит.. через руки чаще. т.е. надо попробовать, чтобы окончательно дошло. Я тут просто сразу на высшую математику полез, и вместо переменника фоторезистор поставил (думаю что филамент, прикрывая при приближении свет будет менять сопротивление и, соотвественно скорость ШД), вот мне по идее надо как раз правильно расчитать этот мап, замерив и найдя баланс. Же да?

Добавлено спустя 19 минут:
Вот что я тут наизобретал с мапами этими (точнее хочу как-то воплотить в общий ансамбль электроники) )))
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

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

Сообщение Dmitry__ » 13 ноя 2015, 22:40

Revenger писал(а): Ну как понятно? Почти.. до меня медленно доходит.. через руки чаще

Ок, представь что от тебя просят регулировать задвижку, которая имеет 256 положений, от входных данных, которые от нуля до 100500 значений. Скорее всего ты начнешь преобразовывать несколько входных значений в одно выходное, т.к. задвижка может двигаться в намного меньших пределах...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Revenger » 13 ноя 2015, 23:39

Если честно, то предыдущее пояснение было более понятно :oops:

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

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

Сообщение Dmitry__ » 13 ноя 2015, 23:56

Круто, я сделал все что мог. Я и приводил реальные цифры: с задвижкой, без X и Y :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Revenger » 14 ноя 2015, 00:06

Ну ладно. Я разберусь, честно. Примеры то есть, формулы тоже. Надо просто сесть и пробовать. Спасибо!
Аватара пользователя
Revenger
 
Сообщения: 1728
Зарегистрирован: 01 ноя 2014, 00:50
Откуда: Ставрополье
ФИО: Александр

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

Сообщение Dmitry__ » 14 ноя 2015, 00:45

Я скоро начну сам задавать такие же вопросы по шредерам/экструдерам :), ибо чо-то совсем все сложно. Сверло для экструдера купил 100 лет назад, но что-то очень большое, куда его сувать - хз. Можна я вас буду тупить? :roll:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

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

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

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