Нужна помощь

neobi
Offline
Зарегистрирован: 03.12.2012

Здраствуйте дорогие форумчани. Прошу помоши в написании програмного аналога шим по типу кода написаного ниже 

digitalWrite(13, HIGH)
delaymicosecond(temp_d)
digitalWrite(13, LOW)

Суть вопроса состоит в том что мне нужно регулировать скфажность между импульсами от temp_d = 300 по установлную например temp_d = 10

Этот код необходим для управления AC SERVO DRIVER

  while (1) {
        if (param_X != 0) {digitalWrite(p_imp_X, HIGH); --param_X;} else {digitalWrite(13, HIGH); param_X=param_X+0;}
        delayMicroseconds(t_delay_x);
        if (param_X != 0) {digitalWrite(p_imp_X, LOW); param_X=param_X+0;} else {digitalWrite(13, LOW); param_X=param_X+0;}   
        if (temp_count_imp_y >= 100){
         if (param_X+param_Y+param_Z > 10000) {if (t_delay_x > delay_l) {--t_delay_x;} else {t_delay_x=delay_l+0;t_delay_x=delay_l+0;t_delay_x=delay_l+0;}} else {if (t_delay_x <= def_delay) {++t_delay_x;} else {t_delay_x=def_delay+0;t_delay_x=def_delay+0;t_delay_x=def_delay+0;}}
           temp_count_imp_y = 0; 
        }
        else {
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
          t_delay_x = t_delay_x+0;
        }
        ++temp_count_imp_y;

      if (param_X == 0) {break;}  
    }

Код написан, в нём непонятка его работы тоесть когда задержка уменьшается до минимальной происходит рывок двигателя и тоже самое происходи при увеличении задержки. Вообщем БЕДА ребята помогите. Библиотека для управления шаговым двигателем неустраивает из за своей малой сокрости. 

 

Буду рад любомй помощи.

 

neobi
Offline
Зарегистрирован: 03.12.2012

Плохо что никто незнает как можно исправить проблему.

Leshiy
Offline
Зарегистрирован: 19.07.2014

Ну тут как бы никто никому не должен. Захотят - ответят.

И переоформите код, иф елсе в строку ломают моск напополам.

art100
Offline
Зарегистрирован: 09.03.2014

Leshiy пишет:

Ну тут как бы никто никому не должен. Захотят - ответят.

И переоформите код, иф елсе в строку ломают моск напополам.

я пишу для экранов 600 точек но этот кадр чудо :)

ты тоже не смог постич сего замысла :)

пущай мне из ночного найдет косяк в ШИМ-е, если у него такой чудо экран. Когда на 768 экране откроешь сразу виден косяк сииметрично паралельности повторяльности

  if(PowerTmp==1){ digitalWrite(RELE1,HIGH); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print("   ON "); }//
  if(PowerTmp==2){ analogWrite (RELE1,  25); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print("  25% ");  }//
  if(PowerTmp==3){ analogWrite (RELE1,  50); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print("  70% ");  }//
  if(PowerTmp==4){ analogWrite (RELE1,  75); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print("  75% ");  }//
  if(PowerTmp==5){ analogWrite (RELE1, 100); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print(" 100% ");  }//
  if(PowerTmp==6){ analogWrite (RELE1, 125); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print(" 125% ");  }//
  if(PowerTmp==7){ analogWrite (RELE1, 150); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print(" 150% ");  }//
  if(PowerTmp==8){ analogWrite (RELE1, 175); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print(" 175% ");  }//
  if(PowerTmp==9){ analogWrite (RELE1, 200); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print(" 200% ");  }//
  if(PowerTmp==0){ digitalWrite(RELE1, LOW); lcd.setCursor(0,1); lcd.print(" 220v = "); lcd.setCursor(8,1); lcd.print(number); lcd.print("  OFF "); }//

 

его код надо на моем экране с шириной 1600 по горизонтали смотреть 

что-то прояснятся

и все равно мутно

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

А что у Вас этот блок делает?

 

else {
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
      }

 

art100
Offline
Зарегистрирован: 09.03.2014

JollyBiber пишет:

А что у Вас этот блок делает?

 

else {
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
      }

 

как что это препод дал для изучения?

значит правильный код

а ну ка быстренько накинулись решили курсовую

 

neobi
Offline
Зарегистрирован: 03.12.2012

