Library Lengkap Motor Stepper Bipolar untuk Arduino
Komponen dan Perlengkapan
Arduino UNO
×
1
Driver Motor Dual H-Bridge Texas Instruments L293D
×
1
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Sebelumnya, saya telah menyediakan library Arduino untuk motor stepper tipe unipolar. Ini mengontrol dengan sempurna kecepatan, arah, jumlah revolusi, sudut motor dll semua parameter motor stepper tipe unipolar. Namun itu hanya untuk motor stepper tipe unipolar. Seperti yang kita ketahui motor stepper mungkin juga tipe bipolar. Namun library ini tidak dapat mengontrol motor stepper tipe bipolar. Jadi saya telah memutuskan untuk mengembangkan library arduino lain untuk mengontrol motor stepper tipe bipolar
Jadi, di sini saya menyajikan library motor stepper bipolar di Arduino untuk semua motor stepper tipe bipolar. Library ini memiliki 9 fungsi berbeda yang dapat digunakan untuk memutar dan mengontrol motor sesuai kebutuhan. Library ini dirancang sesuai kebutuhan industrial motioncontrol. Berikut beberapa fitur dari library ini
1. Mengontrol motor stepper bipolar apa pun
2. Mengontrol arah rotasi motor
3. Mengontrol jumlah revolusi motor secara akurat seperti 1, 2, 3, 4,.....
4. Mengontrol kecepatan motor dalam RPM dengan akurasi 95%
5. Memutar motor ke sudut yang diinginkan antara 0 – 360o dengan akurasi 80-100%
6. Kompatibel dengan semua papan arduino
Deskripsi singkat dari semua fungsi library diberikan di sini. Beberapa contoh diberikan setelahnya yang menjelaskan bagaimana motor dikontrol menggunakan library ini. Satu video juga diberikan yang menunjukkan demonstrasi dari contoh-contoh ini. Akhirnya, rangkaian disarankan yang menggunakan chip L293D - banyak digunakan sebagai driver H-bridge untuk motor DC serta motor stepper bipolar.
Untuk menggunakan library ini dalam sketsa arduino Anda, cukup salin folder bi_polar_Stepper ke direktori root folder library arduino seperti C:\arduino-1.6.7\libraries
Deskripsi fungsi library:
1) bi_polar_Stepper(intpin1, int pin2, int pin3, int pin4) - ini akan membuat instance bi_polar_Stepper dalam sketsa arduino dengan pin driver motor stepper. Artinya seseorang harus menentukan papan arduino yang digunakan untuk menggerakkan motor stepper
2) set_step_per_rev(intsteps)- fungsi ini akan mengatur jumlah langkah yang diperlukan oleh motor stepper untuk menyelesaikan 1 revolusi. Artinya akan mengatur sudut langkah (resolusi langkah) motor. Seseorang harus memasukkan sudut langkah motor untuk kontrol yang akurat
3) set_RPM(int rpm) – fungsi ini akan mengatur kecepatan motor dalam RPM dan motor akan berputar pada kecepatan yang dipilih dengan akurasi hingga 95%
4) rotate_CW() - fungsi ini akan memutar motor searah jarum jam. Untuk memutar motor searah jarum jam secara terus menerus seseorang harus menggunakan fungsi ini dalam loop terus-menerus
5) rotate_CCW() - fungsi ini akan memutar motor berlawanan arah jarum jam. Untuk memutar motor berlawanan arah jarum jam secara terus menerus seseorang harus menggunakan fungsi ini dalam loop terus-menerus
6) rotate(int dir)- fungsi ini akan memutar motor sesuai arah yang dipilih. Jika arah diberikan sebagai 1 maka motor akan berputar searah jarum jam dan sebaliknya
7) rotate_one_rev(intdir)- fungsi ini akan memutar motor tepat 1 revolusi dalam arah yang dipilih
8) rotate_n_rev(int dir, intnum)- fungsi ini akan memutar motor jumlah revolusi yang diperlukan dalam arah yang dipilih
9) rotate_x_deg(int deg) – fungsi ini akan memutar motor ke sudut yang diinginkan dari 0 – 360o ke arah mana pun dengan akurasi sudut 80 –100%
Contoh:
1) Memutar motor terus-menerus ke arah mana pun pada 60 RPM
/*program ini akan memutar motor stepper bipolar terus-menerus
* dengan sudut langkah 1.8 derajat (200 langkah/rev) pada 60 RPM
* dibuat oleh Ashutosh Bhatt pada 12/12/16
*/
#include<bi_polar_Stepper.h>
#define steps 200 // ganti steps ini sesuai motor
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 60;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("bipolar stepper motor library test program");
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
Serial.println("motor rotates clockwise");
}
void loop()
{
my_step_motor.rotate_CW();
}
2) Memutar motor satu revolusi searah jarum jam dan satu revolusi berlawanan arah jarum jam terus-menerus
/*program ini akan memutar motor stepper bipolar
* dengan sudut langkah 1.8 derajat (200 langkah/rev)
* sebagai 1 revolusi searah jarum jam (CW) dan satu revolusi
* berlawanan arah jarum jam (CCW) pada 30 RPM terus-menerus
* dibuat oleh Ashutosh Bhatt pada 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("bipolar stepper motor library test program created by Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
my_step_motor.set_RPM(rpm);
}
void loop()
{
Serial.println("motor rotates clockwise");
my_step_motor.rotate_one_rev(1);
delay(1000);
Serial.println("motor rotates anti-clockwise");
my_step_motor.rotate_one_rev(0);
delay(1000);
}
3) Memutar motor searah jarum jam pada 100 RPM dan berlawanan arah jarum jam pada 50 RPM terus-menerus
/*program ini akan pertama memutar motor stepper bipolar
* dengan sudut langkah 1.8 derajat (200 langkah/rev)
* searah jarum jam (CW) selama 2 revolusi pada 100 RPM dan kemudian
* berlawanan arah jarum jam (CCW) selama 2 revolusi pada 50 RPM
*terus-menerus
* dibuat oleh Ashutosh Bhatt pada 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
void setup()
{
Serial.begin(9600);
Serial.println("Bipolar stepper motor library test program created by Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
}
void loop()
{
my_step_motor.set_RPM(100);
for(i=0;i<100;i++) my_step_motor.rotate(1);
delay(2000);
my_step_motor.set_RPM(50);
for(i=0;i<100;i++) my_step_motor.rotate(0);
delay(2000);
}
4) Memutar motor 4 revolusi searah jarum jam pada 20 RPM dan 2 revolusi berlawanan arah jarum jam pada 10 RPM terus-menerus
/*program ini akan pertama memutar motor stepper bipolar
* dengan sudut langkah 1.8 derajat (200 langkah/rev)
* 4 revolusi searah jarum jam (CW) pada 20 RPM dan kemudian
* 2 revolusi berlawanan arah jarum jam (CCW) pada 10 RPM
*terus-menerus
* dibuat oleh Ashutosh Bhatt pada 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;
void setup()
{
Serial.begin(9600);
Serial.println("Unipolar stepper motor library test program created by Ashutosh Bhatt");
my_step_motor.set_step_per_rev(steps);
}
void loop()
{
my_step_motor.set_RPM(20);
my_step_motor.rotate_n_rev(1, 4);
delay(2000);
my_step_motor.set_RPM(10);
my_step_motor.rotate_n_rev(0, 2);
delay(2000);
}
5)Memutar motor 90o searah jarum jam dan 90o berlawanan arah jarum jam terus-menerus pada 30 RPM
/*program ini akan memutar motor bipolar
* dengan sudut langkah 1.8 derajat (200 langkah/rev) pada 30 RPM untuk
* 90 derajat CW dan 90 derajat CCW terus-menerus
* dibuat oleh Ashutosh Bhatt pada 22/10/16
*/
#include<bi_polar_Stepper.h>
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("bipolar stepper motor library test program");
my_step_motor.set_step_per_rev(motor_steps);
my_step_motor.set_RPM(rpm);
Serial.println("motor rotates 90 deg back and forth");
}
void loop()
{
my_step_motor.rotate_x_deg(90);
delay(2000);
my_step_motor.rotate_x_deg(270);
delay(2000);
}
Catatan:-Jika motor stepper memiliki daya dan tegangan rating yang lebih tinggi maka alih-alih chip L293D, kita dapat menggunakan chip L298 atau sekumpulan 4 transistor Darlington terpisah seperti TIP122, TIP142 dll dapat digunakan untuk menggerakkan motor stepper.
Library yang diberikan dan program contoh bersama dengan rangkaian di atas telah diuji dengan motor stepper berikut
1) motor stepper bipolar 2 fasa dengan 5V, 100 RPM (MAKS), 200 langkah/rev (sudut langkah 1.8o)
2) motor stepper bipolar 2 fasa dengan 5V, 60 RPM (MAKS), 200 langkah/rev (sudut langkah 1.8o)
Kode
Arduino Library for Bipolar Stepper motor
Arduino Library for Bipolar Stepper motor C/C++
Library ini mengontrol RPM, arah, revolusi, sudut rotasi dari semua jenis motor stepper bipolar dengan akurasi 95%
No preview (download only).
Skematik
Rangkaian ini menggerakkan dan mengontrol RPM, arah, sudut rotasi, jumlah revolusi motor stepper bipolar