roboforum.ru

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


a4988+RAMPS1.4+Arduino шаговик молчит

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

a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 13 мар 2016, 18:23

Все просто и в то же время оч сложно, потому что не работает... Прошиваю марлин в ардуишку, рампс и драйвер установлены шаговик подключен, и на команды репетиер хоста отвечает, все работает. Но зашиваю в ардуино "свой код" скачанный с сайта, который должен работать, но он не работает. Ресет и слип на драйвере запитаны, аппаратное питание есть, силовое питание есть, степ дир меняют свое напряжение, но мотор молчит, перепрошиваю ардуино подключаю репетиер хост...все работает... В чем проблема кто подскажет???

вот код

Код: Выделить всёРазвернуть
void update(int steps, int time, int pin_step, int pin_dir)
{
  if(steps>0) digitalWrite(pin_dir, HIGH);
  else
  {
    digitalWrite(pin_dir, LOW);
    steps=-steps;
  }
  //---
  for(int a=0; a<steps*2; a++)
  {
    delay(time);
    digitalWrite(pin_step, !digitalRead(pin_step));
  }
}

void setup() {               
  pinMode(46, OUTPUT);
  pinMode(48, OUTPUT);   
}

void loop() {
  update(100, 10, 46, 48);
  delay(1000);
  update(-100, 10, 46, 48);
  delay(1000);
}


вот сборка
Вложения
IMG_20160313_174747[1].jpg
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение Myp » 13 мар 2016, 20:26

подключи светодиоды на степ/дир и убедись что твоя программа работает.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 13 мар 2016, 22:13

Myp, а что в этом случае может не работать? код? может у тебя есть заведомо рабочий пробный скетч для пололу а4988?

Да, проверил, светодиод моргает, ну оно и понятно. Может для степа нужено какое то особое напряжение? или интервалы подачи или длительность подачи? Я пытался в марлине разобратся, ну там наворочено столько defin-ов что фиг поймешь откуда эта переменная где ее искать...

Добавлено спустя 1 час 33 минуты 1 секунду:
Никто такого никогда не делал? ну может кто то хоть поможет разобраться в "марлин"е? Где там конкретно искать хитрость в управлении шаговиками?

Добавлено спустя 5 минут 46 секунд:
Заметил особенность, при вращении шаговика от "репетир хоста" энейбл в ноль уходит, а когда жесткий рестарт делаешь возвращается к 4,7 вольтам. С моей же прошивкой энейбл всегда на 4,25 вольтах.
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение GaD » 14 мар 2016, 00:31

вот программа заведомо рабочая, вам подставить только ваши пины
Код: Выделить всёРазвернуть
 
#include <AccelStepper.h>

#define STEP 9        // step
#define DIR 8         // dir направления вращения
#define EN 10         // enable вкл/выкл
#define delay_step 5  // Выдержка для регулировки скорости вращения

int analogPin0 = A0;  // пин переменного резистор
//int reg = x;          // Переменная которая будет содержать размер буфера

void setup()
{
  pinMode(STEP, OUTPUT);       // Настраиваем контакт на выход
  pinMode(DIR, OUTPUT);        // Настраиваем контакт на выход
  pinMode(EN, OUTPUT);         // Настраиваем контакт на выход
  pinMode(analogPin0, INPUT);  // Настраиваем контакт на вход
}

void loop()
{
  //int x = reg;
  int reg = (analogRead(analogPin0)); // переменая с переменного резистора 1023
 
  digitalWrite(EN, 0);
  cicle(1, reg);
  delay(5);
  cicle(0, reg);
  delay(5);
}

void cicle(boolean napr, int steps)
{
  digitalWrite(DIR, napr);
  for (int i=0; i < steps; i++)
  {
    digitalWrite(STEP, 1);
    delay(delay_step);
    digitalWrite(STEP, 0);
    delay(delay_step);
  }
}

GaD
 
