Sistem Pengaturan dan Pemantauan Kecepatan Putar Motor DC berbasis FPGA dan VHDL _ Agfianto Eko Putra – Academia
Sistem Pengaturan dan Pemantauan Kecepatan Putar
Motor DC berbasis FPGA dan VHDL
putar motor DC dibaca oleh sensor optokopler kemudian diteruskan ke FPGA untuk ditampilkan nilainya melalui 7-segmen dalam satuan Rotasi per
I S SI GNAL Count er : st d_l ogi c_vect or ( 23 downto 0) ; BEGI N PROCESS ( Cl k) BEGI N i f ( Cl k' event and Cl k=' 1' ) t hen
Cl k : i n s t d_ l ogi c ; Cl ock1 : out st d_l ogi c; Cl ock2 : out std_l ogi c); END Pembagi _Fr ekuensi ; ARCHI TECTURE Behavi or al OF Pembagi _F r ekuensi
Modul ini digunakan untuk membagi frekuensi yang dihasilkan oleh osilator agar sesuai dengan kebutuhan detak modul rangkaian yang lain. Dalam hal ini osilator detak pada papan perancangan memiliki frekuensi sebesar 9,6 MHz. Berikut kode VHDL-nya: LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; USE I EEE. STD_L OGI C_UNSI GNED. ALL; ENTI TY Pembagi _Fr ekuensi I S PORT (
pembacaan, hasilnya ditampilkan dalam ratusan (tiga digit) melalui 7-segmen. 2.1. Modul Pembagi Frekuensi
Selanjutnya, kecepatan putar motor DC dibaca oleh sensor rotary plate yang luarannya berupa pulsa yang kemudian diumpankan ke FPGA untuk proses
perputaran motor DC yaitu searah atau berlawanan jarum jam. Luaran FPGA yang berupa sinyal PWM dihubungkan dengan rangkaian penggerak motor DC.
Sebagaimana ditunjukkan pada Gambar 1, digunakan dua buah tombol (SW1 dan SW2) yang masing- masing digunakan untuk melebarkan pulsa high PWM dan menyempitkan lebar pulsa high PWM. Dengan melebarnya pulsa high PWM maka motor DC berputar makin cepat, sebaliknya dengan menyempitnya pulsa high PWM maka motor berputar makin lambat. Saklar geser atau dipswitch digunakan untuk mengatur arah
pengendalinya. Besarnya kecepatan putar motor DC (Rotasi per Detik atau RPD) dibaca oleh sensor dan ditampilkan melalui 7-Segmen juga menggunakan FPGA. Penggunaan FPGA ini diharapkan dapat menjadi sebuah alternatif terobosan baru dalam mengatur kecepatan putar motor DC selain menggunakan mikrokontroler, mikroprosesor maupun chip lainnya. menggunakan luaran PWM yang dihasilkan melalui rangkaian digital yang diimplementasikan ke dalam FPGA Altera EPF10K10 dengan 10 macam variasi PWM (sekaligus 10 macam kecepatan putar).
Motor DC bisa diatur kecepatan putarnya melalui Pulse Width Modulation atau PWM, dengan memanfaatkan chip FPGA sebagai inti rangkaian
pengiriman data digital, regulasi tegangan, efek suara, dan penguatan.
Kendali PWM adalah suatu teknik pengendalian rangkaian analog dengan suatu keluaran pengolah digital [1]. Keluaran pengolah digital ini berupa pulsa dengan periode tertentu, dimana lebar pulsa high-nya divariasikan. PWM ini biasanya digunakan dalam
P ENDAHULUAN
Jumlah LE dalam FPGA yang digunakan adalah 262 atau 45% dari kapasitas total LE yang dimiki FPGA Altera EPF10K10. Kata kunci: FPGA, VHDL, PWM, Motor DC 1.
Detik (RPD). Hasil pengujian luaran PWM pada FPGA menggunakan metode regresi linier, diperoleh ralat sebesar 0,04. Hasil pengujian kecepatan putar motor DC untuk arah putaran searah jarum jam yaitu dengan ralat sebesar 0,70. Sedangkan untuk yang berlawanan jarum jam diperoleh ralat sebesar 0,75.
putar tersebut ditampilkan melalui 7-Segmen. FPGA menghasilkan luaran Pulse Width Modulation (PWM) untuk menggerakkan motor DC. Besarnya kecepatan
Info
VHSIC Hardware Description Language (VHDL). Sistem terdiri dari rangkaian penggerak dan rangkaian pembaca kecepatan putar motor DC. Sistem ini dapat menggerakkan motor DC dengan 10 variasi kecepatan dan besarnya kecepatan
Abstrak - Telah diimplementasikan sebuah rangkaian digital untuk pengaturan dan pemantauan kecepatan putar motor DC ke dalam FPGA Altera EPF10K10 menggunakan
Program Studi Elektronika dan Instumentasi, Jurusan Ilmu Komputer dan Elektronika, Fakultas MIPA Universitas Gadjah Mada - Yogyakarta 55281
1,2
2
, Rahadian Mu’alif
1
Sistem Pengaturan dan Pemantauan Kecepatan Putar Motor DC berbasis FPGA dan VHDL Agfianto Eko Putra
SITIA 2013, Surabaya
Search...
2.
4 46 4,91
END Behavi or al ;
Tabel 1. Hubungan Masukan dan Luaran PWM Masukan
(integer) Nilai
Pembagi Frekuensi
Lebar Pulsa yang Diinginkan (milidetik)
14 1,49
1 22 2,35
2 30 3,20
3 38 4,05
5 54 5,76
PWMi <= ' 1' ; el se PWMi <= ' 0' ; end i f ; end i f ;
6 62 6,61
7 70 7,46
8 78 8,32
9 86 9,17
10 94 10,02 2.5. Modul Penentu Arah
Modul ini digunakan menentukan arah berputarnya motor DC apakah searah jarum jam atau berlawanan.
LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; ENTI TY Penent u_ar ah I S PORT(
I nput PWM : i n std_l ogi c; Out put 1 : out st d_l ogi c; Out put 2 : out st d_l ogi c; I nput Ar ah : i n std_l ogi c);
END Penent u_ar ah; ARCHI TECTURE Behavi or al OF Penent u_ar ah I S BEGI N PROCESS ( I nput Arah, I nput PWM) BEGI N i f I nput Ar ah=' 1' t hen
END PROCESS; PWM <= PWMi ;
SI GNAL count er : i nt eger; SI GNAL penent u_put aran : i nt eger; SI GNAL PWMi : st d_l ogi c; SI GNAL f aktor : i nt eger ; BEGI N PROCESS( Cl ock) BEGI N f aktor <= conv_i nt eger ( i nput ) ; penent u_put ar an <= 14 + ( 8 * f akt or) ; i f ( Cl ock' event and Cl ock=' 1' ) t hen i f ( count er = 94) t hen count er <= 0; el se count er <= count er + 1; end i f ; end i f ; i f r i si ng_edge( Cl ock) t hen i f ( count er <= penent u_putar an ) t hen
R
pengembangan wizard FLEX-A01 ditekan. Berikut kode VHDL-nya: LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; ENTI TY Debouncer I S PORT(
ANCANGAN S
ISTEM D
IGITAL
Sistem pengontrolan kecepatan motor DC ini i f ( Cl k' event and Cl k=' 1' ) t hen
Count er <= Count er + 1; end i f ;
SITIA 2013, Surabaya Cl ock1 <= Count er( 9); Cl ock2 <= Count er( 15) ;
END PROCESS; END Behavi or al ;
2.2. Modul Debouncer Modul ini digunakan untuk mengurangi efek bouncing yang biasa terjadi jika pushbutton pada papan
I nput 1, I nput 2 : i n std_l ogi c; Out put 1, Out put 2 : out st d_l ogi c) ;
END Penghasi l _PWM; ARCHI TECTURE Behavi or al OF Penghasi l _PWM I S
END Debouncer ; ARCHI TECTURE st r uct ur al OF Debouncer I S COMPONENT D_f l i pf l op I S PORT(
D, Cl ock: i n std_l ogi c; Q: out std_l ogi c);
END COMPONENT; SI GNAL SQ1, SQ2: st d_l ogi c; SI GNAL Si n, Sout , Sout 2: st d_l ogi c; BEGI N
Si n<=not ( I nput1) ; A0: D_f l i pf l op port map( Si n, I nput 2, SQ1) ; A1: D_f l i pf l op port map( SQ1, I nput 2, SQ2) ; Sout <=( not ( SQ2) and SQ1) ; Sout 2<=( not ( Sout ) ) ; Out put 1<=Sout ; Out put 2<=Sout 2;
END st r uct ural ; 2.3. Modul Pencacah Naik Turun
Modul ini digunakan sebagai pencacah naik dan turun, mulai dari 1 sampai dengan 10, yang kemudian diumpankan luarannya ke modul penghasil PWM. 2.4. Modul Penghasil PWM
Pengaturan kecepatan putaran dilakukan dengan menggunakan menggunakan Pulse Width Modulation atau biasa disingkat sebagai PWM. Teknik PWM adalah cara pengalihan daya menggunakan sistem lebar pulsa untuk mengemudikan kecepatan motor. Pengaturan lebar pulsa ini menentukan kecepatan
putar motor. Hubungan antara masukan terhadap luaran PWM ditunjukkan pada Tabel 1.
Berikut kode VHDL-nya:
Berikut kode VHDL untuk modul yang menghasilkan sinyal PWM:
LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; USE I EEE. STD_L OGI C_UNSI GNED. ALL; ENTI TY Penghasi l _PWM I S PORT(
Cl oc k: i n s t d_ l ogi c ; I nput : i n st d_l ogi c_vector ( 3 downt o 0) ; PWM : out std_l ogi c);
SITIA 2013, Surabaya
out put 1 <= i nput PWM; out put 2 <= ' 0' ; el se out put 1 <= ' 0' ; out put 2 <= i nput pwm; end i f ;
pulsa yang nantinya dikirim ke FPGA, sebagaimana ditunjukkan pada Gambar 3.
3.2. Rangkaian Optokopler Optokopler adalah bagian penting dari sensor kecepatan putar motor DC. Rotary plate yang digunakan yaitu sebuah piringan dengan satu buah lobang dipinggirnya. Optokopler sebagai penghasil
Rangkaian ini terdiri dari rangkaian catudaya, penggerak motor DC dan Pemicu Schmitt, sebagaimana ditunjukkan pada Gambar 2.
Rangkaian ini berfungsi sebagai penggerak (driver ) berputarnya motor DC dan pengkondisi sinyal luaran optokopler menjadi gelombang kotak sempurna.
ISTEM A NALOG 3.1. Rangkaian Penggerak Motor DC
3. R ANCANGAN S
2.12. Modul Enkoder 7-Segmen Modul ini digunakan untuk mengkonversikan kode dalam bentuk BCD ke led-led yang sesuai dalam 7- segmen.
Modul ini diperlukan karena karakteristik tampilan 3x7-Segmen yang digunakan merupakan rangkaian multipleks. Walaupun agak rumit mengoperasikannya namun rangkaiannya menjadi lebih sederhana.
Modul ini merupakan modul multiplekser atau dapat dikatakan sebagai pemilih dari 3 data yang akan ditampilkan melalui 7-Segmen. Data tersebut berupa sebuah bilangan biner 16 bit dimana 12 bit terendah merepresentasikan 3 data yang dimaksud. 2.11. Modul Multiplekser 7-Segment
Modul ini digunakan sebagai pemilih dalam menentukan data dan 7-Segmen mana yang digunakan untuk menampilkan data tersebut. 2.10. Modul Multiplekser Tampilan
END Behavi or al ; 2.9. Modul Pencacah Pemilih
BCD <= z( 17 downt o 8) ; END PROCESS BCD1;
VARI ABLE z: STD_LOGI C_VECTOR ( 17 downt o 0) ; BEGI N f or i i n 0 t o 17 l oop z( i ) : = ' 0' ; end l oop; z( 10 downt o 3) : = Bi ner ; f or i i n 0 t o 4 l oop i f z( 11 downto 8) > 4 t hen z( 11 downt o 8) : = z( 11 downt o 8) +3; end i f ; i f z( 15 downto 12) > 4 t hen z( 15 downt o 12) : = z( 15 downt o 12) +3; end i f ; z( 17 downto 1) : = z( 16 downto 0); end l oop;
I S BEGI N BCD1 : PROCESS( Bi ner )
END Konver si _Bi n_BCD; ARCHI TECTURE Behavi or al OF Konversi _Bi n_BCD
Bi ner : i n STD_LOGI C_VECTOR ( 7 downt o 0) ; BCD: out STD_LOGI C_VECTOR ( 15 downt o 0) ) ;
LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; USE I EEE. STD_L OGI C_UNSI GNED. ALL; ENTI TY Konver si _Bi n_BCD I S PORT(
2.8. Modul Konversi Biner BCD Modul ini merupakan modul pengkonversian bilangan dalam format biner ke Binary Coded Decimal (BCD) untuk keperluan tampilan 3x7-segmen. Berikut
END PROCESS; END Behavi or al ;
END Pencacah_ RPD; ARCHI TECTURE Behavi or al OF Pencacah_RPD I S SI GNAL qi : st d_l ogi c_vect or ( 7 downt o 0) ; BEGI N PROCESS (cl ock, r eset ) BEGI N i f ( reset =' 1' ) t hen qi <= " 00000000"; el se i f ( cl ock' event and cl ock=' 1' ) t hen qi <= qi + 1; end i f ; end i f ; i f ( r eset ' event and r eset =' 1' ) t hen q <= qi ; end i f ;
Cl oc k : i n s t d_ l ogi c ; Reset : i n std_l ogi c; Q : out st d_l ogi c_vect or ( 7 downt o 0) ) ;
LI BRARY I EEE; USE I EEE. STD_LOGI C_1164. ALL; USE I EEE. STD_L OGI C_UNSI GNED. ALL; ENTI TY Pencacah_RPD I S PORT(
Modul ini digunakan untuk menghitung banyaknya rotasi perputaran motor tiap detik. Berikut kode
2.6. Modul Detak Reset Modul ini untuk menghasilkan luaran detak (clock ) sebesar ±1 Hz. Luaran detak ini akan dihubungkan dengan masukan pada modul pencacah RPD. 2.7. Modul Pencacah RPD
END PROCESS; END Behavi or al ;
VHDL-nya:
VHDL-nya:
Academia © 2015