bab iii perancangan sistem - · pdf filefungsi dari rangkaian logika pada penggerak ini adalah...

24
BAB III PERANCANGAN SISTEM Perancangan sistem didasarkan pada tujuan dan kebutuhan sistem yang ingin dicapai, sehingga kebutuhan akan komponen-komponen sistem dapat diperhitungkan. Mengacu pada perumusan dan pembatasan masalah, pada tugas akhir ini ingin dibuat sebuah sistem yang dapat melakukan kendali kecepatan dan kendali posisi dengan masukan dari pengguna dan tampilan keluaran yang dapat dilihat oleh pengguna. Oleh karena itu, kebutuhan perangkat kerasnya adalah motor langkah, penggerak motor langkah sebagai antarmuka antara mikrokontroler dan motor langkah, mikrokontroler dan sistem minimumnya, keypad sebagai komponen masukan, dan LCD sebagai komponen keluaran. Sedangkan kebutuhan perangkat lunaknya adalah perangkat lunak untuk membuat program mikrokontroler. Diagram blok sistem dapat dilihat pada Gambar 3.1. Gambar 3.1 Diagram blok sistem

Upload: duongtruc

Post on 04-Feb-2018

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

BAB III

PERANCANGAN SISTEM

Perancangan sistem didasarkan pada tujuan dan kebutuhan sistem yang ingin dicapai,

sehingga kebutuhan akan komponen-komponen sistem dapat diperhitungkan.

Mengacu pada perumusan dan pembatasan masalah, pada tugas akhir ini ingin dibuat

sebuah sistem yang dapat melakukan kendali kecepatan dan kendali posisi dengan

masukan dari pengguna dan tampilan keluaran yang dapat dilihat oleh pengguna.

Oleh karena itu, kebutuhan perangkat kerasnya adalah motor langkah, penggerak

motor langkah sebagai antarmuka antara mikrokontroler dan motor langkah,

mikrokontroler dan sistem minimumnya, keypad sebagai komponen masukan, dan

LCD sebagai komponen keluaran. Sedangkan kebutuhan perangkat lunaknya adalah

perangkat lunak untuk membuat program mikrokontroler. Diagram blok sistem dapat

dilihat pada Gambar 3.1.

Gambar 3.1 Diagram blok sistem

Page 2: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

III.1. Perancangan Perangkat Keras

Seperti yang telah disebutkan sebelumnya, perangkat keras yang dibutuhkan adalah :

- Motor langkah

- Penggerak motor langkah

- Sistem minimum

- Keypad

- LCD

Berdasarkan kebutuhan tersebut, spesifikasi perangkat keras yang digunakan adalah

sebagai berikut :

1. Motor langkah STH 39D172

Motor langkah STH 39D172 adalah motor langkah unipolar yang memiliki dua

kumparan, dimana masing-masing kumparan dilengkapi dengan center tap.

Motor langkah ini berputar sebesar 1,80/langkah (atau 2001 putar/langkah, atau

100π rad/langkah) dengan frekuensi maksimum yang dapat diterima adalah 400

langkah/detik. Oleh karena

αω .f= (3.1a)

dengan

ω adalah kecepatan [rad/detik]

f adalah frekuensi masukan motor langkah [langkah/detik]

α adalah sudut perputaran motor per langkah [rad/langkah],

maka kecepatan maksimum motor langkah ini adalah

αω .maksmaks f=

ikradmaks det/56,12100

.400 ==πω (3.1b)

Gambar motor langkah STH 39D172 dapat dilihat pada Gambar 3.2.

17

Page 3: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

18

Gambar 3.2 Motor langkah STH 39D172 a)tampak atas b)konfigurasi kumparan

2. Penggerak motor langkah

Penggerak motor langkah yang digunakan pada sistem ini didasarkan pada

rangkaian yang diberikan pada artikel ”Simple circuit controls stepper motors”

oleh Noel McNamara[6]. Pada dasarnya, rangkaian penggerak ini terdiri dari

rangkaian logika, penguat arus, dan penyearah arus, yang kemudian

disambungkan ke motor langkah. Gambar penggerak beserta komponen-

komponen yang digunakan dapat dilihat pada Gambar 3.3.

Fungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika

