Aplikasi Motor Stepper menggunakan arduino uno

PERTEMUAN KE – 13
Aplikasi Motor Stepper
A. TUJUAN :
  • Mahasiswa dapat menggunakan motor stepper dalam aplikasi.

B. TEORI SINGKAT
     Secara umum motor stepper ada dua macam, yaitu motor stepper Unipolar dan motor stepper              Bipolar. Secara fisik motor stepper Unipolar biasanya mempunyai kabel sebanyak 5 atau 6 buah.        Satu atau dua kabel untuk common (power +) dan 4 kabel untuk phase. Sedangkan motor stepper        Bipolar biasanya mempunyai kabel sebanyak empat buah.

C. PEMBAHASAN :
    Pada praktik kali ini saya akan membuat sebuah program sederhana yang akan digunakan untuk         menjalankan motor stepper unipolar. Berrikut adalah penjelasan dari scribt program yang telah            saya buat :
int pinStepper[4]={8,9,10,11};
//merupakan deklarasi variabel berupa sebuah array dimana pin-pin yang akan digunakan adalah pin
D8,D9,D10 dan D11
const int State[4]={0b00001110,0b00001101,0b00001011,0b00000111};
int currentState=0;
//merupakan deklarasi variabel
void setup()
//Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
{
int i;
for(i=0;i<4;i++)
//perulangan untuk mengambil nilai dari variabel array pinStepper
{
pinMode(pinStepper[i],OUTPUT);
// inisialisasi variable pinStepper Sebagai outputan
}
}
void loop()
//Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
{
Step(&currentState,200);
//Digunakan untuk memanggil method step dan memberi nilai pada variabel &currentState dengan nilai 200
delay(1000);
//jeda selama 1 detik
Step(&currentState,-100);
//Digunakan untuk memanggil method step dan memberi nilai pada variabel &currentState dengan nilai -100
delay(500);
//jeda selama 0,5 detik
}
void Step(int *cState,int jumStep)
//merupakan method dengan nama Step yang akan dipanggil pada void loop()
{
int a,i,state;
state=*cState;
//deklarasi variabel
if(jumStep>0)
//untuk mengecek apakah niali dari variabel jumStep lebih besar dari 0
{
for(a=0;a<jumStep;a++)
//jika if bernilai true maka akan menjalankan sebuah perulangan dengan persyaratan nilai dari variabel a kurang dari nilai dari variabel jumStep dan jika nilai variabel a masih memenuhi persyaratan tersebut maka nilainya akan ditambah 1
{
state++;
if(state==4)
//untuk mengecek apakah nilai dari variabel state sama dengan 0
{state=0;}
//jika iya maka nilai variabel state akan di 0 kan
for(i=0;i<4;i++)
//perulangan untuk menampilkan nilai dari variabel state dengan persyaratan i kurang dari 4 maka nilai i akan ditambah 1
{
digitalWrite(pinStepper[i],bitRead (State[state],i));
//untuk menampilkan keluaran digital yang disimpan oleh variabel pinStepper dan state
}
delay(5);
}
*cState=state;
//deklarasi variabel *cState sama dengan state
}
Else
//akan dikerjakan jika if bernilai false
{
for(a=jumStep;a<0;a++)
//jika if bernilai false maka akan menjalankan sebuah perulangan dengan persyaratan nilai dari variabel a kurang dari nilai dari 0 dan jika nilai variabel a masih memenuhi persyaratan tersebut maka nilainya akan ditambah 1 sedangkan variabel a sendiri nilainya sama dengan variabel jumStep
{
state--;
//nilai variabel state dikurangi 1
if(state<0)
//untuk mengecek apakah nilai dari variabel state kurang dari 0
{state=3;}
//jika iya maka variabel state akan diberi nilai 3
for(i=0;i<4;i++)
//perulangan untuk menampilkan nilai dari variabel state dengan persyaratan i kurang dari 4 maka nilai i akan ditambah 1
{
digitalWrite(pinStepper[i],bitRead (State[state],i));
//untuk menampilkan keluaran digital yang disimpan oleh variabel pinStepper dan state
}
delay(5);
}
*cState=state;
}}
Hasil:

D. PEMBAHASAN LATIHAN :
Pada latihan kali ini saya memodifikasi program agar motor stepper dapat diatur gerakannya menggunakan tombol. Tombol 1 untuk putar searah jarum jam dan Tombol 2 untuk arah berlawanan jarum jam. Berikut adalah penjelasan scribt nya :
int pinStepper[4]={8,9,10,11};
//merupakan deklarasi variabel berupa sebuah array dimana pin-pin yang akan digunakan adalah pin
D8,D9,D10 dan D11
const int State[4]={0b00001110,0b00001101,0b00001011,0b00000111};
int currentState=0;
//merupakan deklarasi variabel
int S1=6;
int S2=7;
//pada latihan kali ini saya menambahkan deklarasi variabel untuk pin yang akan gunakan sebagai inputan dimana pin yang akan gunakan sebagai inputan adalah pin D6 dan D7
void setup()
//Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
{
int i;
for(i=0;i<4;i++)
//perulangan untuk mengambil nilai dari variabel array pinStepper
{
pinMode(pinStepper[i],OUTPUT);
// inisialisasi variable pinStepper Sebagai outputan
}
pinMode(S1,INPUT);
pinMode(S2,INPUT);
//saya menambahkan inisialisasi variabel S1 dan S2 sebagai inputan
}
void loop()
//Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
{
if (digitalRead(S1)==0) {
//untuk mengecek apakah masukan digital pada variabel S1 sama dengan LOW
while(digitalRead(S1)==0){ };
//Saklar S1 dilepas
Step(&currentState,200);
//akan memanggil method step dan memberi nilai pada variabel &currentState dengan nilai 200
delay(1000);
//jeda 1 menit
}
else if (digitalRead(S2)==0) {
//untuk mengecek apakah masukan digital pada variabel S2 sama dengan LOW
while(digitalRead(S2)==0){ };
//Saklar S1 dilepas
Step(&currentState,-100);
//akan memanggil method step dan memberi nilai pada variabel &currentState dengan nilai -100
delay(500);}
//jeda 0,5 detik
}
void Step(int *cState,int jumStep)
//merupakan method dengan nama Step yang akan dipanggil pada void loop()
{
int a,i,state;
state=*cState;
//deklarasi variabel
if(jumStep>0)
//untuk mengecek apakah niali dari variabel jumStep lebih besar dari 0
{
for(a=0;a<jumStep;a++)
//jika if bernilai true maka akan menjalankan sebuah perulangan dengan persyaratan nilai dari variabel a kurang dari nilai dari variabel jumStep dan jika nilai variabel a masih memenuhi persyaratan tersebut maka nilainya akan ditambah 1
{
state++;
if(state==4)
//untuk mengecek apakah nilai dari variabel state sama dengan 0
{state=0;}
//jika iya maka nilai variabel state akan di 0 kan
for(i=0;i<4;i++)
//perulangan untuk menampilkan nilai dari variabel state dengan persyaratan i kurang dari 4 maka nilai i akan ditambah 1
{
digitalWrite(pinStepper[i],bitRead (State[state],i));
//untuk menampilkan keluaran digital yang disimpan oleh variabel pinStepper dan state
}
delay(5);
}
*cState=state;
//deklarasi variabel *cState sama dengan state
}
Else
//akan dikerjakan jika if bernilai false
{
for(a=jumStep;a<0;a++)
//jika if bernilai false maka akan menjalankan sebuah perulangan dengan persyaratan nilai dari variabel a kurang dari nilai dari 0 dan jika nilai variabel a masih memenuhi persyaratan tersebut maka nilainya akan ditambah 1 sedangkan variabel a sendiri nilainya sama dengan variabel jumStep
{
state--;
//nilai variabel state dikurangi 1
if(state<0)
//untuk mengecek apakah nilai dari variabel state kurang dari 0
{state=3;}
//jika iya maka variabel state akan diberi nilai 3
for(i=0;i<4;i++)
//perulangan untuk menampilkan nilai dari variabel state dengan persyaratan i kurang dari 4 maka nilai i akan ditambah 1
{
digitalWrite(pinStepper[i],bitRead (State[state],i));
//untuk menampilkan keluaran digital yang disimpan oleh variabel pinStepper dan state
}
delay(5);
}
*cState=state;
}}
Hasil:


D. Kesimpulan :
Dari praktikum tersebut dapat disimpulkan bahwa :
· jenis motor stepper yang kita gunakan untuk praktikum yaitu jenis motor stepper Unipolar dimana pada motor stepper tersebut mempunyai 6 buah kabel dimana 2 buah kabel untuk power dan 4 buah kabel sebagai phase .
· pada praktikum yang telah kita kerjakan diketahui bahwa motor stepper bekerja berdasarkan masukkan digital yang kita berikan akan tetapi saat praktikum ditemui kendala karena motor stepper langsung dapat arus listrik keluaran dari arduino sehingga kurang kuat untuk menggerakkan motor stepper

0 Response to "Aplikasi Motor Stepper menggunakan arduino uno"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel