roboforum.ru

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

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

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

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

Myp » 13 мар 2016, 20:26

подключи светодиоды на степ/дир и убедись что твоя программа работает.

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

MIHAnik22 » 13 мар 2016, 22:13

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

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

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

Добавлено спустя 5 минут 46 секунд:
Заметил особенность, при вращении шаговика от "репетир хоста" энейбл в ноль уходит, а когда жесткий рестарт делаешь возвращается к 4,7 вольтам. С моей же прошивкой энейбл всегда на 4,25 вольтах.

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);
  }
}


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

MIHAnik22 » 14 мар 2016, 20:35

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

Добавлено спустя 2 часа 4 минуты 49 секунд:
Оха, с пинами разобрался...
Последний раз редактировалось MIHAnik22 14 мар 2016, 20:49, всего редактировалось 2 раз(а).

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

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

MIHAnik22 » 14 мар 2016, 20:49

ХАХА, Замечательно, все работает!)Благодарности нет границ!) Ну тогда вопрос на засыпку. Если у меня максимальное время задержки 1 тактовая единица, то есть delay(1) то как мне увеличить скорость вращение шаговика? Сейчас в коде delay_step = 1 . Но скорость не высокая, полный оборот за 7 секунд, или для скорости надо микрошаги отключать?

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

GaD » 14 мар 2016, 20:57

убрать все джампера jp4

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

MIHAnik22 » 14 мар 2016, 21:13

GaD, хм только так? У меня на принтере тоже такая же связка, и репетиер хост умеет разгонять до серьезных скоростей, джампера стоят. Каретка по Z (на винтах) взлетает за секунды

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

RootAdmin » 15 мар 2016, 12:49

delay принимает значения в миллисекундах. Зачем оно вообще?

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

Myp » 15 мар 2016, 15:27

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

delay(1) это задержка в 1 миллисекунду, для начала неплохо бы перейти с миллисекунд на микросекунды
заменив на delayMicroseconds(100) мотор будет вращаться в 10 раз быстрее.

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

GaD » 15 мар 2016, 16:03

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

ну это как вы реализуете

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

MIHAnik22 » 15 мар 2016, 17:45

Myp, АААА вооот, вот то что нужно!)

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

RootAdmin » 15 мар 2016, 18:52

Но это крайне "прямая" практика. Нормально - это настроить таймер, который будет дергать ногой независимо от того чем сейчас занимается основная программа.

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

MIHAnik22 » 15 мар 2016, 19:11

RootAdmin, а разве библиотека AccelStepper.h этого не делает?


Rambler\'s Top100 Mail.ru counter