”1” dan ”0” secara bergantian kepada kabel-kabel motor langkah pada setiap

masukan LANGKAH. Keluaran dari rangkaian logika diberikan pada Tabel 3.1.

Apabila hasil dari Tabel 3.1 tersebut disusun ulang sehingga menjadi Tabel 3.2,

terlihat bahwa penggerak motor langkah ini akan menggerakkan motor dengan

jenis pergerakan Gerakan langkah penuh (Bandingkan dengan Tabel 2.1).

Page 4: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

19

Gambar 3.3 Penggerak motor langkah

Keluaran 1 2 3 4 5 6 7 81Q 1 1 0 0 1 1 0 0

1Q 0 0 1 1 0 0 1 1

2Q 0 1 1 0 0 1 1 0

2Q 1 0 0 1 1 0 0 1

dst

Tabel 3.1 Keluaran rangkaian logika penggerak motor langkah

Keluaran 1 2 3 4A 2Q 1 0 0 1A 1Q 1 1 0 0B 2Q 0 1 1 0B 1Q 0 0 1 1

Tabel 3.2 Penyusunan ulang keluaran rangkaian logika penggerak motor langkah

Page 5: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

3. Sistem Minimum

Sistem minimum yang digunakan terdiri dari beberapa komponen, yaitu

mikrokontroler, kristal 4,433619MHz, port In System Programmer (ISP), port

serial, dan power supply regulator (12 Volt ke 5 Volt). Akan tetapi, port serial

tidak digunakan pada tugas akhir ini.

Mikrokontroler yang digunakan pada tugas akhir ini adalah AVR ATMega8535.

Mikrokontroler ini memiliki empat buah port, yang masing-masing terdiri dari

delapan pin. Port A digunakan untuk keypad, Port C digunakan untuk LCD, Pin

B.7 digunakan untuk keluaran frekuensi ke penggerak, dan Pin B.5 digunakan

untuk memberikan logika ”1” atau ”0” kepada penggerak untuk memilih arah

(searah jarum jam atau berlawanan arah jarum jam).

4. Keypad

Keypad pada sistem ini adalah keypad 4x3. Seperti yang telah disebutkan

sebelumnya, keypad dihubungkan ke Port A pada mikrokontroler. Skema keypad

beserta hubungan-hubungan pinnya dapat dilihat pada Gambar 3.4.

Gambar 3.4 Skema keypad

20

Page 6: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

5. LCD

LCD yang digunakan adalah LCD 2x16, yang dihubungkan pada Port C pada

mikrokontroler. Skema LCD beserta hubungan-hubungan pinnya dapat dilihat

pada Gambar 3.5.

Gambar 3.5 Skema LCD

III.2 Perancangan Program

Perangkat lunak yang digunakan untuk membuat program mikrokontroler adalah

Code Vision AVR C Compiler versi 1.24.0 Standard. Perangkat lunak ini sudah

dilengkapi fitur untuk mengubah tata siap (setup) mikrokontroler yang dilakukan

pengguna melalui jendela-jendela yang sangat akrab pengguna ke dalam bahasa C.

Program ini terdiri atas dua bagian besar, yaitu bagian main dan bagian

timer_interrupt. Bagian main mengatur pilihan mode, pilihan arah, interpretasi

masukan dari keypad, menampilkan keluaran ke LCD, dan penghitungan-

penghitungan. Sedangkan bagian timer_interrupt terutama mengatur frekuensi yang

dihasilkan oleh mikrokontroler (Pin B.7), yang kemudian akan digunakan sebagai

clock oleh penggerak. Perancangan program akan ditampilkan dalam bentuk diagram

alir supaya lebih mudah dipahami.

Akan tetapi, sebelum masuk ke bagian diagram alir, ada beberapa penjelasan

mengenai program, terutama penghitungan-penghitungan yang dilakukan. Pertama-

21

Page 7: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

tama, perlu diperhatikan bahwa program ini menggunakan default percepatan 3

rad/detik2 dan perlambatan 1 rad/detik2. Apabila pengguna ingin mengubah nilai

percepatan dan perlambatan, ada beberapa variabel yang harus diubah pada program.

Variabel-variabel tersebut akan diberikan pada akhir subbab ini.

Hal yang kedua adalah untuk semua penggunaan keypad, angka 0-9 digunakan untuk

memasukkan nilai 0-9, tanda * digunakan sebagai masuk, tanda # digunakan sebagai

reset. Selain itu tanda # mempunyai fungsi khusus. Apabila tanda # ditekan dua kali,

maka fungsi akan kembali ke bagian awal fungsi main.

Selanjutya adalah mengenai cara menghasilkan pulsa. Pada fungsi timer_interrupt,

pulsa yang dihasilkan dapat berubah-ubah kecepatannya, seperti pada Gambar 3.6.

Gambar 3.6 Contoh bentuk sinyal yang dihasilkan oleh program

Pada program ini, nilai variabel count akan bertambah setiap kali pengatur waktu

mengalami luapan (overflow), yaitu pengatur waktu telah bertambah sebanyak 256

kali (dari 0 ke 255). Sedangkan pengatur waktu sendiri akan bertambah pada setiap

clock yang terjadi. Sistem minimum menggunakan kristal 4,433619 MHz. Nilai ini

selanjutnya akan disebut fsis. Apabila perioda clock sistem adalah Tsis, maka

pertambahan satu nilai hitung membutuhkan waktu sebesar

sissis f

Tt 256.256 == (3.2)

22

Page 8: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Kembali pada Gambar 3.6 dan mengacu pada persamaan (2.1), nilai tunda pencacah

adalah

sisfctct 256.. ==δ (3.3)

Apabila persamaan (3.3) dibandingkan dengan persamaan awal, yaitu persamaan

(2.1), terdapat perbedaan yaitu adanya angka 256 di bagian pembilang. Hal ini terjadi

karena perbedaan cara menghasilkan pulsa. Pada persamaan (2.1), pulsa dihasilkan

langsung sesuai dengan nilai pencacah yang berubah setiap clock. Berbeda dengan

cara menghasilkan pulsa pada program ini yang telah dijelaskan sebelumnya.

Dari persamaan (3.3), dapat diperoleh frekuensi pulsa sebagai berikut

256.1

cf

tf sis==

δ (3.4a)

Pada program, c direpresentasikan dengan variabel count_baru, sehingga persamaan

(3.4) berubah menjadi

256._1

barucountf

tf sis==

δ (3.4b)

Kemudian, perhatikan kembali persamaan (2.8). Oleh karena adanya perbedaan yang

terjadi pada persamaan (2.1) dan (3.3), maka persamaan (2.8) juga harus disesuaikan

menjadi

ω

π

ωα

&&100.2

.256

433619,4.676,0.2.256

.676,00Mf

c sis ==

ω&64,2934

0 =c (3.5)

Perhatikan bahwa nilai co berbanding terbalik dengan akar percepatan. Persamaan

yang mengandung akar sulit untuk dihitung oleh mikrokontroler, sehingga nilai co

23

Page 9: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

dihitung secara offline. Seperti telah disebutkan sebelumnya, program ini

menggunakan percepatan 3 rad/detik2, sehingga nilai co pada program adalah

16943

64,293464,29340 ===

ω&c (3.6)

Selain itu, hal lain yang dapat dihitung secara offline adalah nmaks pada persamaan

(2.14). Oleh karena nilai percepatan telah ditentukan untuk program ini, maka semua

variabel pada persamaan (2.14) telah diketahui nilainya, sehingga nilai nmaks adalah

9,8288,2486.100.2

5,12..2

2

1

2

====ωωπωα

ω&&&maksn (3.7)

Nilai nmaks harus merupakan bilangan bulat. Pembulatan yang dipilih adalah

pembulatan ke bawah, karena apabila pembulatan dilakukan ke atas, kecepatan

maksimum akan terlewati. Pada program, nmaks direpresentasikan dengan variabel

max_s_lim. Maka max_s_lim untuk kecepatan 3 rad/detik2 adalah 828.

Selanjutnya, akan dibahas lebih detil fungsi-fungsi pada program beserta penjelasan

beberapa bagian diagram alir.

1. Fungsi main

Fungsi main ini berisi program utama, yaitu pemilihan mode melalui keypad.

Selain itu, semua variabel diinisialisasi pada fungsi ini. Diagram alir fungsi main

