Разъясните по Шаговым Движкам пожалуйста

Pazific
Offline
Зарегистрирован: 30.05.2016

Нужно срочно написать программу для управления шаговыми двигателями (для манипулятора). Есть такой драйвер

http://electroprivod.ru/pdf/SMD-1.8-pasp.pdf вопрос: нужно ли использовать библиотеки? или просто могу написать что на step подать столько то импульсов, на DIR и ENABLE подать либо ноль либо единицу и все будет работать? в чем я не прав? Причина, по которой пришел к этому выводу - везде в коде используют 4 пина для подключения ШД, но в моем драйвере их 3, выхода у драйвера 4, значит это для подключения напрямую? С программированием знаком по стольку по скольку. Практики 0. Ну если у кого-то пример завалялся - расцелую. 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Pazific пишет:

вопрос: нужно ли использовать библиотеки? 

Как хотите.

Pazific пишет:

на step подать столько то импульсов, на DIR и ENABLE подать либо ноль либо единицу и все будет работать?

Найдите даташит, там все описано

Pazific пишет:

Ну если у кого-то пример завалялся - расцелую. 

По нику ничего нельзя сказать о Вашем поле, потому я на всякий случай воздержусь от публикации примера - не хватает мне по жизни толерантности :)

 

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

все нормально по пинам. 4 это другой случай.

управлять просто en подать 0. на dir 1 или 0 в зависимости от направления, на step 0 и 1 для одного шага. sw переключатели для микрошагов выставить

целовать не надо. я не толерантен

Pazific
Offline
Зарегистрирован: 30.05.2016
int dir1 = 13;
int enb1 = 14;
int step1 = 15;
void setup()
{
  pinMode(dir1, OUTPUT);      // устанавливает режим работы - выход
  pinMode(enb1, OUTPUT);
  pinMode(step1, OUTPUT);
}
void loop()
{
   for (int i=0; i <= 100; i++){
      analogWrite(dir1, HIGH);
      analogWrite(enb1, HIGH)
      analogWrite(step1, HIGH)
      delay (10);
      analogWrite(step1, LOW)
      delay (10)
   }
}
 

Ну то есть, если подобным образом составить программу то взлетит? 

А SW переключатели это же на самом драйвере? Ну в смысле не программно.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
#define dir1  13
#define enb1  14
#define step1 15

void setup(){
  pinMode(dir1, OUTPUT);      // устанавливает режим работы - выход
  pinMode(enb1, OUTPUT);
  pinMode(step1, OUTPUT);
}
void loop(){
  digitalWrite(enb1, HIGH);
  digitalWrite(dir1, HIGH);
  for (int i=0; i < 100; i++){ // 100 шагов
    digitalWrite(step1, LOW);
    delay (10);
    digitalWrite(step1, HIGH);
    delay (10);
  }
  digitalWrite(dir1, LOW);
  for (int i=0; i < 100; i++){ // 100 шагов
    digitalWrite(step1, LOW);
    delay (10);
    digitalWrite(step1, HIGH);
    delay (10);
  }
}

да на самом драйвере

Pazific
Offline
Зарегистрирован: 30.05.2016

спасибо большое)

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

так ты парень или девушка? интрига все таки

Pazific
Offline
Зарегистрирован: 30.05.2016

Pazific пишет:

 С программированием знаком по стольку по скольку. 

 

В первом сообщении есть такая строчка)

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

Pazific пишет:

В первом сообщении есть такая строчка)

понятно

Pazific пишет:

Ну если у кого-то пример завалялся - расцелую. 

жесть. фу фу фу

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Рано вы забыли товарища Брежнева с его крепкими мужскими поцелуями....

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Pazific пишет:
Ну то есть, если подобным образом составить программу то взлетит?

Так поставьте на полосу и посмотрите взлетит или нет.

Logik
Offline
Зарегистрирован: 05.08.2014

Mr.Privet пишет:

Рано вы забыли товарища Брежнева с его крепкими мужскими поцелуями....

Прям как в ангдоте - програмист никакой, зато как целуется ;)