BAB 3 PERANCANGAN SISTEM
Perancangan sistem pada timbangan digital sebagai penentuan pengangkatan beban oleh lengan robot berbasiskan sensor tekanan (Strain Gauge) dibagi menjadi dua bagian yaitu perancangan perangkat keras dan perancangan perangkat lunak. Perancangan perangkat keras meliputi perancangan fisik dan modul rangkaian dari sistem, sedangkan perancangan perangkat lunak meliputi pemrograman microcontroller dan pemrograman Visual Basic.
3.1
Perancangan Perangkat Keras.
Ga mbar 3.1 Modul Perangkat Keras
Perancangan keras dibuat seperti pada gambar 3.1, dengan fungsi dari masingmasing modul rangkaian adalah : •
Sensor tekanan analog (FlexiForce) yang dihubungkan dengan salah satu kaki rangkaian Wheatstone Bridge, berfungsi untuk mengukur tekanan.
•
Modul penguat berfungsi untuk menguatkan sinyal keluaran dari rangkaian Wheatstone Bridge.
•
Modul ADC berfungsi untuk melakukan konversi sinyal analog yang telah dikuatkan menjadi sinyal digital.
•
Modul microcontroller sebagai kontrol terhadap ADC untuk melakukan konversi data juga berfungsi untuk mengirimkan data keluaran ADC ke PC dengan menggunakan komunikasi serial.
•
Modul
MAXIM
232
berfungsi
untuk
menyamakan
tegangan
TTL
microcontroller dengan tegangan PC sehingga microcontroller dapat mengirim atau menerima data ke PC. •
PC berfungsi untuk melakukan pemrograman terhadap lengan robot dengan aplikasi Visual Basic dan juga sebagai penampilan beban yang diterima oleh timbangan digital.
•
Lengan robot berfungsi untuk mengangkat beban dengan kondisi berat beban kurang atau sama dengan 2 KiloGram.
3.1.1 Modul Strain Gauge Rangkaian untuk sensor tekanan yang digunakan adalah rangkaian wheatstone Bridge. Rangkaian Wheatstone Bridge dihubungkan dengan
45
tegangan masukan sebesar 5 Volt, sehingga tegangan keluaran rangkaian Bridge sama dengan 2,5 Volt. Sensor tekanan dihubungkan dengan salah satu kaki dari rangkaian Bridge, sedangkan kaki rangkaian Bridge lainnya dihubungkan dengan tahanan sebesar 10 MegaOhm. Apabila suatu beban diletakkan pada sensing area dari sensor maka nilai tahanan pada sensor akan menurun. Sehingga tegangan keluaran Bridge akan berubah. Semakin besar berat beban yang diberikan maka tegangan keluaran Bridge akan semakin besar. Besarnya tegangan keluaran tersebut berbanding terbalik dengan tahanan sensor, dimana semakin besar berat beban yang diberikan maka nilai tahanan sensor akan menurun sedangkan untuk tegangan keluaran Bridge akan meningkat. Rangkaian Bridge dapat dilihat pada gambar 3.2.
Gambar 3.2 Rangkaian Wheatstone Bridge (Quarter Bridge) Berdasarkan gambar diatas nilai tahanan R1, R2 dan R4 adalah 10 MegaOhm, sedangkan R3 adalah sensor dengan nilai tahanan variable (keadaan normal/tidak terdapat beban sebesar 10 MegaOhm). Dari gambar tersebut dapat diketahui nilai tegangan pada titik A adalah sebesar 2,5 Volt.
VA =
R2 * VIN R1 + R2
Sedangkan untuk tegangan pada titik B adalah : VB =
R3 * V IN R3 + R4
Untuk keadaan normal tegangan pada titik B adalah 2,5 Volt. Sehingga tegangan keluaran rangkaian Bridge menjadi nol karena persamaan tegangan keluarannya adalah : VOut = V A − VB
3.1.2 Modul Penguat Rangkaian penguat menggunakan tegangan referensi sebesar +15 Volt untuk tegangan referensi positifnya dan -15 Volt untuk tegangan referensi negatifnya. Rangkaian penguat ini digunakan untuk menguatkan tegangan keluaran rangkaian Bridge. Penguat ini digunakan karena tegangan keluaran dari rangkaian Bridge yang kecil, hal tersebut dikarenakan sensitivitas dari sensor tekanan yang digunakan. Untuk rangkaian penguat ini digunakan IC LM741, dan tipe penguatan yang digunakan adalah penguat selisih. Dimana tegangan keluaran pada titik A dan titik B dari rangkaian Bridge di masukkan ke IC LM741, dengan titik B sebagai masukan positif dan titik A sebagai masukan negatif.
47
Gambar 3.3 Rangkaian Penguat selisih Op_Amp Untuk rangkaian diatas nilai tahanan R1 = R2 dan nilai tahanan R3 = R4, sehingga besarnya penguatan yang terjadi dapat diketahui yaitu : A=
R3 R1
Dengan mengetahui besarnya penguatan yang terjadi maka dapat di hitung nilai tegangan keluaran rangkaian penguat. Dimana persamaan matematika untuk tegangan keluaran rangkaian penguat diatas adalah : VO =
R3 (V2 − V1 ) R1
3.1.1 Modul ADC Rangkaian Analog to Digital Converter (ADC) dapat dilihat pada gambar 3.4.
Gambar 3.4 Rangkaian ADC Rangkaian ADC menggunakan tegangan Vcc dan tegangan referensi positif sebesar 5 Volt, sedangkan untuk tegangan referensi negatifnya 0 Volt. IC ADC yang digunakan adalah ADC0808 dengan 8 buah input dan 8 buah output. IC ADC0808 menyediakan decoder untuk menentukan input dari ADC yang akan digunakan yaitu, pin A, B dan C. Tabel 3.1 ADC Address Setting Pin Input ADC In0 In1 In2 In3 In4 In5 In6 In7
C L L L L H H H H
49
Pin Alamat B L L H H L L H H
A L H L H L H L H
Berdasarkan gambar 3.4 pin A, B dan C dihubungkan langsung dengan ground sehingga dapat diketahui bahwa input dari ADC yang digunakan adalah In0. Tegangan referensi ADC yang digunakan adalah 5 Volt untuk tegangan referensi positifnya dan nol volt untuk tegangan referensi negatifnya. Rangkaian ADC pada gambar 3.4 menggunakan Port 2 dari IC microcontroller AT89C52 sebagai keluaran dari ADC, port 3 pin 4 sampai dengan pin 7 dari microcontroller AT89C52 sebagai masukan untuk dapat melakukan konversi dan port 1 pin 7 sebagai masukan clock ADC. Pada saat awal pin start, ALE dan OE dalam kondisi LOW, sedangkan EOC dalam kondisi HIGH. Untuk dapat mengoperasikan ADC pertama-tama pin start dan ALE harus diberikan input HIGH sesaat kemudian di LOW kan kembali. Setelah pin start dan ALE kembali ke kondisi LOW, maka pin EOC ADC akan menjadi LOW sesaat dan kemudian kembali ke keadaan HIGH. Setelah EOC berubah dari HIGH ke LOW kemudian kembali ke HIGH, pin OE ADC diberikan input HIGH untuk mengeluarkan sinyal digital pada pin output ADC. Input pin-pin ADC seperti ALE, Start dan OE diatur oleh microcontroller, sedangkan pin EOC ADC memberikan sinyal ke microcontroller untuk menyatakan bahwa konversi telah berakhir dan data digital telah didapatkan.
50
3.1.4 Perancangan Modul Microcontroler. 5V
Vcc 40
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7
ADC LSB 2-7 2-6 2-5 2-4 2-3 2-2 ADC MSB
31
21
C3
22
9
23
R1
25 26 27
MCS 89C52
28
8 10 11
15 16
Xtal 1 18 Crystal 19
C2
Rst
24
14
C1
EA
Xtal 2
17
P1.7 P3.0 P3.1 P3.4 P3.5 P3.6 P3.7
ADC Clock MAX Pin 12 MAX Pin 11 ADC Start ADC ALE ADC EOC ADC OE
20
Gnd
Gambar 3.5 Rangkaian microcontroller. Microcontroller yang digunakan adalah AT89C52, berdasarkan gambar diatas pin Vcc dihubungkan dengan tegangan 5 Volt. Microcontroller menggunakan crystal sebesar 11,0592 MHz sebagai pembangkit pulsa clock dan dua buah kapasitor masing-masing sebesar 33pF untuk menambah kestabilan sistem yang dihubungkan pada pin X-tal1 dan Xtal2. Pin reset dihubungkan dengan paralel kapasitor dan resistor dan pin EA dari microcontroller dihubungkan dengan tegangan 5 Volt untuk mengaktifkan alamat internal I/O microcontroller. Port 2 dari microcontroller digunakan sebagai input sinyal ADC. Sedangkan untuk port 3 pada pin 4 sampai pin 7 digunakan untuk mengatur proses konversi ADC, dimana pin-pin tersebut
51
terhubung dengan ADC secara berurutan pada pin Start, ALE, EOC dan OE. Sedangkan port 1 pin ke 7 digunakan untuk membangkitkan pulsa clock ADC. Microcontroller juga digunakan untuk mengirimkan data yang diterima dari ADC ke PC dengan bantuan IC MAXIM 232. Dimana pin-pin microcontroller yang terhubung dengan MAXIM 232 antara lain adalah port 3 pin 0 dan 1. Port 3 pin 0 terhubung dengan pin 12 (R1OUT) dari MAXIM 232, sedangkan pin 1 terhubung dengan pin 11 (T1IN) dari MAXIM 232. Pin 0 dari port 3 microcontroller berfungsi untuk menerima data yang dikirimkan dari PC, sedangkan pin 1 dari port 3 microcontroller berfungsi untuk mengirimkan data hasil konversi ADC ke PC.
3.1.5 Perancangan Modul RS 232. Fungsi dari modul ini adalah sebagai perantara komunikasi serial microcontroller dengan serial PC. Didalam modul ini digunakan IC MAXIM 232 yang berfungsi untuk menyetarakan tegangan PC (±9 Volt). dengan tegangan microcontroller (±5 Volt). IC MAXIM 232 menggunakan tegangan Vcc sebesar 5 Volt. Pin 1 dan pin 3 dihubungkan dengan sebuah kapasitor sebesar 10µF/35Volt, pin 4 dan pin 5 juga dihubungkan dengan sebuah kapasitor. Kegunaan dari kapasitor-kapasitor tersebut adalah sebagai generator tegangan untuk EIA-232 dengan menggunakan tegangan supply sebesar 5 Volt. Pin 2 dan 6 dihubungkan dengan kapasitor yang kemudian dihubungkan dengan ground. Fungsi dari kapasitor-kapasitor digunakan untuk memperkecil
52
ripple tegangan keluaran positif dan negatif supply dari IC MAXIM 232. Gambar rangkaian MAXIM 232 dapat dilihat pada gambar 3.6.
Gambar 3.6 Rangkaian MAXIM 232
53
Gambar 3.7 Diagram Alir Program di sistem minimum 3.1
Perancangan Perangkat Lunak. Perancangan perangkat lunak merupakan perancangan program yang ada pada AT89C52 dan visual basic.
Pemrograman microcontroller AT89C52 berfungsi untuk mengatur proses konversi ADC, penerimaan sinyal digital dan pengiriman data tersebut ke PC dengan memanfaatkan komunikasi serial. Sedangkan pemrograman visual basic berfungsi sebagai tampilan data yang didapatkan seperti data hasil konversi dalam bentuk hexadecimal, tegangan input ADC berdasarkan dari data yang diterima, berat beban yang diletakkan pada modul berdasarkan hasil perhitungan tegangan input, dan sebagai input pemrograman untuk gerak lengan robot.
3.2.1 Perancangan Perangkat Lunak Bahasa Assembly. Pemrograman microcontroller yang menggunakan bahasa assembly berfungsi untuk mengatur proses konversi sinyal analog menjadi digital dan proses pengiriman data dari microcontroller ke PC dengan memanfaatkan komunikasi serial. Diagram alir pemrogram bahasa assembly dapat dilihat pada gambar 3.7. Ketika sistem dijalankan maka akan dilakukan inisialisasi terhadap microcontroller. Pemrograman didalam microcontroller pertama-tama akan melakukan initialisasi ADC0808 (pin start, ALE, Clock dan OE di set menjadi LOW),
kemudian
melakukan
proses
inisialisasi
komunikasi
serial
(menentukan mode serial, mode timer serta baudrate yang digunakan). Setelah initialisasi terhadap ADC dan serial selesai pemrograman selanjutnya adalah melakukan pengaturan untuk proses konversi sinyal analog menjadi digital yang akan dilakukan oleh ADC. Untuk memulai konversi dilakukan clock satu kali pada pin clock ADC, kemudian pin-pin ADC seperti
55
start dan ALE (Address Latch Enable) harus di berikan input HIGH sesaat lalu dilowkan kembali (sebelum di LOW kan ADC diberikan clock satu kali). Kemudian ADC diberikan clock sampai pin EOC (End of Conversion) dari ADC berubah dari HIGH menjadi LOW. Apabila nilai EOC sama dengan LOW maka dilakukan set (memberikan input HIGH) terhadap pin OE (Output Enable). Dengan memberikan input HIGH kepada pin OE ADC maka akan didapatkan sinyal digital yang kemudian diterima oleh port 2 microcontroller dan disimpan pada variabel A. Setelah selesai pin OE di LOW-kan kembali. Setelah selesai melakukan konversi dan data telah disimpan didalam memori microcontroller data tersebut kemudian dikirimkan ke PC dengan komunikasi serial melalui perintah mov SBUF,a.
3.2.2 Perancangan Perangkat Lunak Visual Basic Pemrograman bahasa visual basic digunakan untuk menampilkan data yang dikirimkan oleh microcontroller, data berat beban dan program untuk menjalankan lengan robot. Gambar tampilan pemrograman visual basic dapat dilihat pada gambar 3.8.
56
Gambar 3.8 Screen shot program visual basic Ketika program dijalankan yang pertama kali dilakukan adalah melakukan inisialisasi terhadap port serial yaitu menentukan setting port serial, serta mengaktifkan port. Sehingga ketika program dijalankan komunikasi dengan menggunakan port serial langsung dapat digunakan. Didalam pemrograman visual basic ini dibagi menjadi tiga bagian yaitu bagian input yang terdiri dari informasi nilai hexadecimal dan nilai tegangan berdasarkan data yang diterima oleh serial port PC, bagian informasi berat beban, dan yang terakhir adalah bagian yang digunakan untuk memasukkan program untuk menjalankan lengan robot.
57
Pada bagian input memiliki informasi tentang data yang diterima oleh serial port PC. Data yang diterima dalam bentuk bit tersebut kemudian dikonversi kedalam bentuk hexadecimal. Selain itu data tersebut juga dikonversikan kedalam bentuk desimal lalu dengan menggunakan persamaan matematik nilai desimal tersebut diubah menjadi satuan volt. Sehingga pada bagian input terdapat dua buah tampilan yaitu tampilan nilai hexadesimal yang diterima oleh microcontroller dan tampilan nilai tegangan input ADC. Potongan program yang digunakan untuk menampilkan nilai hexadecimal dan tegangan input :
txtinput.Text = hex(Asc(tmp)) A = Val(("&H" & txtinput) * 5) / 256 txtvolt.Text = A – 0.026 * A Dimana : 0.026 = nilai error system (2.6%)
Informasi berat beban yang ditampilkan didapat dari perhitungan matematis dengan menggunakan nilai tegangan yang didapatkan pada bagian input. Informasi berat beban tersebut ditampilkan dalam textbox. Potongan program yang digunakan untuk menampilkan nilai beban yang diterima oleh sensor strain gauge :
txtweight.Text = (txtvolt.Text * 0.053154) / 0.01953125
Dimana : 0.01953125 = resolusi tegangan ADC 0.053154 = berat beban per satuan resolusi ADC (2.6%)
58
Bagian
terakhir
dari
pemrograman
visual
basic
ini
adalah
pemrograman untuk input program lengan robot. Pada bagian ini diberikan sebuah text box untuk memasukkan program lengan robot, sebuah text box untuk menampilkan program yang terkirim ke lengan robot, sebuah tombol untuk memberikan perintah ke lengan robot untuk kembali ke posisi origin, dan sebuah tombol untuk menjalankan program yang telah dituliskan. Karena batas maksimum berat beban yang dianjurkan untuk lengan robot MovemasterEX RV-M1 adalah sebesar 2Kg maka sebelum program lengan robot dikirimkan, akan dilakukan pembandingan antara nilai berat beban yang ditampilkan dengan nilai yang telah ditentukan yaitu 2Kg. Apabila nilai tersebut kurang dari atau sama dengan 2 Kg maka program tersebut akan dikirimkan melalui serial port, sedangkan bila nilai tersebut lebih besar dari 2 Kg maka akan ditampilkan massage box yang berisikan “Weight > 2 Kg”. Dengan adanya pembandingan tersebut maka lengan robot tidak akan terganggu kestabilan sistemnya atau mengalami kerusakan. Diagram alir program visual basic dapat dilihat pada gambar 3.9.
59
Gambar 3.9 Diagram alir program Visual Basic
3.3 Rancang Bangun Sistem Rancang bangun sistem diperlihatkan oleh gambar 3.10 dengan disertakan ukuran ruang serta penempatan sensor tekanan diatas bangun ruang sehingga dapat digunakan untuk melakukan pengukuran terhadap berat beban.
Gambar 3.10 Bangun ruang system
61
Gambar 3.11 Prototype bangun ruang sistem
62