dapat dilihat pada Gambar 3.7.

Inisialisasi variabel-variabel

Pada program ini, semua variabel merupakan variabel global yang diletakkan

pada fungsi main. Variabel-variabel tersebut adalah :

24

Page 10: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Gambar 3.7 Diagram alir fungsi main

25

Page 11: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

char : show[16]

int : e=100, temp, mode, arah, vel, vel_lama, count_baru, count, posisi, step, i,

max_s_lim = 828, accel_lim, accel=1, decel=0, pengurang, rest,

decel_val, decel_start, accel_count, out.

Batas masukan keypad

Keypad dibatasi hanya sampai angka 2, sehingga apabila pengguna memasukkan

angka selain 1 dan 2, program akan meminta pengguna memasukan pilihannya

kembali.

2. Fungsi mode1

Fungsi mode1 adalah bagian dari program yang menjalankan pengaturan

kecepatan. Pada mode ini, kecepatan dimasukkan oleh pengguna. Kemudian,

motor langkah akan berputar sesuai dengan kecepatan yang diinginkan pengguna.

Pada saat motor langkah berputar, pengguna dapat memberikan kecepatan yang

lain, dan motor langkah akan mengubah kecepatannya. Diagram alir dari mode

ini dapat dilihat pada Gambar 3.8. Di bawah ini adalah beberapa penjelasan yang

dibutuhkan.

Reset variabel-variabel

Beberapa variabel harus direset pada awal fungsi ini, untuk mencegah terjadinya

nilai yang masih tersimpan pada penggunaan sebelumnya. Proses ini terutama

berguna setelah program dijalankan lebih dari satu kali. Variabel-variabel yang

direset pada awal fungsi mode1 adalah count_baru, e, temp, arah, out, vel, dan

vel_lama.

Pilihan vel=0

Apabila vel tidak sama dengan nol, maka nilai count_baru adalah

velbarucount /10*544_ = (3.8)

26

Page 12: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Gambar 3.8 Diagram alir fungsi mode1

27

Page 13: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Persamaan di atas diperoleh dengan cara sebagai berikut. Perhatikan persamaan

(3.1a) dan persamaan (3.4b). Apabila persamaan (3.4b) disubstitusikan ke

persamaan (3.1a), maka