Сообщения: 7
Зарегистрирован: 14 мар 2016, 00:20

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 14 мар 2016, 20:35

GaD, Огромное спасибо это должно работать!) вот только вопрос. У меня энейбл на пине А8 как точно узнать номер пина? В протеусе номера одни, пины другие...

Добавлено спустя 2 часа 4 минуты 49 секунд:
Оха, с пинами разобрался...
Последний раз редактировалось MIHAnik22 14 мар 2016, 20:49, всего редактировалось 2 раз(а).
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение GaD » 14 мар 2016, 20:43

Код: Выделить всёРазвернуть
#include <AccelStepper.h>

#define STEP 54        // step
#define DIR 55         // dir направления вращения
#define EN 38         // enable вкл/выкл
#define delay_step 5  // Выдержка для регулировки скорости вращения

void setup()
{
  pinMode(STEP, OUTPUT);       // Настраиваем контакт на выход
  pinMode(DIR, OUTPUT);        // Настраиваем контакт на выход
  pinMode(EN, OUTPUT);         // Настраиваем контакт на выход
 
}

void loop()
{
 
  digitalWrite(EN, 0);
  cicle(1, 1023);
  delay(5);
  cicle(0, 1023);
  delay(5);
}

void cicle(boolean napr, int steps)
{
  digitalWrite(DIR, napr);
  for (int i=0; i < steps; i++)
  {
    digitalWrite(STEP, 1);
    delay(delay_step);
    digitalWrite(STEP, 0);
    delay(delay_step);
  }
}


судя по фото у вас А4988 на оси Х, программу поправил, циклическая туда, обратно.
изучите распиновку RAMPS, у вы у меня её нету.

http://reprap.org/wiki/RAMPS_1.4/ru
GaD
 
Сообщения: 7
Зарегистрирован: 14 мар 2016, 00:20

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 14 мар 2016, 20:49

ХАХА, Замечательно, все работает!)Благодарности нет границ!) Ну тогда вопрос на засыпку. Если у меня максимальное время задержки 1 тактовая единица, то есть delay(1) то как мне увеличить скорость вращение шаговика? Сейчас в коде delay_step = 1 . Но скорость не высокая, полный оборот за 7 секунд, или для скорости надо микрошаги отключать?
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение GaD » 14 мар 2016, 20:57

убрать все джампера jp4
GaD
 
Сообщения: 7
Зарегистрирован: 14 мар 2016, 00:20

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 14 мар 2016, 21:13

GaD, хм только так? У меня на принтере тоже такая же связка, и репетиер хост умеет разгонять до серьезных скоростей, джампера стоят. Каретка по Z (на винтах) взлетает за секунды
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение RootAdmin » 15 мар 2016, 12:49

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

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение Myp » 15 мар 2016, 15:27

MIHAnik22 писал(а):Если у меня максимальное время задержки 1 тактовая единица, то есть delay(1)

delay(1) это задержка в 1 миллисекунду, для начала неплохо бы перейти с миллисекунд на микросекунды
заменив на delayMicroseconds(100) мотор будет вращаться в 10 раз быстрее.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение GaD » 15 мар 2016, 16:03

MIHAnik22 писал(а):хм только так?

ну это как вы реализуете
GaD
 
Сообщения: 7
Зарегистрирован: 14 мар 2016, 00:20

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 15 мар 2016, 17:45

Myp, АААА вооот, вот то что нужно!)
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение RootAdmin » 15 мар 2016, 18:52

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

Re: a4988+RAMPS1.4+Arduino шаговик молчит

Сообщение MIHAnik22 » 15 мар 2016, 19:11

RootAdmin, а разве библиотека AccelStepper.h этого не делает?
MIHAnik22
 
Сообщения: 124
Зарегистрирован: 13 авг 2014, 09:20
прог. языки: Blitz3D, Processing
ФИО: Михаил

След.

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

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

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