Anda di halaman 1dari 3

Arduino Indonesia

http://arduino.or.id/blog/detail_blog/mengatur-kecepatan-motor-stepper-d...

Welcome : Guest Login Register Site Map Hardware Download

Home

Blog

Community

About Us Category

Mengatur Kecepatan Motor Stepper dengan Menggunakan Potensio


Tanggal :16/07/2012 Kategori : project Oleh : mibnus

news (8) project (8)

Mengatur kecepatan motor stepper dengan potensio meter (VR), yaitu potensio mengatur besar tegangan (0-5 volt) yang jadi inputan port ADC Arduino. Pada saat potensio diputar ke kanan maka tegangan keluaran potensio meningkat mendekati 5 volt dan bila diputar ke kiri tegangan keluaran potensio semakin kecil mendekati 0 volt. Sehingga kecepatan putar motor stepper berbanding lurus dengan tegangan input analog dari potensio. Motor stepper merupakan motor dengan sinyal DC yang diatur arah putaran dan kecepatannya dengan pengaturan sinyal yang diberikan. Berikut gambar skematik diagram motor stepper unipolar 4 phase dengan 8 dan 6 kabel output.

Komponen yang diperlukan :


1. Lampu led merah 4x 2. Resistor 1K 4x 3. Dioda in4001 (1A)

4. Potensio/trimpot (VR) 10K 1 5. IC ULN 2803 6. Breadboard 7. Kabel Jumper 8. Motor Stepper Unipolar 4 phase 9. Power Supply 5V 1A 10. Minimum sistem board Arduino

Koneksi Rangkaian

Penulisan Program //Kendali Kecepatan Motor Stepper dengan Potensio int tunda = 0; //deklarasi variabel tunda

1 of 3

6/8/2013 9:31 PM

Arduino Indonesia

http://arduino.or.id/blog/detail_blog/mengatur-kecepatan-motor-stepper-d...

int sensorValue = 0; int outputValue = 0; const const const const const int int int int int phase1 = 2; phase2 = 4; phase3 = 3; phase4 = 5; analogIn = 18;

//deklarasi variabel sensor value //deklarasi pin phase1 pada kaki port D2

//deklarasi pin analogIn pada pin 18 / ADC 4

void setup() { pinMode (phase1, OUTPUT); pinMode (phase2, OUTPUT); pinMode (phase3, OUTPUT); pinMode (phase4, OUTPUT); pinMode (analogIn, INPUT); Serial.begin (9600); } void loop() { siklusADC(); powerStepper(); }

//phase1 sebagai output

//analogIn sebagai input analog //inisialisasi komunikasi serial pada 9600 bps //loping / pengulangan terus menerus //deklarasi void siklus ADC //deklarasi void powerStepper

void siklusADC() //kode program void siklusADC { sensorValue = analogRead (analogIn); //membaca sinyal analog pada pin analogIn outputValue = map (sensorValue, 0, 1023, 0, 255); //maping dari nilai 1023 jadi 255 Serial.print ("outputValue= "); //mencetak pada serial monitor Serial.println (outputValue, DEC); //menulis nilai dalam desimal if (outputValue < 20) {tunda = 500;} else if (outputValue < 30) {tunda = 300;} else if (outputValue < 70) {tunda = 200;} else if (outputValue < 100) {tunda = 100;} else if (outputValue < 140) {tunda = 50;} else if (outputValue < 170) {tunda = 20;} else if (outputValue < 200) {tunda = 10;} else if (outputValue < 240) {tunda = 5;} else {tunda = 2;} delayMicroseconds (tunda); } void powerStepper() { digitalWrite (phase1, digitalWrite (phase2, digitalWrite (phase3, digitalWrite (phase4, delay (tunda); digitalWrite (phase1, digitalWrite (phase2, digitalWrite (phase3, digitalWrite (phase4, delay (tunda); digitalWrite (phase1, digitalWrite (phase2, digitalWrite (phase3, digitalWrite (phase4, delay (tunda); digitalWrite (phase1, digitalWrite (phase2, digitalWrite (phase3, digitalWrite (phase4, delay (tunda); } //susunan program void powerStepper HIGH); LOW); LOW); LOW); LOW); LOW); LOW); HIGH); LOW); LOW); HIGH); LOW); LOW); HIGH); LOW); LOW); //tahap sinyal pertama phase1 diberi sinyal high //tahap sinyal pertama phase2 diberi sinyal low // tahap sinyal pertama phase3 diberi sinyal low // tahap sinyal pertama phase4 diberi sinyal low //jeda waktu delay sama dengan nilai tunda //tahap sinyal kedua //membuat tingkatan dengan metode if //memberikan nilai pada variabel tunda

//jeda waktu delay sama dengan nilai tunda

// tahap sinyal ketiga

// tahap sinyal ke empat

2 of 3

6/8/2013 9:31 PM

Arduino Indonesia

http://arduino.or.id/blog/detail_blog/mengatur-kecepatan-motor-stepper-d...

2012 Arduino Indonesia

3 of 3

6/8/2013 9:31 PM