StepperSpeedControl

Step motorlar, benzersiz tasarımları nedeniyle, herhangi bir geri bildirim mekanizması olmadan yüksek doğrulukta kontrol edilebilir. Bir dizi mıknatıs ile monte edilen bir kademenin şaftı, belirli bir sırayla pozitif ve negatif olarak yüklenen ve küçük "adımlarda" tam olarak ileri veya geri hareket eden bir dizi elektromanyetik bobin tarafından kontrol edilir.

İki tip step vardır, Unipolars ve Bipolars ve hangi tipte çalıştığınızı bilmek çok önemlidir. Motorların her biri için farklı bir devre vardır. Örnek kod her iki motoru da kontrol edecektir. Motorunuzu nasıl bağlayacağınız hakkında bilgi için tek kutuplu ve iki kutuplu motor şemalarına bakın.

Bu örnekte, analog giriş 0 üzerindeki bir potansiyometre (veya başka bir sensör), Arduino Step Kütüphanesi kullanılarak bir step motorun dönüş hızını kontrol etmek için kullanılır. Step, tek kutuplu veya iki kutuplu motorlar için 8, 9, 10 ve 11 numaralı dijital pimlerle kontrol edilir.

Tek kutuplu bir step kullanıyorsanız Arduino veya Genuino kartı bir U2004 Darlington Dizisine veya bipolar motorunuz varsa SN754410NE H-Bridge'e bağlanır .

İki türün farklılıkları hakkında daha fazla bilgi için lütfen Tom Igoe'un step motorlardaki sayfasına bakınız .

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • 10k ohm potansiyometre
  • step motor
  • U2004 Darlington Dizisi (tek kutuplu bir step kullanılıyorsa)
  • SN754410ne H-Bridge (bipolar step kullanıyorsanız)
  • kendi step için uygun güç kaynağı
  • bağlantı telleri
  • breadboard

devreler

Aşağıda hem unipolar hem de bipolar stepler için devreler bulacaksınız. Her iki durumda da, doğrudan Arduino kartınızdan güç için çok fazla çekildikleri için step motorlarınızı harici bir güç kaynağından beslemek en iyisidir.

Her iki devrede de, silecek çıkışı analog pim 0'a olacak şekilde güç ve toprağa 10k'lık bir pot bağlayın.

Not: Aşağıdaki her iki devre de dört telli konfigürasyonlardır. İki kablo yapılandırması sağlanan kodla çalışmaz.

Tek Kutuplu Step Devresi ve Şematik

Tek Kutuplu Motor Düğmesi Devresi

Tek Kutuplu Motor Düğmesi Şeması

Bipolar Step Devre ve şematik

Bipolar Motor Topuzu Devresi

Bipolar Motor Düğmesi Şeması

Kod

Hem unipolar hem de bipolar stepler için


/*
 Stepper Motor Control - speed control

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.
 A potentiometer is connected to analog input 0.

 The motor will rotate in a clockwise direction. The higher the potentiometer value,
 the faster the motor speed. Because setSpeed() sets the delay between steps,
 you may notice the motor is less responsive to changes in the sensor value at
 low speeds.

 Created 30 Nov. 2009
 Modified 28 Oct 2010
 by Tom Igoe

 */

#include 

const int stepsPerRevolution = 200;  // 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, 8, 9, 10, 11);

int stepCount = 0;  // number of steps the motor has taken

void setup() {
  // nothing to do inside the setup
}

void loop() {
  // read the sensor value:
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
  // set the motor speed:
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution / 100);
  }
}


See Also