#1 2015-11-09 15:51:50

gorenkov
Участник
Из Кіев
Зарегистрирован: 2015-11-05
Сообщений: 41

Нужен совет. Arduino Uno & драйвер & шаговый двигатель

Здравствуйте,

Купил  Arduino UNO, шаговый двигатель http://arduino-ua.com/prod531-Shagovii_ … -1004A_27V, и рекомендуемый драйвер к нему - http://arduino-ua.com/prod527-Draiver_s … ya_DRV8834. Схему подключения взял на сайте производителя:
large_DRV8834stepperDriver6.jpg

Чётко понимаю как подключить драйвер и двигатель (на схеме всё чётко расписано), а вот как подключить драйвер и ардуино - не понимаю. К каким пинам подключать Step и Dir. Нашёл несколько статей в интернете, и они кардинально отличаются друг от друга.

Помогите, пожалуйста, советом как это правильно подключить и набросать скетч или дайте ссылку на теорию. Заранее благодарен за любую помощь.



По этой статье мне удалось только добиться пищания двигателя - http://arduino.ru/forum/programmirovani … igatelem-0

#2 2015-11-09 22:18:15

vvr
Участник
Зарегистрирован: 2015-04-12
Сообщений: 670

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

#3 2015-11-10 13:35:10

gorenkov
Участник
Из Кіев
Зарегистрирован: 2015-11-05
Сообщений: 41

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

vvr пишет:

Спасибо за ссылку. К сожалению ясности она мне не дала, буду ещё раз перечитывать.

На сайте pololu в faq я нашёл скетч для теста и как подключить эти компоненты между собой. Сделал всё по инструкции, а моторчик дальше только пищит sad

1. Может кто подскажет, при каких ситуациях моторчик может пищать и не двигаться? Во время пищания/подачи питания вал блокируется и прокрутить его не возможно.

2. Для чего нужен SLEEP, зачем на него постоянно подавать 5в? Нашёл вот эту статью - http://arduino.ru/forum/programmirovani … igatelem-0 она меня ещё больше запутала...


/* Simple step test for Pololu stepper motor driver carriers 
This code can be used with the A4988, DRV8825, DRV8824, and 
DRV8834 Pololu stepper motor driver carriers.  It sends a pulse 
every 500 ms to the STEP pin of a stepper motor driver that is 
connected to pin 2 and changes the direction of the stepper motor
every 50 steps by toggling pin 3. */
 
#define STEP_PIN 2
#define DIR_PIN 3
 
bool dirHigh;
 
void setup()
{
  dirHigh = true;
  digitalWrite(DIR_PIN, HIGH);
  digitalWrite(STEP_PIN, LOW);
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
}
 
void loop()
{
  // Toggle the DIR pin to change direction.
  if(dirHigh)
  {
    dirHigh = false;
    digitalWrite(DIR_PIN, LOW);
  }
  else
  {
    dirHigh = true;
    digitalWrite(DIR_PIN, HIGH);
  }
 
  // Step the motor 50 times before changing direction again.
  for(int i = 0; i < 50; i++)
  {
    // Trigger the motor to take one step.
    digitalWrite(STEP_PIN, HIGH);
    delay(250);
    digitalWrite(STEP_PIN, LOW);
    delay(250);
  }
}

#4 2015-11-10 18:22:48

vvr
Участник
Зарегистрирован: 2015-04-12
Сообщений: 670

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

если обеспечили правильное питание драйвера и всё правильно подключили то нужно выставить рабочий ток на драйвере

#5 2015-11-11 15:07:53

NoName
Customer
Из Київ
Зарегистрирован: 2014-07-08
Сообщений: 1,446

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

http://www.ti.com/product/DRV8834/technicaldocuments

DRV8834 Dual-Bridge Stepper or DC Motor Driver:
http://www.ti.com/lit/ds/symlink/drv8834.pdf

если что то не получается ( или сгорело ) - читайте инструкцию )

#6 2015-11-27 17:32:03

gorenkov
Участник
Из Кіев
Зарегистрирован: 2015-11-05
Сообщений: 41

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

Вот мои результаты:

1. Ограничил силу тока на каждую обмотку, как описано в инструкции на сайте производителя.
2. Дал нормальное питание (10В, 5А) - двигатель заработал, пример скетча ниже:

/*
 Stepper Motor Control - one revolution

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor should revolve one revolution in one direction, then
 one revolution in the other direction.


 Created 11 Mar. 2007
 Modified 30 Nov. 2009
 by Tom Igoe

 */

#include <Stepper.h>

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

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

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(10);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(1000);

  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(1000);
}

У меня два вопроса:
- двигатель всё время попискивает, - и во время движения и когда остановлен (использую стандартные тоненькие проводки)
- двигатель можно остановить пальцами во время движения

Что я делаю не так?

#7 2015-11-27 18:21:42

gorenkov
Участник
Из Кіев
Зарегистрирован: 2015-11-05
Сообщений: 41

Re: Нужен совет. Arduino Uno & драйвер & шаговый двигатель

Во время работы, драйвер и двигатель заметно греются. Двигатель довольно хорошо греется.

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела