Oleh Mohd Qhairul Bakri dalam Tutorial Arduino
Tahap Kesukaran : Baru Mula Belajar

>> Pengenalan <<

Motor stepper 28BYJ-48 merupakan antara motor stepper kecil kos rendah yang beroperasi dengan 5V arus terus. Selalunya motor stepper ini didatangkan sekali dengan modul pemandu motor ULN2003A. Motor ini juga mempunyai tork yang agak kuat jika dibandingkan dengan saiznya yang kecil. Ini kerana ia mempunyai reduction gear yang bernisbah 64:1. Motor stepper mempunyai perbezaan yang ketara daripada motor arus terus atau servo. Antara perbezaannya ialah putaran motor stepper dapat dikawal dengan tepat berdasarkan darjah putaran yang diinginkan manakala ini sangat mustahil dilakukan pada motor arus terus tanpa enkoder. Walaupun motor servo boleh dikawal berdasarkan darjah putaran, namun kebanyakan motor servo dapat berputar pada 180 darjah sahaja.

>> cara operasi dan kawalan <<

Rajah skematik motor stepper jenis Unipolar (28BYJ-48)

Terdapat dua pilihan mod untuk mengawal motor ini iaitu mod half-step dan mod full-step.

Half-step Full-step
8 step urutan kawalan 4 step urutan kawalan
5.625 darjah setiap step 11.25 darjah setiap step
64 step untuk satu putaran lengkap shaf motor 32 step untuk satu putaran lengkap shaf motor

Untuk tutorial ini, kita akan menggunakan mod full-step. Memandangkan motor stepper ini mempunyai reduction gear bernisbah 64:1, ini bermaksud motor memerlukan 2,048 step (32 x 64 = 2,048) untuk membuat satu putaran lengkap.

Pin motor stepper 4 step urutan kawalan
1 2 3 4
Orange (4) High Low Low Low
Yellow (3) Low High Low Low
Pink (2) Low Low High Low
Blue (1) Low Low Low High

>> aplikasi <<

Antara aplikasi yang menggunakan motor stepper ialah mesin CNC dan juga mesin pencetak 3D. Mesin CNC digunakan untuk memotong atau melarik bahan kerja dengan ukuran yang tepat berdasarkan reka bentuk di dalam komputer. Selain itu, mesin pencetak 3D pula berupaya merealisasikan sesuatu reka bentuk dari dalam komputer ke dunia nyata. Motor stepper memainkan peranan penting kerana berupaya memberikan pergerakan yang begitu tepat untuk mesin-mesin ini bergerak sekaligus dapat memberikan hasil kerja yang kemas dan sempurna.

>> KOMPONEN YANG ANDA PERLUKAN <<

Tutorial ini akan mengajar anda cara-cara menggunakan motor stepper jenis 28BYJ-48 beserta pemandu motor stepper ULN2003A dengan papan Arduino Uno. Antara komponen yang anda perlukan ialah :

>> Sambungan litar <<

>> kod arduino <<

//Developer: Mohd Qhairul Bakri
//Date: 4/3/2019

//Sambungan pin pemandu stepper
#define IN1 9  //IN1
#define IN2 8  //IN2
#define IN3 7  //IN3
#define IN4 6  //IN4

void StepperClockwise(int StepDelay);
void StepperAnticlockwise(int StepDelay);

void setup()
{
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

void loop()
{
  //putaran lawan arah jam
  for(int i=0; i<510; i++)    //satu putaran penuh = 2038 step, subroutine mempunyai 4 step, 2038/4=509.5
  {
    StepperAnticlockwise(3);
  }

  for(int i=0; i<510; i++)
  {
    StepperClockwise(3);
  }
}

void StepperAnticlockwise(int StepDelay)
{
  digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); //step 1
  delay(StepDelay);  
  digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); //step 2
  delay(StepDelay);
  digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); //step 3
  delay(StepDelay);
  digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); //step 4
  delay(StepDelay);
}

void StepperClockwise(int StepDelay)
{
  digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); //step 1
  delay(StepDelay);
  digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); //step 2
  delay(StepDelay);
  digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); //step 3
  delay(StepDelay);
  digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); //step 4
  delay(StepDelay);
}

Daripada kod di atas, motor stepper akan membuat satu putaran lengkap mengikut arah putaran jam dan kemudian akan membalas 1 putaran lengkap melawan arah putaran jam. Proses ini akan sentiasa berulang.

>> Tahniah, anda hebat <<

Kini anda telah menyelesaikan tutorial motor stepper 28BYJ-48 dan berjaya menggunakan motor stepper bersama Arduino.

Baca tutorial lain yang disediakan oleh penulis Mohd Qhairul Bakri di Arduino Bagaimana Untuk Menggunakan Sensor Suhu TMP36.

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini