Ви не увійшли.
Здравствуйте,
Купил Arduino UNO, шаговый двигатель http://arduino-ua.com/prod531-Shagovii_ … -1004A_27V, и рекомендуемый драйвер к нему - http://arduino-ua.com/prod527-Draiver_s … ya_DRV8834. Схему подключения взял на сайте производителя:
Чётко понимаю как подключить драйвер и двигатель (на схеме всё чётко расписано), а вот как подключить драйвер и ардуино - не понимаю. К каким пинам подключать Step и Dir. Нашёл несколько статей в интернете, и они кардинально отличаются друг от друга.
Помогите, пожалуйста, советом как это правильно подключить и набросать скетч или дайте ссылку на теорию. Заранее благодарен за любую помощь.
По этой статье мне удалось только добиться пищания двигателя - http://arduino.ru/forum/programmirovani … igatelem-0
Неактивний
почитайте http://bildr.org/2011/06/easydriver/
Неактивний
почитайте http://bildr.org/2011/06/easydriver/
Спасибо за ссылку. К сожалению ясности она мне не дала, буду ещё раз перечитывать.
На сайте pololu в faq я нашёл скетч для теста и как подключить эти компоненты между собой. Сделал всё по инструкции, а моторчик дальше только пищит
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);
}
}
Неактивний
http://www.ti.com/product/DRV8834/technicaldocuments
DRV8834 Dual-Bridge Stepper or DC Motor Driver:
http://www.ti.com/lit/ds/symlink/drv8834.pdf
если что то не получается ( или сгорело ) - читайте инструкцию )
Неактивний
Вот мои результаты:
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);
}
У меня два вопроса:
- двигатель всё время попискивает, - и во время движения и когда остановлен (использую стандартные тоненькие проводки)
- двигатель можно остановить пальцами во время движения
Что я делаю не так?
Неактивний