Люди добрые я ниоткого ничего нетребую. Просто както не по себе читая форум сложилось впечетление что некоторые люди с Arduino просто спят в одной кровате.

Сразу скажу никакого препода нет и это не курсовая.

else {
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
      }

Этот участок кода. 

Создаёт псевдо задержку когда условие ложное. Я думал что может из за этого рывок уменьшится на двигателе и даже вродебы его сглаживает но есть большое НО! даже когда я их добавляю ещё штук 50 дальше рывок не сглаживается.

И поповоду длиноты условий извините я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. (На вкус и цвет серавно фломастеры разные)

while (1) {
      if (param_X != 0) 
        {
          digitalWrite(p_imp_X, HIGH);
          --param_X;
        } 
      else 
        {
          digitalWrite(13, HIGH);
          param_X=param_X+0;
        }
      delayMicroseconds(t_delay_x);
      if (param_X != 0) 
        {
          digitalWrite(p_imp_X, LOW); 
          param_X=param_X+0;
        } 
      else 
        {
          digitalWrite(13, LOW); 
          param_X=param_X+0;
        }   
      if (temp_count_imp_y >= 100)
      {
       if (param_X+param_Y+param_Z > 10000) 
         {
           if (t_delay_x > delay_l) 
             {
               --t_delay_x;
             } 
           else 
             {
               t_delay_x=delay_l+0;
               t_delay_x=delay_l+0;
               t_delay_x=delay_l+0;
             }
         } 
       else 
         {
           if (t_delay_x <= def_delay) 
             {
               ++t_delay_x;
             } 
           else 
             {
               t_delay_x=def_delay+0;
               t_delay_x=def_delay+0;
               t_delay_x=def_delay+0;
             }
         }
         temp_count_imp_y = 0; 
      }
      else {
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
      }
      ++temp_count_imp_y;

    if (param_X == 0) 
    {
      break;
    }  
  }
Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Спят с ардуино. . Народ, мне кажется что он что то о нас знает.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

а чем delay() не устраивает?

neobi
Offline
Зарегистрирован: 03.12.2012

тоесть вместо той фигни что я написал при ложном условии поставить delayMicrosecons(2 или что то типо того ?). Но всёже когда я увеличил количество ложных выражений рывок на двигателе не уменьшился. Да я и толком не могу представить как я DelayMicroseconds могу заменить логическое выражение для выполнения условия как мне помнится уходит 3 такта а delayMicrosecons намого больше чем 3. 

Но видать я слишком глубоко полез. (у меня догатка в том что рывок какраз происходит когда я достигаю минимальной задержки и где просто больше невыполняется условие и соответсвенно задерка ещё больше уменьшается...)

Leshiy
Offline
Зарегистрирован: 19.07.2014

То есть, если выжать всё и взять сухой остаток, то вы делаете собственный ШИМ, который, при уменьшении скважности до значения X вызывает нервное подёргивание двигателя? Так? Или вы под "рывком" что-то иное подразумеваете?

neobi
Offline
Зарегистрирован: 03.12.2012

Leshiy пишет:

То есть, если выжать всё и взять сухой остаток, то вы делаете собственный ШИМ, который, при уменьшении скважности до значения X вызывает нервное подёргивание двигателя? Так? Или вы под "рывком" что-то иное подразумеваете?

 

Да всё верно. Только в отличии от других реализаций ШИМ мене критично отсчитывать количество импульсов.

Или может кто знает как увеличить скорость в библиотеке AccelStepper. В ней что я только не делал но скорость оборота двигателей очень низкая.

vvadim
Offline
Зарегистрирован: 23.05.2012

Да и не будет у вас на  шаговике высокая скорость с любой библиотекой. Шаговый двигатель для получения большой скорости нужно РАЗГОНЯТЬ.

neobi
Offline
Зарегистрирован: 03.12.2012

vvadim пишет:

Да и не будет у вас на  шаговике высокая скорость с любой библиотекой. Шаговый двигатель для получения большой скорости нужно РАЗГОНЯТЬ.

Я в первом посте написал это не шаговый двигатель это Servo Motor с управление от AC Servo Driver Panasonic (на 5 киловат).

art100
Offline
Зарегистрирован: 09.03.2014

нормально

Может мне Lisec драйвера асинхронных трехфазных с енкодерами на 2 киловата присобачить к ардцуине?

А нука быстренько мне код написали еа Intel80386 на немецкой DR-DOS6.22 ?

Там датчики от Omron-а неужели не подключали номер по каталогу 12341239057812395012 ?

Я вот CAN шину опрашиваю а она отвечает быстро и сразу ось X включается и несется эти 120 килограм на меня.

Страшно.

я правильно делаю

count++++++ 

столько задержек хватит?

Деточка отойди от станка. 

Эй на охране вы что спите?

Почему дети в опасной зоне роботов?

 

Мы так сразу поняли какая у вас схема, потому что мы с ней спим ночами.

 

art100
Offline
Зарегистрирован: 09.03.2014

neobi пишет:

... я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. ...

и че?

У меня 4 монитора общим полем 1600+1600х1455+1455 это не значит что надо превышать стандартные 80 символов в тексте или 600 пикселей в графике.

Где интрукции читать? Ах да у меня код на всю область. А инструкция где-то там под слоями третьими...десятыми.

 

 

neobi
Offline
Зарегистрирован: 03.12.2012

Ну молодцы обгадели как могли.

По поводу Lisec. У нас на заводе стоит Liseс (мойка, Экструдер, Первичная гермитизация и Порезочный стол) Мойка пока ещё работает на своих мозгах, а стол, Экструдер и первичную гермитизация я полностью перевёл на работу от ардуино+Raspberry PI и нафик выкинул стандартные ихние мозги. А вот с управлением AC SERVO DRIVER PANASONIC у меня получилась загвозка. 

Да и вообще причём тут внешний вид кода если кому ненравится скопируйте и приведите его к той визуальной форме какая вас больше всего устраивает, и вообще код был приведён как примерочный я больше чем на 100% уверен что он ошибочный, и хотел бы узнать может кто сталкивался с такого рода проблемой и решил её.

Кто может занимался разработкой кода программного ШИМ с регулировкой скважности и отсчитывания количества импульсов.

И странно зачем писать в теме посты которы никак некасаются возникшего вопроса?

neobi
Offline
Зарегистрирован: 03.12.2012

art100 пишет:

neobi пишет:

... я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. ...

и че?

У меня 4 монитора общим полем 1600+1600х1455+1455 это не значит что надо превышать стандартные 80 символов в тексте или 600 пикселей в графике.

Где интрукции читать? Ах да у меня код на всю область. А инструкция где-то там под слоями третьими...десятыми.

 

while (1) {
      if (param_X != 0) 
        {
          digitalWrite(p_imp_X, HIGH);
          --param_X;
        } 
      else 
        {
          digitalWrite(13, HIGH);
          param_X=param_X+0;
        }
      delayMicroseconds(t_delay_x);
      if (param_X != 0) 
        {
          digitalWrite(p_imp_X, LOW); 
          param_X=param_X+0;
        } 
      else 
        {
          digitalWrite(13, LOW); 
          param_X=param_X+0;
        }   
      if (temp_count_imp_y >= 100)
      {
       if (param_X+param_Y+param_Z > 10000) 
         {
           if (t_delay_x > delay_l) 
             {
               --t_delay_x;
             } 
           else 
             {
               t_delay_x=delay_l+0;
               t_delay_x=delay_l+0;
               t_delay_x=delay_l+0;
             }
         } 
       else 
         {
           if (t_delay_x <= def_delay) 
             {
               ++t_delay_x;
             } 
           else 
             {
               t_delay_x=def_delay+0;
               t_delay_x=def_delay+0;
               t_delay_x=def_delay+0;
             }
         }
         temp_count_imp_y = 0; 
      }
      else {
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
        t_delay_x = t_delay_x+0;
      }
      ++temp_count_imp_y;

    if (param_X == 0) 
    {
      break;
    }  
  }

Так выглядит лутше ? 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

софтварный шим

скважность конечно регулируется

#include <TimerOne.h>

#define TOTAL 6

byte port_states[256];
int brightness = 0;
int fadeAmount = 5;

volatile byte pwm_cnt=0;

void setup()  { 
  for(byte i=8;i<=13;i++){
    pinMode(i, OUTPUT);  //настраиваем выводы с 8 по 13 на выход
  }

  Timer1.initialize(80);
  Timer1.attachInterrupt(timer_action);
} 

void loop(){

  for (byte i=0;i<TOTAL;i++){
    setLevel(i,brightness); // ставим 50% яркость на 3-тьем канале 
  }


  brightness = brightness + fadeAmount;
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  delay(200);   
}

