Step Motor Kararsız Çalışıyor, Titriyor

  • Konbuyu başlatan munsala
  • Başlangıç tarihi

munsala

Üye
Katılım
16 Eki 2020
Mesajlar
5
Puanları
1
Merhaba,

Birden fazla motor, sürücü, kod vs denedim fakat motor düzgün bir dönüş yapmıyor, titreyerek kararsız şekilde dönüyor ve bu dönüş genelde kod ile belirttiğim şekilde olmuyor.

Aşağıdaki şemaları uygulayarak deniyorum.

12V 15A güç kaynağım var.
Mikrokontrolcü olarak Arduino Uno ve Nano kullanarak deniyorum.
Denediğim NEMA 17 motorlar: 42BYGHD444-01H Linix (6 Kablo) 1.2A ve 17HS3001 HS20B (4 Kablo) 1.2A
Denediğim Sürücüler: DRV8825 (Pololu), A4988(Pololu), A4988(Çin)

Vref ayarlarını defalarca kontrol ediyorum, motor kablolarını direnç ölçerek defalarca kontrol ettim. Tüm bağlantılara defalarca baktım. Fakat hiçbir denememde düzgün bir dönme alamadım.

0J4232.600.png

0J10073.600.jpg

Birçok kod ve kütüphane denedim, denediğim en sade örnek kodlardan biri aşağıda.

C++:
/*Example sketch to control a stepper motor with A4988/DRV8825 stepper motor driver and Arduino without a library. More info: https://www.makerguides.com */
// Define stepper motor connections and steps per revolution:
#define dirPin 2
#define stepPin 3
#define stepsPerRevolution 200
void setup() {
  // Declare pins as output:
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop() {
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 1 revolution slowly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  // Spin the stepper motor 1 revolution quickly:
  for (int i = 0; i < stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
  // Set the spinning direction clockwise:
  digitalWrite(dirPin, HIGH);
  // Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
  // Set the spinning direction counterclockwise:
  digitalWrite(dirPin, LOW);
  //Spin the stepper motor 5 revolutions fast:
  for (int i = 0; i < 5 * stepsPerRevolution; i++) {
    // These four lines result in 1 step:
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}

3 Gündür 1 step motoru süremedim. Nerede hata yapıyor olabilirim?
 

silvestir

Profesyonel Üye
Katılım
10 Ağu 2011
Mesajlar
2,112
Puanları
383
Enable pinlerini 0 volta bağla
 
Konu Sah

munsala

Üye
Katılım
16 Eki 2020
Mesajlar
5
Puanları
1
@silvestir hocam teşekkür ederim. Sorunu çözdüm. Arduino ve sürücü gnd bağlantısı sorunluymuş, dışarıdan kablo ile giderdim ve motor sorunsuz dönüyor. Tavsiye ettiğiniz gibi enable gnd bağlantısı da yaptım. Teşekkür ederim tekrar.
 

Benzer Konular

Forum istatistikleri

Konular
114,006
Mesajlar
802,385
Kullanıcılar
418,009
Son üye
grkmozl

Yeni konular

Üst