256100).433619,4(

._1

.256._

.

πω

αω

αω

M

barucount

barucountf

f

sis

=

=

=

barucount _087,544

=ω (3.9)

Pada program, ω direpresentasikan dengan variabel vel, yang merupakan integer.

Hal ini menyebabkan kecepatan yang dapat diberikan oleh program hanya

sampai ketelitian 1. Oleh karena itulah, untuk meningkatkan ketelitian sampai

dengan 0,1, maka nilai kecepatan pada program dikalikan dengan angka 10. Jadi,

dengan nilai count_baru tertentu, program membaca nilai kecepatan 10 kali lebih

besar daripada kenyataan, sehingga persamaan (3.9) menjadi

barucount _10.087,544

=ω (3.10)

Atau dengan kata lain, nilai count_baru adalah seperti yang tertulis pada

persamaan (3.8) dengan konstanta 544,087 sudah dibulatkan.

Perhatikan bahwa nilai kecepatan berbanding terbalik dengan nilai count_baru.

Untuk menghasilkan motor yang diam (kecepatan = 0), seharusnya diperlukan

nilai count_baru sebesar tak hingga. Akan tetapi, tentu saja nilai tersebut tidak

bisa disediakan oleh count_baru yang berupa integer dengan rentang nilai yang

terbatas. Oleh karena itulah, supaya dapat menghasilkan kecepatan nol, program

dimodifikasi. Caranya adalah apabila vel sama dengan nol, nilai count_baru akan

menjadi nol. Nilai count_baru akan digunakan pada fungsi timer_interrupt,

dimana pada fungsi tersebut, perlakuan hanya terjadi untuk nilai count_baru yang

tidak sama dengan nol. count_baru yang bernilai 0 tidak akan mendapat

perlakuan apapun, sehingga motor akan berhenti.

28

Page 14: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Pilihan temp>125

Pilihan ini berguna untuk membatasi nilai kecepatan, supaya tidak melebihi

kecepatan maksimum. Melalui persamaan (3.1), telah dihitung kecepatan

maksimum motor langkah adalah 12,5 rad/detik. Dan melalui persamaan (3.10)

telah diketahui bahwa sistem membaca kecepatan sepuluh kali lebih besar

daripada kecepatan sebenarnya. Oleh karena itulah, nilai kecepatan dibatasi

sampai angka 125.

Cetak LCD ”k” dan ”v”

Ada dua variabel yang ditampilkan pada LCD, yaitu masukan dari keypad (k)

dan kecepatan putar motor langkah (v). Nilai v akan akan menjadi sama dengan k

setelah pengguna menekan * (masuk) pada keypad. Pengguna harus memasukkan

nilai kecepatan yang terbaca oleh sistem, yaitu nilai kecepatan yang sepuluh kali

lebih besar daripada nilai sebenarnya. Nilai ini yang dipilih supaya pengguna

dapat memasukkan kecepatan sampai nilai 0,1. Tentu saja motor tetap berputar

pada kecepatan sebenarnya, karena nilai kecepatan telah dinormalkan kembali ke

nilai sebenarnya oleh persamaan (3.10).

3. Fungsi mode2

Fungsi mode2 adalah fungsi yang melakukan pengaturan posisi. Pada pengaturan

posisi ini, motor langkah akan berputar sampai pada posisi tertentu, yaitu posisi

yang dimasukkan oleh pengguna. Selain itu, sebenarnya pada program ini juga

terdapat pengaturan kecepatan, karena motor akan berputar mencapai posisi akhir

dengan kecepatan yang berubah-ubah, sesuai dengan profil kecepatan yang telah

dijelaskan pada Bab II. Gambar 3.9 menunjukkan diagram alir dari fungsi mode2.

accel=1; decel=0; Reset variabel lain=0

Sama seperti mode1, fungsi dari proses ini adalah untuk memastikan semua nilai

dari penggunaan sebelumnya tidak tersimpan lagi. Akan tetapi, khusus untuk

fungsi ini, ada variabel khusus yang harus diset ulang, yaitu accel dengan nilai

satu dan decel dengan nilai 0. Dua variabel ini harus diset seperti itu untuk

memastikan motor akan memulai perputaran dari kecepatan nol, yang kemudian

29

Page 15: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

dipercepat. Variabel-variabel lain yang direset menjadi nol adalah e, temp, arah,

out, vel, dan posisi.

Gambar 3.9 Diagram alir fungsi mode2

30

Page 16: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Tombol * ditekan

Pada saat tombol * ditekan oleh pengguna, maka nilai count_baru akan berubah

dari nol menjadi 1694, sesuai dengan persamaan (3.6). Selanjutnya, program

akan menghitung jumlah step yang harus dilakukan oleh motor langkah, yaitu

8,1// posisiposisistep == α (3.11)

Nilai step ini kemudian digunakan oleh fungsi timer_interrupt untuk melakukan

penghitungan-penghitungan lainnya.

Pilihan temp>32767

Pilihan ini berfungsi untuk membatasi pengguna supaya tidak memasukkan nilai

posisi lebih besar daripada 32767, karena apabila nilai yang dimasukkan lebih

besar, akan terjadi luapan. Hal ini menyebabkan sistem salah membaca nilai

posisi, sehingga program menjadi kacau dan tidak sesuai hasil yang seharusnya.

Cetak LCD ”k”, ”p”, ”v”, dan ”s”

Pada mode ini, terdapat empat variabel yang ditampilkan, yaitu masukan dari

keypad (k), posisi (p), kecepatan (v), dan langkah aktual motor langkah (s). Sama

seperti mode1, k menampilkan masukan dari keypad yang akan tersalin ke p saat

pengguna menekan *. Kecepatan yang ditampilkan pada LCD juga merupakan

kecepatan yang terbaca oleh sistem sesuai persamaan (3.10), dengan alasan yang

sama seperti sebelumnya. Dan s menampilkan jumlah langkah yang telah

dilakukan oleh motor langkah. s akan berhenti pada nilai yang sama dengan

variabel step.

4 Fungsi pilih_arah

Setelah pengguna melakukan pemilihan mode, fungsi pilih_arah akan meminta

pengguna untuk memilih arah, apakah searah jarum jam (clockwise) atau

berlawanan arah jarum jam (counterclockwise). Diagram alir fungsi ini

ditunjukkan oleh Gambar 3.10.

31

Page 17: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Gambar 3.10 Diagram alir fungsi pilih_arah

32

Page 18: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Pada fungsi ini, nilai keypad dibatasi sampai angka 2 saja. Jadi, apabila pengguna

memasukkan angka selain 1 dan 2, program akan meminta pengguna untuk

kembali memasukkan pilihan.

5. Fungsi timer_interrupt

Fungsi inilah yang akan menghasilkan pulsa-pulsa, yang kemudian diberikan

kepada penggerak motor langkah, sehingga motor langkah dapat berputar.

Diagram alir fungsi timer_interrupt diberikan pada Gambar 3.11.

Pilihan mode

Pilihan ini dibuat karena perlakuan untuk mode 1 sangat berbeda dengan

perlakuan untuk mode 2. Pada mode 1, fungsi ini mengambil nilai count_baru

yang dihitung pada fungsi mode1 kemudian membuat pulsa dengan frekuensi

sesuai dengan persamaan (3.4b). Sedangkan pada mode 2, yang terjadi adalah

kebalikannya. count_baru dihitung pada fungsi timer_interrupt sendiri, yang

tetap akan dibuat pulsa dengan frekuensi sesuai dengan persamaan (3.4b).

Bedanya adalah bahwa fungsi inilah yang mengirimkan nilai count_baru ke

fungsi lain, yaitu mode2, yang akan menghitung nilai kecepatan berdasarkan

persamaan (3.10) dan menampilkannya ke LCD.

accel_lim=step/4

Persamaan di atas didasarkan pada persamaan (2.15). Dengan nilai persamaan 3

rad/detik2 dan perlambatan 1 rad/detik2, maka persamaan (2.15) menjadi

4131..

21

21

tottottot nnnn =

+=

+=

ωωω&&

& (3.12)

Pada program ini, n1 dan ntot secara berurutan direpresentasikan dengan accel_lim

dan step, sehingga persamaan di atas menjadi sesuai dengan yang ada pada

program.

33

Page 19: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Pilihan accel_lim<=max_s_lim

Pilihan ini ditujukan untuk memilih profil, sesuai dengan yang telah dijelaskan

pada subbab II.2.3. Hanya saja, pada program ini, ntot diganti dengan max_s_lim,

dan n1 diganti dengan accel_lim.

Gambar 3.11 Diagram alir fungsi timer_interrupt

34

Page 20: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

6 Fungsi profil1

Seperti telah disebutkan sebelumnya, mode 2 (pengaturan posisi) juga akan

melakukan pengaturan kecepatan yang akan mengikuti profil kecepatan. Pada

subbab II.2.3 telah dijelaskan bahwa terdapat dua profil kecepatan. Fungsi ini

melakukan profil yang pertama. Gambar 3.12 di bawah ini menunjukkan diagram

alir fungsi profil1.

Gambar 3.12 Diagram alir fungsi profil1

35

Page 21: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

decel_val=-(step-accel_lim)

Persamaan di atas sebenarnya sama dengan persamaan (2.16). Akan tetapi

terdapat beberapa perubahan, yaitu n2, ntot, dan n1 secara berurutan diganti dengan

decel_val, step, dan accel_lim. Selain itu, terdapat tanda negatif. Hal ini terjadi

karena ada perbedaan kenaikan accel_lim saat percepatan dan perlambatan. Saat

percepatan, accel_lim dimulai dari nol, kemudian naik sampai percepatan

berhenti. Akan tetapi, saat perlambatan, accel_lim dimulai dari sebuah nilai

negatif, kemudian naik dan berhenti saat bernilai 0. Oleh karena itulah, nilai

decel_val dibuat menjadi negatif. Dengan cara ini, persamaan untuk menghitung

count_baru pada saat percepatan dan perlambatan menjadi sama.

Penghitungan count_baru

Penghitungan count_baru didasarkan pada persamaan (2.7). Akan tetapi,

count_baru merupakan sebuah variabel integer, yang tidak memungkinkan

adanya angka desimal, sehingga penghitungan menjadi tidak akurat. Untuk

mengatasi masalah ini, dilakukan sedikit modifikasi, yaitu dengan cara

menyimpan sisa desimal yang tidak tertampung pada angka integer (yaitu angka

persepuluh, perseratus, dan seterusnya), kemudian mengikutsertakan sisa tersebut

ke penghitungan selanjutnya.

Variabel pengurang adalah suku kedua dari persamaan (2.7), akan tetapi

ditambahkan variabel rest, sehingga sisa dari penghitungan sebelumnya dapat

diikutsertakan.

Variabel rest adalah cara menghitung sisa dengan konsep modulo antara bagian

pembilang dan penyebut dari variabel pengurang, sehingga sisa yang dihasilkan

masih merupakan bilangan integer.

7. Fungsi profil2

Fungsi profil2 adalah fungsi yang bekerja apabila profil kecepatan kedua yang

akan dilakukan oleh program. Gambar 3.13 menunjukkan diagram alir fungsi ini.

36

Page 22: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

Gambar 3.13 Diagram alir fungsi profil2

decel_val=-max_s_lim*3

Persamaan ini didasarkan pada persamaan (2.17), dengan mengubah n2 menjadi

decel_val dan nmaks menjadi max_s_lim, dan memasukkan nilai percepatan 3

rad/detik2 dan perlambatan 1 rad/detik2. Nilai negatif pada persamaan di atas

37

Page 23: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

diberikan dengan alasan yang sama dengan pemberian nilai negatif pada

decel_val di fungsi profil1.

decel_start=step+decel_val

Pada profil1, perlambatan dimulai tepat setelah motor langkah mencapai nilai n1,

sehingga persamaan untuk menentukan mulainya perlambatan dan jumlah

langkah yang digunakan dalam perlambatan adalah sama, yaitu decel_val. Akan

tetapi, pada profil2, ada jarak antara nilai n1 dengan dimulainya perlambatan,

sehingga untuk menentukan dimulainya perlambatan diperlukan persamaan

berbeda dengan jumlah langkah yang digunakan dalam perlambatan (decel_val).

Untuk menentukan dimulainya perlambatan, dibuat variabel yang berbeda

dengan decel_val, yaitu decel_start. Dari Gambar 2.8b, dapat ditentukan bahwa

2_ nnstartdecel tot −= (3.13a)

dengan mengubah ntot dan n2 menjadi step dan decel_val, serta mengingat bahwa

nilai n2 adalah positif sedangkan nilai decel_val adalah negatif, maka persamaan

(3.12a) menjadi

valdecelstepstartdecel __ += (3.13b)

Seperti yang telah disebutkan pada awal subbab ini, apabila nilai percepatan dan

perlambatan berubah, ada beberapa variabel yang harus diubah secara manual

melalui program. Variabel-variabel tersebut beserta persamaannya adalah :

1. co

Apabila percepatan berubah, maka nilai co harus dihitung kembali sesuai dengan

persamaan (3.5)

2. max_s_lim

Perubahan percepatan menyebabkan max_s_lim harus dihitung kembali

berdasarkan persamaan (3.7) yaitu

ω&8,2486

=totn (3.14)

dimana ntot adalah max_s_lim dan ω& adalah percepatan yang diinginkan dalam

rad/detik2.

38

Page 24: BAB III PERANCANGAN SISTEM - · PDF fileFungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ... dan power supply regulator (12 Volt ke 5 Volt). ... t ct

3. accel_lim

Oleh karena nilai ini bergantung pada percepatan dan perlambatan, maka adanya

perubahan pada salah satu atau kedua nilai tersebut menyebabkan accel_lim

harus dihitung kembali dengan persamaan (2.15), dengan n1 adalah accel_lim, ntot

adalah step, 1ω& adalah nilai percepatan, dan 2ω& adalah nilai perlambatan.

4. decel_val untuk profil 2

Nilai decel_val untuk profil 2 akan berubah apabila salah satu dari percepatan

dan perlambatan akan mengubah persamaan decel_val. Penghitungan dapat

dilakukan dengan persamaan (2.17), dengan n2 adalah decel_val, nmaks adalah

maks_s_lim, 1ω& adalah nilai percepatan, dan 2ω& adalah nilai perlambatan.

39