void setLevel(byte channelNo,byte channelLevel){
  // делаем предрасчет состояния порта для каждого возможного pwn_cnt
  for(int i=0;i<=255;i++){
    bitWrite(port_states[i],channelNo,i<channelLevel);
  }

}

void timer_action(){
  PORTB = port_states[pwm_cnt++]; // тупо выставляем порт в следующие предрасчитанное значение
}

перечитывать лень. вам просто нужно увеличить количество шимов или другая задача? если количество шимов только сколько надо и для чего. возможно есть более элегантное решение

neobi
Offline
Зарегистрирован: 03.12.2012

jeka_tm пишет:

софтварный шим

скважность конечно регулируется

#include <TimerOne.h>

#define TOTAL 6

byte port_states[256];
int brightness = 0;
int fadeAmount = 5;

volatile byte pwm_cnt=0;

void setup()  { 
  for(byte i=8;i<=13;i++){
    pinMode(i, OUTPUT);  //настраиваем выводы с 8 по 13 на выход
  }

  Timer1.initialize(80);
  Timer1.attachInterrupt(timer_action);
} 

void loop(){

  for (byte i=0;i<TOTAL;i++){
    setLevel(i,brightness); // ставим 50% яркость на 3-тьем канале 
  }


  brightness = brightness + fadeAmount;
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  delay(200);   
}

void setLevel(byte channelNo,byte channelLevel){
  // делаем предрасчет состояния порта для каждого возможного pwn_cnt
  for(int i=0;i<=255;i++){
    bitWrite(port_states[i],channelNo,i<channelLevel);
  }

}

void timer_action(){
  PORTB = port_states[pwm_cnt++]; // тупо выставляем порт в следующие предрасчитанное значение
}

перечитывать лень. вам просто нужно увеличить количество шимов или другая задача? если количество шимов только сколько надо и для чего. возможно есть более элегантное решение

 

Задача состоит в том чтобы отправлять миандр с плавным понижением длинны импульса до указанной и при достижении допустим Х-4000 импульсов начать плавное увеличение ширины импульса

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну тогда это почти то что вам нужно

нужно просто переделать ее и будет делать то что нужно

вы что сканер собираете?

art100
Offline
Зарегистрирован: 09.03.2014

neobi пишет:

Ну молодцы обгадели как могли.

По поводу Lisec. У нас на заводе стоит Liseс (мойка, Экструдер, Первичная гермитизация и Порезочный стол) Мойка пока ещё работает на своих мозгах, а стол, Экструдер и первичную гермитизация я полностью перевёл на работу от ардуино+Raspberry PI и нафик выкинул стандартные ихние мозги. А вот с управлением AC SERVO DRIVER PANASONIC у меня получилась загвозка. 

Да и вообще причём тут внешний вид кода если кому ненравится скопируйте и приведите его к той визуальной форме какая вас больше всего устраивает, и вообще код был приведён как примерочный я больше чем на 100% уверен что он ошибочный, и хотел бы узнать может кто сталкивался с такого рода проблемой и решил её.

Кто может занимался разработкой кода программного ШИМ с регулировкой скважности и отсчитывания количества импульсов.

И странно зачем писать в теме посты которы никак некасаются возникшего вопроса?

GLASSBEL ?

да как бы не одну тонну стекла сьели

и ЧПУ не последний построил

кто знает твою схему

код писать можно как угодно

но под что?

 

art100
Offline
Зарегистрирован: 09.03.2014

дарю

// stepper motor 1 pololulu A4988 -------------------------------
void stepA4988_1(boolean dir1,int steps1,int msec1){
  digitalWrite(DIR_PIN1,dir1);                // direction
  for(int i=0;i<steps1;i++){
    digitalWrite(STEPPIN1,HIGH); delayMicroseconds(msec1);
    digitalWrite(STEPPIN1, LOW); delayMicroseconds(msec1);
  }
}

и вот куда ты его всунешь?

 

art100
Offline
Зарегистрирован: 09.03.2014

neobi пишет:
... миандр с плавным понижением длинны импульса до указанной и при достижении допустим Х-4000 импульсов начать плавное увеличение ширины импульса...

перевожу на русский

Шаговый биполярный мотор для напольного станка с ЧПУ требует

1.разгон

2.рабочий ход и

3.торможение

4.удержание.

5 снятие напряжения(сервисный режим)

я правильно понял?

пока схемы твоего дравера мотора не будет в студии разовор ни о чем

щас произойдет

о чудо так в связке драйвер-мотор уже реализованы 1 и 3 пункты и там не импульсы надо анапрвления и шаги

ой ач то это за микрики на дравере

ой а что это за предохранитель на драйвере

но ничего продолжаем обусжать черти что 

и так

о чем мы там

о милисекундах?

 

 

 

 

art100
Offline
Зарегистрирован: 09.03.2014

короче наймите меня я вам починю старые процы в станках

Radjah
Offline
Зарегистрирован: 06.08.2014

art100 пишет:

дарю

    digitalWrite(STEPPIN1,HIGH); delayMicroseconds(msec1);
    digitalWrite(STEPPIN1, LOW); delayMicroseconds(msec1);

Если там сразу регистры портов дергать, то еще быстрее будет.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а зачем быстрее если даже задержка добавлена. слишком быстро шаговик может не успеть

Leshiy
Offline
Зарегистрирован: 19.07.2014

jeka_tm пишет:

а зачем быстрее если даже задержка добавлена. слишком быстро шаговик может не успеть

Анекдот про мужиков и японскую пилу знаешь? Вот затем и надо быстрее, что кругом все тупые, оригинальные мозги еле шевелят лапками, а мы ща на ардуино в 100 раз быстрее всё сделаем, сразу стока денег у нас будет, что мы даже отремонтировать станок сможем, который только что разломали.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вот вот. если слишком быстро будет просто пищать, но не будет крутится

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

jeka_tm пишет:

вот вот. если слишком быстро будет просто пищать, но не будет крутится


Если станок пищит и не крутится, то значит мыши устали и хотят пить.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
Radjah
Offline
Зарегистрирован: 06.08.2014

Вообще, я про накладные расходы при вызове digitalWrite, я не про увеличение частоты.

Leshiy
Offline
Зарегистрирован: 19.07.2014

Radjah пишет:

Вообще, я про накладные расходы при вызове digitalWrite, я не про увеличение частоты.

А это действительно настолько критичная часть?

neobi
Offline
Зарегистрирован: 03.12.2012

Здраствуйте ещё раз. Не было возможности зайти на форум. 

AC SERVO DRIVER управление происходит один в один как на шаговые двигатели (DIR, STEP, ENB).

функция перемещения переписал до вот такого вида 

int _run_line() {
  long param_X_X = param_X;
  while (1) {
    if (param_X > 4000) 
    { 
      param_Y = constrain(
                          map(
                              param_X
                              , param_X_X-4000
                              , param_X_X
                              , 0
                              , 300)
                          , delay_l
                          , 300
                         ); //Ускорение двигателя
    }
    else 
    { 
      param_Y = constrain(
                          map(
                              param_X
                              , 0
                              , 4000
                              , 300
                              , 0)
                          , delay_l
                          , 300
                         ); //Торможение двигателя
    }
    if (param_X != 0) 
    {
      digitalWrite(p_imp_X, HIGH); 
      param_X = param_X - 1;
    }
    delayMicroseconds(param_Y); //задержка между порогами
    if (param_X != 0) 
    {
      digitalWrite(p_imp_X, LOW);
      param_X = param_X + 0;
    }
    if (param_X == 0) {break;}
    }
}

Но в итоге происходит тоже самое.

может кто сталкивался с Panasonic MFDDTA390003. Думаю что можно решить этот вопрос уменьшением количества импульсов на 1мм, сейчас что бы зделать передвижение на 1мм мне необходимо подать param_X = 50 импульсов. Документацию перечитывал уже несколько раз немогу понять где в параметрах можно отредактировать количество импульсов на оборот (На драйверах шагового двигателя есть такая байда можно выставить количество импульсов за 1 полный оборот, надеюсь и в серво драйвере тоже это можно зделать)

Ссылка на документацию:

http://industrial.panasonic.com/ww/i_e/25000/minas_a4_e/minas_a4_e.pdf

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нельзя поменять количество импульсов за оборот. ну нельзя, это железо в моторе определяет количество шагов на оборот

единственное что можно это использовать микрошаг. 1/2 1/4 1/8

neobi
Offline
Зарегистрирован: 03.12.2012

jeka_tm пишет:

нельзя поменять количество импульсов за оборот. ну нельзя, это железо в моторе определяет количество шагов на оборот

единственное что можно это использовать микрошаг. 1/2 1/4 1/8

 

Извените я и имелл введу микрошаг.