BAB I
P E N D A H U L U A N
1.1 Pendahuluan
Man-Machine Interface (MMI) adalah kebutuhan standar di dunia industri
manufaktur. Perangkat teknologi informasi dan komunikasi yang membangun
MMI berfungsi sebagai penghubung antara manusia dan mesin-mesin yang
menjalankan proses industri yang kompleks. MMI adalah bagian utama dari
sistem-sistem teknologi kendali proses (Process Control Technology) di dunia
industri manufaktur.
1.2 Tujuan
o Mengetahui cara kerja Servo Motor DC type ED-4400 serta dapat
merangkainya membentuk sistem pengontrolan kecepatan motor loop
tertutup.
PROSES INDUSTRI (INDUSTRIAL PROCESSES)
Pengendalian (Control)
Pemantauan (Monitoring and Data
Acquisition)
MMI
Tugas MicroControl MMI Server
1
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
o Mengetahui cara kerja modul mikroprosesor trainer SK-8051 dan dapat
menggunakannya sebagai antarmuka dengan PC dalam sistem
pengontrolan kecepatan motor
o Mengetahui aplikasi bahasa pemrograman Borland Delphi dalam
penggunaannya sebagai software MMI
o Mampu membuat aplikasi PC Client-Server dengan software MMI untuk
pengontrolan kecepatan motor.
o Mampu membuat sistem pengendalian MMI Motor Servo DC
1.3 Batasan masalah
o Pengontrolan yang dilakukan dalam praktikum ini hanya pada
pengontrolan kecepatan motor bukan pengontrolan posisi motor
Tugas MicroControl MMI Server
2
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
BAB II
TINJAUAN PUSTAKA
2.1 Mikroprosesor Trainer SK-8051
Dalam perencanaan suatu sistem rangkaian elektronik, langkah teknis yang
dilakukan pertama dalah menggambarkan seluruh sistem dalam blok diagram.
Dari blok diagram, dapat diketahui bagaimana prinsip kerja umum dan hubungan
antara sub blok yang satu dengan yang lain dalam bentuk sistem kerja yang
terpadu. Blok diagram merupakan media penerjemahan pertama tentang
bagaimana mempelajari kelakuan sistem.
Rangkaian kontrol elektronik dengan memberikan penekanan pada kata
kontrol mempunyai arti yang lebih aplikatif, bahwa rangkaian itu digunakan
sebagai alat untuk sistem pengontrol. Fenomena sistem control dalam pengertian
keteknikan bermakna statu sistem yang mempunyai piranti penerima data-data
dari sistem yang dikontrol, sedangkan piranti output berfungsi sebagai pemberi
aksi lepada sistem yang dikontrol.
Sebuah mikrokomputer dalah sebuah perangkat yang sangat kompleks dan
serba guna. Dimana sistem yang digunakan dalah sebuah mikroprosesor sebagai
eemen utama yang mempunyai kemampuan sebagai CPU (Central Processing
Unit).
Mikroprosesor bersifat dapat diprogram (Programable) sehingga dapat
menggunakan perangkat keras (hardware) yang sama atau hampir sama dapat
Tugas MicroControl MMI Server
3
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
diperoleh dan dibuat beberapa fungsi yang berbeda hanya dengan mengganti atau
merubah programnya.
SK-8051 merupakan suatu modul yang dapat digunakan untuk mempelajari
sistem mikroprosesor yang dilengkapi dengan beberapa peripheral tambahan.
Bagian-bagian dari modul SK-8051 adalah :
1. LCD dengan 16 character x 2 baris 2. Eksternal ROM-32KByte, eksternal RAM-32KByte
3. Keypad model Built-in dan program monitor serial RS-232C 4. Program dapat dieksekusi pada eksternal RAM 5. PPI 8255 6. 3 Warna dot matriks 7. Speaker interface 8. 8 Channel Analog/Digital Converter
9. 12 Volt DC, 1A bipolar untuk mengerakkan motor 10. 8 bit FND set yang mengindikasikan 16 antilogaritma 11. 16 bit counter/timer 8253 12. Pin-pin chek counter timer dan A/D Converter 13. Fungsi satu langkah internal/eksternal memory dump, modifikasi data 14. AT89C51 12 V. Programming/Blank Chek 15. Terminal percobaal eksternal untuk P1 dan led display 16. 8 bit Port input inverted buffer, tombol tekan 8 buah 17. 8 bit port output : inverted match 8 buah 18. Select Pin (eks/in) untuk mengantikan fungsi fungsi int/eks ROM 19. Select Pin (ROM/RAM) 20. Ground 21. Power Supl : 110~220V AC input DC 12V/ +5V
Tugas MicroControl MMI Server
4
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 2.1 Tata letak komponen dalam modul SK-8051
Tabel 2.1 Peta alamat SK-8051
ALAMAT DESKRIPSI KETERANGAN 0000 7FFF 8000 FEFF FF00 FFFF
ROM RAM I/O
PROGRAM MEMORY PROGRAM MEMORY + DATA MEMORY I/O
Tabel 2.2 Peta alamat I/O SK-8051
ALAMAT DEFENISI KETERANGAN FF00 FF01
LCD_CMD LCD_DATA LCD
FF10 KEYPAD INPUT BUFFER 8 BIT UNTUK KEYPAD FF20 FF21 FF22 FF23
EXT_A EXT_B EXT_C
EXT_CMD 8255 UNTUK EKSTERNAL
FF24 DAC OUTPUT LATCH 8 BIT UNTUK D/A CONVERTER FF28 BUTTON INPUT BUFFER PEMBALIK 8 BIT FF2C FND INPUT LATCH 8 BIT UNTUK FND
Tugas MicroControl MMI Server
5
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
FF30 FF31 FF32 FF33
DOT_A DOT_B DOT_C
DOT_CMD
8255 UNTUK DOT MATRIKS
FF34 FF35 FF36 FF37
WR_A WR_B WR_C
WR_CMD
AT89C51 PROGRAMMER 8255
FF38 L538 INPUT LATCH PEMBALIK 8 BIT UNTUK LED
Instruksi-instruksi keluarga MCS-51
Instruksi yang dimiliki oleh keluarga mikrokontroler MCS-51 yang digunakan
dalam modul mikroprosesor trainer SK-8051 pada dasarnya digolongkan menjadi
instruksi operasi aritmatika
operasi logika
transfer data operasi manipulasi boolean perintah percabangan. Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa assembly
untuk IBM PC. Masing-masing instruksi dapat dijelaskan sebagai berikut :
ADD (Add Immediate Data) Operand A Accumulator Data - 256
Tugas MicroControl MMI Server
6
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
ADD (Add Register) Operand A Accumulator Rr Register 0 7 Format ADD A, Rr Operasi (A) (A) + (Rr) Keterangan instruksi ini menambah isi register r dengan isi akumulator dan
menyimpan hasilnya dalam akumulator Contoh ADD A, R6
ADD (Add Memori) Operand A Accumulator Alamat data 0
Tugas MicroControl MMI Server
7
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
ADDC (Add Carry Plus Memory To Accumulator) Operand A Accumulator Alamat data 0
Tugas MicroControl MMI Server
8
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Format ANL A, Alamat data Operasi (A) (A) AND (Alamat data) Keterangan instruksi ini meng-ANL kan isi alamat data dengan isi akumulator Contoh ANL A, 35H
ANL (Logical AND Bit to Carry Flag) Operand C Carry flag Alamat bit 0
Tugas MicroControl MMI Server
9
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
CALL (Generic Call) Operand Alamat kode Format Call alamat kode Keterangan instruksi ini akan ditranslasikan ke ACALL atau LCALL
CJNE (Compare Indirect Address to Immediate Data) Jump if Nol Equal Operand Rr Register 0
Tugas MicroControl MMI Server
10
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
menuju ke alamat kode. Bila lama, instruksi selanjutnya yang akan dijalankan. Jika data langsung lebih besar dari isi akumulator, carry flag akan di - set menjadi 1.
CJNE (Compare Immediate Data to Register) Jump if Not Equal Operand Rr Register 0
Tugas MicroControl MMI Server
11
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
CPL (Complement Carry Flag) Operand CPL C Forma CPL C Operasi (C) NOT Keterangan instruksi ini akan mengkomplemen isi carry flag Contoh CPL C
CPL (Complmen Bit) Operand Alamat bit 0
Tugas MicroControl MMI Server
12
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
DEC (Decrement Memory) Operand Alamat data 0
Tugas MicroControl MMI Server
13
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
INC (Increment Accumulator) Operand A Accmulator Format INC A Operasi (A) (A) + 1 , Keterangan instruksi ini akan menambahkan isi akumulator dengan 1. Hasilnya
disimpan dalam akumulator. Contoh INC A
INC (Increment Data Pointer) Operand DPTR Data Pointer Format INC DPTR Operasi (DPTR) (DPTR) + 1 Keterangan instruksi ini akan menambah isi data pointer dengan 1. Hasilnya
disimpan pada data pointer. Contoh INC DPTR
INC (Increnent Register) Operand Rr Register 0
Tugas MicroControl MMI Server
14
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
JBC (Jump And Clear if Bit is Set) Operand Alamat bit 0
Tugas MicroControl MMI Server
15
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
JNC (Jump if Carry is Not Set) Operand Alamat kode format JNC Alamat kode Operasi (PC) (PC) + 2 Jika (C) = 0, maka (PC) (PC) + offset relatif Keterangan instruksi ini akan menguji isi carry flag. Jika isinya 0, eksekusi
akan menuju ke alamat kode. Jika isinya 1, instruksi selanjutnya yang akan dieksekusi.
JNZ (Jump if Accumulator is Not Zero) Operand Alamat kode Format JNZ Alamat kode Operasi (PC) (PC) + 2 Jika (A) 0, maka (PC) (PC) + offset relative Keterangan instruksi ini. akan menguji isi akumulator. Jika tidak sama
dengan 0, eksekusi akan menuju ke alamat kode. Jika sama dengan 0, instruksi selanjutnya yang akan dieksekusi.
JZ (Jump if Accumulator is Zero) Operand Alamat kode Format JZ Alamat kode Operasi (PC) (PC) + 2 Jika (A) = 0, maka (PC) (PC) + offset relatif Keterangan instruksi ini akan menguji isi akumulator. Jika sama dengan 0,
eksekusi akan menuju ke alamat kode. Jika tidak sama dengan 0, instruksi selanjutnya yang akan dieksekusi.
LCALL (Long Call) Operand Alamat kode 0
Tugas MicroControl MMI Server
16
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
MOV (Move Immediate Data to Indirect Address) Operand Rr Register 0
Tugas MicroControl MMI Server
17
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
MOV (Move Register to Accumulator) Operand A Akkumulator Rr Register 0
Tugas MicroControl MMI Server
18
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Format MOVC A, @A + DPTR Operasi (A) ((A) + (DPTR)) Keterangan instruksi ini menjumlahkan isi data pointer dengan ini akumulator.
Hasil penjumlahan merupakan alamat kode memory dan isinya akan dipindahkan ke akumulator.
Contoh MOVC, @A+DPTR
MOVC (Move Code Memory Offset from Program Counter to Accumulator) Operand A Akumulator PC Program Counter Format MOVC A, @A + PC Operasi (PC) (PC) + 1 (A) ((A)+(PC)) Keterangan instruksi ini menjumlahkan isi pencacah program yang telah
dinaikkan dengan isi akumulator. Hasil penjumlahan tersebut digunakan sebagai alamat kode memori dan isinya dipindahkan ke akumulator.
Contoh MOVC, @A+PC
MOVX (Move Accumulator to External Memory addressed by Data Pointer) Operand DPTR Data Pointer A Akumulator Format MOVX, @DPTR, A Operasi ((DPTR))
Tugas MicroControl MMI Server
19
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Contoh MOVX A, @DPTR
MOVX (Move External Memory Addressed by Register to Accumulator) Operand A Akumulator Rr Register 0
Tugas MicroControl MMI Server
20
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Keterangan instruksi ini meng-OR kan isi memori yang lokasinya ditunjukkan oleh isi register r dengan isi akumulator. Hasilnya disimpan di akumulator.
Contoh ORL A,@RO
ORL (Logical OR Register to Accumulator) Operand A Accumulator Alamat data 0
Tugas MicroControl MMI Server
21
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Format ORL Alamat data, A Operasi (Alamat data) (Alamat data) OR A Keterangan instruksi ini meng OR kan isi akumulator dengan isi alamat
data tertentu. Hasilnya disimpan dalam memori data pada alamat yang bersangkutan
Contoh ORL 10H,A
POP (Pop Stack to Memory) Operand Alamat data 0
Tugas MicroControl MMI Server
22
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Operand A Akumulator Format RL A Operasi Keterangan instruksi ini memutar setiap bit dalam akumulator serta posisi
ke kiri. Bit paling besar (MSB) bergerak ke bit paling kecil (LSB).
Contoh RL A
RLC (Rotate Accumulator And Carry Flag Left) Operand A Akumulator Format RLC A Operasi Keterangan instruksi ini memutar bit bit dalam akumulator satu posisi ke
kiri. Bit paling besar (MSB) bergerak ke dalam carry flag. Sedangkan isi carry flag menuju ke LSB
Contoh RLC A
RR (Rotate Accumulator Right) Operand A Akumulator Format RR A Operasi Keterangan instruksi ini memutar setiap bit dalam akumulator serta posisi
ke kanan. Bit paling kecil (LSB) bergerak ke bit paling besarl (MSB).
Contoh RR A
RRC (Rotate Accumulator And Carry Flag Right) Operand A Akumulator Format RRC A Operasi Keterangan instruksi ini memutar bit bit dalam akumulator satu posisi ke
kanan. Bit paling kecil (LSB) bergerak ke dzlam carry flag. Sedangkan isi carry flag menuju ke MSB
Contoh RRC A
SETB (Set Carry Flag) Operand C Carry Flag Format SETB C Operasi (C)
Tugas MicroControl MMI Server
23
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Contoh SETB 41.5
SUBB (Subtract Indirect Address from Accumulator with Borrow) Operand A Akumulator Rr Register 0
Tugas MicroControl MMI Server
24
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
SWAP (Excharge Nibbles in Accumulator) Operand A Akumulator Format SWAP A Keterangan instruksi ini akan mempertukarkan nibble bawah dengan nibble atas Contoh SWAP A
XCH (Exchange Indirect Address with Accumulator) Operand A Akumulator Rr Register 0
Tugas MicroControl MMI Server
25
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Keterangan instruksi ini akan menukar isi nibble bawah dari lokasi memori yang alamatnya ditunjukkan oleh isi register r dengan isi nibble bawah akumulator.
Contoh XCHD A, @R0
XRL (Logical XOR Immediate rata to Accumulator) Operand A Akumulator data -256
Tugas MicroControl MMI Server
26
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 2.2. Konfigurasi Penyemat AT89C51
Port 1 merupakan port I/O yang dapat digunakan per bit. Port 3 merupakan
port kontrol sinyal yang memiliki konfigurasi sebagai berikut :
Tabel 2.3 Konfigurasi Port AT89C51 Port Signal Fungsi P3.0 RXD Receive data for serial port P3.1 TXD Transmit data for serial port P3.2 INT0 External interrupt 0 P3.3 INT1 External interrupt 1 P3.4 T0 Timer/ Counter 0 external input P3.5 T1 Timer/ Counter 1 external input P3.6 WR External data memori write strobe P3.7 RD External data memori read strobe
Organisasi memori
Memori pada mikrokontroller keluarga MCS-51 dibagi menjadi dua bagian,
yaitu : program memori dan data memori. Pada program memori dan data memori
terpisah secara logika, dengan membedakan sinyal yang mengaktifkannya. Untuk
mengakses program memori digunakan sinyal PSEN, sedangkan untuk data
memori digunakan sinyal RD dan WR. Hal ini menyebabkan processsor keluarga
Tugas MicroControl MMI Server
27
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
MCS-51 mampu mengakses 64 Kbyte eksternal program memori dan eksternal
data memori.
1. Program memori.
Mikrokontroler AT89C51 mempunyai 4 Kbyte internal program memori.
Untuk memakai internal program memori, maka pin EA harus diberi level
logic high, untuk mengakses eksternal program memori maka bit EA diberi
logic low.
2. Data memori
Mikrokontroler AT89C51 mempunyai dua bagian data memori yaitu internal
data memori dan eksternal data memori. Eksternal data mempunyai fungsi
yang hampir sama dengan program memori, namun pada eksternal memori
dapat dilakukan proses pembacaan dan penulisan data.
Secara umum mikrokontroler keluarga MCS-51 membagi internal data
memori menjadi tiga blok, yaitu:
- Lower 128 byte RAM
- Upper 128 byte RAM
- Special Function Register (SFK)
Tetapi pada mikrokontroler 8031/ 8051/ 8751 upper 128 byte RAM tidak
tersedia, daerah memori tersebut hanya ada pada mikrokontroler 8052.
2.1.2 ADC (Analog to Digital Converter)
Analog to Digital Converter (ADC) adalah sebuah piranti elektronik yang
banyak digunakan oleh perangkat-perangkat digital berupa komputer dan
mikroprosesor Kebutuhan akan ADC saat ini sangat penting karena untuk
Tugas MicroControl MMI Server
28
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
mengolah isyarat analog oleh perangkat digital tidak akan bisa diproses. Jadi ADC
menjadi jembatan antara perangkat analog dan perangkat digital. Setelah data
diproses oleh komputer atau perangkat digital yang lain, data digital yang
dihasilkan dapat diubah menjadi data analog kembali dengan menggunakan
perangkat Digital to Analog Converter.
Contoh ADC 8 bit yang mampu menerima 8 input dan banyak digunakan
ialah ADC 0808. ADC ini mampu diprogram umtuk memulai konversi melalui
pin SC (Start Conversion), mampu juga berjalan dengan mode free running,
artinya akan mengkonversi terus menerus sinyal input yang masuk dengan cara
menghubungkan pin EOC (End of Conversion) ke SC. Gambar 2.3 adalah
diagram penyemat ADC 0808
Gambar 2.3. Dagram penyemat ADC 0808
IC ADC 0808 merupakan IC yang terdiri dari 28 buah pin. Multiplekser
yang terdiri dari 8 saluran dapat mengakses secara langsung beberapa dari 8 sinyal
analog. Masing-masing pin mempunyai fungsi yang berbeda-beda. Dari
In3 In4 In5 In6 SC
EOC D3 OE
Clock Vcc
Vref (+) Gnd
D1
In2 In1 In0 ADD A ADD B ADD C ALE D7 D6 D5 D4 D0 D2
A D C
0 8 0 9
Tugas MicroControl MMI Server
29
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
perbedaan ini ada beberapa pin yang termasuk dalam kategori yang sama.
Misalnya, untuk data hasil pengubahan terdiri dari 8, pemilihan alamat saluran
terdiri dari 3 pin dalam kategori yang sama.
Tabel 2.4 Deskripsi pin-pin ADC 0808
No pin Simbol I/O Deskripsi 1-5
26-28 In7 In3 In0 In2
I I
Input analog pin, salah satu dari pin dapat dipilih, tergantung pada pengaturan data pin ADD A, ADD B ADD C.
21-18 17 14 8
15
D7 D4 D0 D1 D3 D2
O O O O O
Pin output ini adalah hasil dari pengubahan. Hasilnya adalah 8 bit data paralel.
10 Clock I Masukan detak 23 24 25
ADD A ADD B ADD C
I I I
Pin input untuk pemilihan saluran masukan analog.
6 Star Conversion I Pin untuk memulai konversi 22 ALE I Address Latch Enable, penguncian alamat 7 EOC I Pin untuk sinyal akhir conversi 9 OE I Output Enable, agar output dapat dibaca
12 Vref(+) - Tegangan referensi + 16 Vref(-) - Tegangan referensi - 11 VCC - Pin catu daya 13 GND - Pin ground
Karena input ADC 0808 sebanyak 8 buah ter-multipleks, maka untuk
memilih kanal input diatur melalui pin-pin ADD A, ADD B, dan ADD C. Tabel
2.5 berikut adalah tabel pemilihan kanal input ADC 0808
Tabel 2.5 Pemilihan kanal input ADC 0808
Kanal Input ADD A ADD B ADD C 0 1 2 3 4
L L L L H
L L H H L
L H L H L
Tugas MicroControl MMI Server
30
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
5 6 7
H H H
L H H
H L H
2.2 Digital To Analog Converter
Digital to Analog Converter adalah piranti elektronik yang berfungsi untuk
mengkonversi data digital menjadi data analog. Salah satu jenis DAC yang umum
adalah DAC 0808, yaitu merupakan digital to analog converter R-2R 8 bit yang
dilengkapi dengan sumber arus acuan dan 8 buah transistor saklar untuk
mengarahkan arus biner yang lazim berlaku yaitu 2mA. DAC0808 menpunyai
waktu pemantapan 150 nS dan ketelitian relatif LSB. Gambar 2.4 seperti
yang ditunjukkan di bawah ini adalah konfigurasi penyemat dari DAC 0808.
Gambar 2.4 Konfigurasi penyemat dari DAC 0808.
Penyemat 1 tidak dipakai (NC, No Connection) Penyemat 2 adalah saluran
ground. Penyemat 3 (Vee) harus dipasang pada catu tegangan -15V. Penyemat 4
adalah saluran balik dari tanah (ground return) bagi arus yang keluar dari
rangkaian tangga, penyemat ini biasa dihubungkan dengan sebuah Operational
Amplifier (Op-Amp). Penyemat 5 sampai 12 merupakan saluran bagi 8 bit data
masukan. Penyemat 13 harus dipasang pada catu tegangan +5V. Penyemat 14
dihubungkan dengan catu tegangan positif melalui sebuah hambatan R14, dan
1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9
NC kompensasi Gnd V reff- Vee Vreff+ Iout Vcc D7 D0 D6 D1 D5 D2 D4 D3
DAC 0 8 0 8
Tugas MicroControl MMI Server
31
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
penyemat 15 ditanahkan melalui subuah hambatan. Antara penyemat 16 dan
penyemat 13 dipasang sebuah kapasitor yang berfungsi untuk memberi
kompensasi frekuensi bagi piranti ini.
2.3 Pemrograman Port Serial
2.3.1 Tata Cara Komunikasi Data Serial
Dalam komunikasi data secara serial dikenal dua cara yaitu asinkron dan
sinkron. Pada komunikasi data serial sinkron clock dikirimkan bersama-sama
dengan data serial, sedangkan komunikasi data serial asinkron clock tidak
dikirimkan bersama data serial tapi dibangkitkan secara sendiri-sendiri baik pada
sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Pada IBM-PC
compatible port serialnya termasuk jenis asinkron. Komunikasi data serial ini
dikerjakan oleh UART (Universal Asinkron Receiver/Transmiiter). IC UART
dibuat khusus untuk mangubah data paralel menjadi data serial dan menerima data
serial yang kemudian diubah kembali menjadi data paralel. IC UART 8250 dari
intel merupakan salah satunya. Selain berbentuk IC mandiri, berbagai macam
mikrokontroller ada yang dilengkapi UART, misalnya keluarga mikrokontroller
MCS51.
Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi
transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi
antara transmitter dan receiver. Hal ini dilakukan oleh bit start dan bit stop.
Ketika saluran transmisi dalam keadaan idle, output UART dalam keadaan logika
1. Ketika transmitter ingin mengirim data, output UART diset lebih ke logika 0
untuk waktu satu bit. Sinyal ini pada receiver dikenali sebagai sebagai sinyal
Tugas MicroControl MMI Server
32
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
start yang digunakan untuk mensinkronkan fase clocknya sehingga sinkron
dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari
bit paling rendah sampai bit tertinggi. Selanjutnya, akan dikirim sinyal stop
sebagai akhir dari pengiriman data serial. Cara pemberian kode data yang
disalurkan tidak ditetapkan secara pasti. Gambar 2.5 berikut ini adalah contoh
pengiriman huruf A dalam format ASCII (41 heksa / 1000001 biner) tanpa bit
paritas.
Gambar 2.5. Pengiriman huruf A tanpa paritas
Kecepatan transmisi (baud rate) dapat dipilh bebas dalam rentang waktu
tertentu. Baud rate yang umum dipakai hdala 110, 135, 150, 300, 600, 1200,
2400, dan 9600 (bit/detik). Dalam komunikasi data serial, baud rate dari kedua
alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus
ditentukan panjang data, paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit
stop (1,1, atau 2 bit).
2.3.2 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan hdala estndar
RS232 yang dikembangkan oleh Electronic Industry Association and the
Telecommunications Industry Association (EIA/TIA) yang pertama kali
dipublikasikan pada tahun 1962. Ini jauh sebelum IC TTL populer sehingga sinyal
ini tidak ada hubungannya sama sekali dengan dengan level tegangan IC TTL.
5V
0 V START STOP
Tugas MicroControl MMI Server
33
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Estndar ini hanya menyangkut komunikasi data antara komputer (Data Terminal
Equipment DTE) dengan alat-alat pelengkap komputer (Data Circuit-
Terminating Equipment-DCE). Estndar RS232 inilah yang biasa digunakan pada
port serial IBM-PC kompatibel.
Stndar sinyal serial RS232 memiliki ketentuan level tegangan sebagai
berikut :
1. Logika 1 disebut Mark terletak antara -3 Volt hingga -25 Volt.
2. Logika 0 disebut space terletak antara +3 Volt hingg +25 Volt.
3. Daerah tegangan antara -3 Volthingga +3 Volt adalah invalid level, yaitu
daerah tegangan yang tidak memiliki level logika pasti sehingga harus
dihindari. Demikian juga, level tegangan lebih negatif dari -25 Volt atau lebih
positif dari +25 Volt juga harus dihindari karena tegangan tersebut dapat
merusak line driver pada saluran RS232.
Gambar 2.6 berikut ini dalah contoh level tegangan RS232 pada
pengiriman huruf A dalam format ASCII tanpa bit paritas.
Gambar 2.6. Level tegangan RS232 pada pengiriman huruf A tanpa bit paritas
2.3.3 Flow Control
Jika kecepatan tranfer data dari DTE ke DCE (misalnya komputer ke
modem) lebih cepat daripada transfer data dari DCE ke DCE (misalnya modem ke
+25V
0 V
-25V START
1 0 0 0 0 0 1 0 STOP
Tugas MicroControl MMI Server
34
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
modem), cepat atau lambat kelilangan data akan terjadi karena buffer pada DCE
akan mengalami over flor. Untuk itu diperlukan flor control untuk mengatasi hal
tersebut.
Dikenal dua macam flow control, yaitu secara software dan secara hardware.
Flow control secara software atau sering disebut Xon/Xoff flor control
menggunakan karkter Xon (tipikalnya karkter ASCII 17) dan karkter Xoff
(tipikalnya karkter ASCII 19) untuk melakukan kontrol. DCE akan mengirimkan
Xoff ke komputer untuk memberitahukan komputer agar menghentikan
pengiriman data jira buffer pada DCE telah penuh. Jika buffer telah kembali siap
menerima data, DCE akan mengirimkan karkter Xon ke komputer dan komputer
akan mengirimkan data selanjutnya sampai data terkirim semua atau komputer
menerima carcter Xoff lagi. Keuntungan flow control secara software ini dalah
hanya diperlukan kabel sedikit karena carcter control dikirimkan lewat saluran
Tx/Rx. Akan tetapi kecepatan pengiriman data menjadi lambat.
Flow control secara hardware atau sering disebut RTS/CTS flow control
menggunakan dua kabel untuk melakukan pengontrolan. Komputer akan menset
saluran Request To Send jikan akan mengirimkan data ke DCE. Jika buffer di
DCE siap menerima data, maka DCE akan membalas dengan menset saluran
Clear To Send dan komputer akan mulai mengirimkan data. Jika buffer telah
penuh, maka saluran akan direset dan komputer akan menghentikan pengiriman
data sampai saluran ini diset kembali.
Tugas MicroControl MMI Server
35
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
2.3.4 Konfigurasi Port Serial
Gambar 2.7 adalah gambar konektor port serial DB9 pada bagian belakang
CPU dan tabel 2.6 adalah konfigurasi pin dan nama sinyal konektor serial DB9.
Pada komputer IBM-PC kompatibel biasanya kita dapat menemukan dua
connector port serial DB9 yang biasa dinamai COM1 dan COM2.
Gambar 2.7. Konektor serial DB9
Tabel 2.6. Konfigurasi pin dan nama sinyal konektor serial DB9
Nomor Pin
Nama Sinyal Direction Keterangan
1 2 3 4 5 6 7 8 9
DCD RxD TxD DTR GND DSR RST CTS RI
in in
out out -
in out in in
Data Carrier Detect/Received Line Signal Detect Receive Data Transmit Data Data Terminal Ready Ground Data Set Ready Request To Send Clear To Send Ring Indicador
Keterangan mengenai fungsi saluran RS232 pada conector DB9 adalah
sebagai berikut :
1. Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke
DTE bahwa pada terminal masukan ada data masuk.
2. Receive Data, digunakan DTE menerima data dari DCE.
Tugas MicroControl MMI Server
36
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
3. Transmit Data, digunakan DTE mengirimkan data ke DCE.
4. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan
terminalnya.
5. Signal Ground, saluran ground.
6. Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah
stasiun menghendaki hubungan dengannya.
7. Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh
mengirim data.
8. Request To Send, dengan saluran ini DCE diminta mengirim data oleh DTE
9. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah
siap.
Untuk dapat menggunakan port serial perlu diketahui alamatnya. Biasanya
tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base Address COM1
biasanya dalah 1016 (3F8H) dan COM2 biasanya 760 (2F8H). Alamat tersebut
dalah yang biasa digunakan tergantung dari komputer yang digunakan. Tepatnya
bisa dilihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori
0000.0400h untuk base address COM1 dan memori 0000.0402h untuk base
address COM2.
setelah mengetahui base addressnya maka dapat ditentukanalamat register-
register yang digunakan untuk komunikasi port serial ini. Tabel 2.7 berikut ini
dalah tabel register-register tersebut beserta alamat-alamatnya.
Tugas MicroControl MMI Server
37
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Tabel 2.7 Nama register dan alamatnya
Nama Register COM1 COM2 TX Buffer RX Buffer Baud Rate Divisor Match LSB Baud Rate Divisor Match MSB Interrupt Enable Register Interrupt Identification Register Line Control Register Modem Control Register Line Status Register Modem Status Register
3F8h 3F8h 3F8h 3F9h 3F9h 3FAh 3FBh 3FCh 3FDh 3FEh
2F8h 2F8h 2F8h 2F9h 2F9h 2FAh 2FBh 2FCh 2FDh 2FEh
Keterangan mengenai fungsi register tersebut adalah sebagai berikut :
1. Tx Buffer, digunakan untuk menampung dan menyimpan data yang akan
dikirim ke port serial.
2. Rx Buffer, digunakan untuk menampung dan menyimpan data dari DCE
3. Baud Rate Divisor Match LSB, digunakan untuk menampung byte robot
rendah untuk pembagi clock pada IC UART agar didapat baud rate yang tepat
4. Baud Rate Divisor Match MSB, digunakan untuk menampung byte bobot
tinggi untuk pembagi clock pada IC UART sehingga total angka pembagi
dalah empat byte yang dapat dipilih dari 0001h sampai FFFFh. Tabel 2.8
berikut ini dalah tabel angka pembagi clock pada IC UART.
Tabel 2.8 Angka pembagi clock pada IC UART
Baud Rate (bit/detik) Angka Pembagi 300 600 1200 1800 2400 4800 9600
0180h 0C00h 0060h 0040h 0030h 0018h 000Ch
Tugas MicroControl MMI Server
38
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Register Baud Rate Divisor Match bisa diisi jira bit 7 pada register Line
Control Register diisi logika 1.
5. Interrupt Enabled Register, digunakan untuk menset interupsi apa saja yang
akan dilayani komputer. Tabel 2.9 berikut ini dalah tabel rincian bit pada
Interrupt Enabled register.
Tabel 2.9. Rincian bit pada Interrupt Enabled Register.
Nomor bit Keterangan 0 1 2
3
4,5,6, dan 7
1 : Interupsi akan diaktifkan jika menerima data 1 : Interupsi akan diaktifkan jika register Tx kosong 1 : Interupsi akan diaktifkan jika ada perubahan keadaan pada Line Status Register 1 : Interupsi akan diaktifkan jika ada perubahan keadaan pada Modem Status Register Diisi 0
6. Interrupt Identification Register, digunakan untuk menentukan urutan
prioritas interupsi. Tabel 2.10 berikut ini dalah rincian bit Interrupt
Identification Register.
Tabel 2.10 Rincian bit Interrupt Identification Register.
Nomor bit Keterangan
0 0 : Interupsi menunggu 1 : No interrupt pending
1 dan 2 00 : Prioritas tertinggi oleh Line Status Register 01 : Prioritas tertinggi oleh register Rx jika menerima data 10 : Prioritas tertinggi oleh register Tx telah kosong 11 : Prioritas tertinggi oleh Modem Status Register
3,4,5,6, dan 7 Diisi 0
7. Line Control Register, digunakan untuk menentukan jumlah bit data, jumlah
bit parity, jumlah bit stop, serta untuk menentukan apakah baud rate divisor
Tugas MicroControl MMI Server
39
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
dapat diubah atau tidak. Tabel 2.11 berikut ini dalah tabel rincian bit pada
Line Control Register.
Tabel 2.11 Rincian bit pada Line Control Register.
Nomor bit Keterangan
0 dan 1
Jumlah bit data 00 : Jumlah bit data dalah 5 01 : Jumlah bit data dalah 6 10 : Jumlah bit data dalah 7 11 : Jumlah bit data dalah 8
2
Bit Stop 0 : Jumlah bit stop adalah 1 1 : Jumlah bit stop adala 1,5 untuk 5 bit data dan 2 untuk 6
hingga 8 bit data
3 Bit Parity 0 : Tanpa Parity 1 : Dengan Parity
4 0 : Parity ganjil 1 : Parity genap 5 1 : Bit Parity ikut dikirimkan (stick parity) 6 0 : Set break control tidak diaktifkan 1 : Set break control diaktifkan
7 0 : Baud rate divisor tidak dapat diakses 1 : Baud rate divisor dapat diakses
8. Modem Control Register, digunakan untuk mengatur saluran pengatur
modem terutama saluran DTR dan saluran RST. Tabel 2.12 berikut ini dalah
tabel rincian bit pada modem Modem Control Register.
Tabel 2.12 Rincian bit pada Modem Control Register
Nomor bit Keterangan
0 Bit DTR 0 : Saluran DTR diaktifkan (aktif 0) 1 : Saluran DTR dibuat normal (tidak aktif)
1 Bit RST 0 : Saluran RST diaktifkan (aktif 0) 1 : Saluran RST dibuat normal (tidak aktif)
2 Bit OUT1, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low. Secara normal tidak digunakan.
Tugas MicroControl MMI Server
40
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
3 Bit OUT2, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low.
4 0 : Loop back internal diaktifkan 1 : Loop back internal tidak diaktifkan 5, 6, 7 Diisi 0
9. Line Status Register, digunakan untuk menampung bit-bit yang menyatakan
keadaan penerimaan atau pengiriman data dan status kesalahan operasi. Tabel
2.13 berikut ini dalah tabel rincian bit pada Line Status Register.
Tabel 2.13 Rincian bit Line Status Register.
Nomor bit Keterangan 0 1 2 3 4 5 6 7
1 : Menyatakan adanya data yang masuk pada buffer Rx 1 : Data yang masuk mengalami overrun 1 : Terjadi kesalahan pada bit parity 1 : Terjadi kesalahan framing 1 : Terjadi Break Interupsi 1 : Menyatakan Rx telah kosong 1 : Menyatakan bahwa Trasmitter Shift Register telah kosong Diisi 0
10. Modem Status Register, digunakan untuk menampung bit-bit yang
menyatakan status dari saluran hubungan dengan modem. Tabel 2.14 berikut
ini adalah tabel rincian bit pada Modem Status Register.
Tabel 2.14 Rincian bit Modem Status Register.
Nomor bit Keterangan
0 1 : Menyatakan adanya perubahan keadaan di saluran Clear To Send.
1 1 : Menyatakan adanya perubahan keadaan di saluran Data Set Ready
3 1 : Menyatakan adanya perubahan keadaan di saluran Ring Indicator dari low ke high
4 1 : Menyatakan saluran Clear To Send (CTS) sudah dalam keadaan aktif 5 1 : Menyatakan saluran Data Set Ready (DSR) sudah dalam keadaan aktif 6 1 : Menyatakan bahwa saluran Ring Indicator sudah dalam
Tugas MicroControl MMI Server
41
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
keadaan aktif
7 1 : Menyatakan bahwa saluran Receiver Line Signal Detect (DCD) sudah dalam keadaan aktif
2.3.5 Alasan Penggunaan Port Serial
Dibandingkan dengan menggunakan port paralel, penggunaan port serial
terkesan lebih rumit. Berikut ini keuntungan-keuntungan penggunaan port serial
dibandingkan dengan port paralel :
1. Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak
akan menjadi masalah besar dari pada kabel paralel. Port serial
mentransmisikan 1 pada level tegangan -3V sampai -25V dan 0 pada
level tegangan +3V sampai dengan +25V, sedangkan port paralel
mentransmisikan 0 pada level tegangan 0V dan 1 pada level tegangan
+5V.
2. Dibutuhkan jumlah kabel yang lebih sedikit, bisa hanya menggunakan tiga
kabel, yaitu saluran Transmit Data, saluran Receive Data, dan saluran
Ground (konfigurasi Null Modem).
3. Saat ini penggunaan mikrokontroller semakin populer. Kebanyakan
mikrokontroller sudah dilengkapi dengan SCI (Serial Communication
Interface) yang sudah digunakan untuk komunikasi dengan port serial
komputer.
2.3.6 Pengaksesan Port Serial Pada Borland Delphi
Borland Delphi menyediakan komponen khusus untuk mengakses port serial
komputer yaitu komponen TComport. TComport menyediakan fasilitas-fasilitas
Tugas MicroControl MMI Server
42
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
untuk mengirim dan menerima data melalui port serial. Properti-properti
komponen TComport yang sering digunakan antara lain:
Port : Menentukan port dari Com yang digunakan apakah COM1, COM2,
COM3 dan seterusnya
BaudRate : Menentukan Nilai Baud Rate yang digunakan
DataBits : Jumlah Bit data yang digunakan
StopBits : Jumlah Bit Stop yang digunakan
Parity : Menentukan paritas yang digunakan
Connected : Jika bernilai true, maka koneksi ke COM aktif dan jika
bernilai false maka koneksi ke COM tidak aktif.
2.3.7 Borland Delphi
Borland Delphi merupakan suatu bahasa pemrograman yang memberikan
berbagai fasilitas pembuatan aplikasi visual. Untuk mengetahui pemrograman
visual terutama Borland Delphi, bagian ini membahas komponen-komponen pada
Delphi, bagaimana cara menjalankan program Borland Delphi dan Mengenal IDE
Delphi.
2.3.8 Menjalankan Program Borland Delphi
Langkah pertama adalah:
1. Mengklik tombol Start yang terletak pada bagian Taskbar 2. Memilih menu Programs
3. Memilih Borland Delphi 7, kemudian klik Delphi 7 4. Sesaat kemudian akan muncul tampilan lembar kerja Borland Delphi
seperti yang terlihat pada gambar 2.8.
Tugas MicroControl MMI Server
43
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 2.8. Lembar kerja Borland Delphi
2.3.9 Mengenal IDE Delphi
IDE (Integrated Development Environment) atau lingkungan pengembangan
terpadu pada program Delphi terbagi menjadi delapan bagian utama, yaitu: Main
Window, ToolBar, Component Palette, Form Designer, Code Editor, Object
Inspector, Code Explorer, dan Object TreeView .
Main Window
Jendela utama ini adalah bagian dari IDE yang mempunyai fungsi yang
sama dengan semua fungsi utama dari program aplikasi Windows lainnya. Jendela
utama Delphi terbagi menjadi tiga bagian, yaitu: Main Menu, Toolbar dan
Componen Pallete
Tollbar
Delphi memiliki beberapa toolbar yang masing-masing memiliki perbedaan
fungsi dan setiap tombol pada bagian toolbar berfungsi sebagai pengganti suatu
menu perintah yang sering digunakan. Toolbar terletak pada bagian bawah baris
menu. Pada kondisi default Delphi memiliki enam bagain toolbar, antara lain:
Standart, View, Debug, Desktops, Custom dan Componen Palette. Tombol-
Tugas MicroControl MMI Server
44
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
tombol yang terletak pada bagian toolbar dapat ditambah atau dikurangi sesuai
kebutuhan.
Component Pallete
Component Palette berisi kumpulan ikon yang melambangkan komponen-
komponen yang terdapat pada VCL (Visual Component Library). Pada Componen
Palette Anda akan menemukan beberapa page control, seperti Standart,
Additional, Win32, System, Data Access dan lain-lain seperti tampak pada
gambar 2.9.
Gambar 2.9 Component Palette
Ikon tombol Pointer terdapat di setiap page control. Tombol ini dipakai untuk
menekan atau memilih posisi. untuk memilih sebuah item dari sebuah page
control, tombol pointer ini akan berada dalam keadaan tidak aktif. Hal ini berarti
Anda akan meletakkan komponen pada form, cukup dengan mengklik pada form.
Form Designer
Merupakan suatu objek yang dapat dipakai sebagai tempat untuk merancang
program aplikasi. Form berbentuk sebuah meja kerja yang dapat diisi dengan
komponen-komponen yang diambil dari Component Palette. Pada saat memulai
Delphi, Delphi akan memberikan sebuah form kosong yang disebut form1, seperti
gambar 2.10 di bawah ini.
Tugas MicroControl MMI Server
45
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 2.10 Lembar kerja Form
Sebuah form mengandung unit yang berfungsi untuk mengendalikan form
dan dapat mengendalikan komponen-komponen yang terletak dalam form dengan
menggunakan Object Inspector dan Code Editor.
Code Editor
Code Editor merupakan tempat untuk menuliskan kode program. Pada
bagian ini dapat dituliskan pernyataan-pernyataan dalam Object Pascal. Satu
diantara keuntungan bagi pengguna Delphi adalah tidak perlu menuliskan kode-
kode sumber, karena Delphi telah menyediakan kerangka penulisan sebuah
program seperti pada gambar 2.11 di bawah ini.
Gambar 2.11 Lembar kerja Code Editor
Tugas MicroControl MMI Server
46
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Object Inspector
Digunakan untuk mengubah properti atau karakteristik dari sebuah
komponen. Object Inspector terdiri dari dua tab, yaitu Properties dan Events
seperti gambar 2.12 di bawah ini.
Gambar 2.12 Lembar kerja Object Inspector
Code Explorer
Code Explorer merupakan lembar kerja baru yang terdapat di dalam Delphi7
yang tidak ditemukan pada versi-versi sebelumnya. Code Explorer digunakan
untuk memudahkan pemakai berpindah antar file unit yang terdapat di dalam
jendela Code Editor. Untuk menutup Code Explorer, klik tanda silang yang
terdapat di sudut kanan atas, dan untuk membukanya kembali pilih menu View
Code Explorer dari main menu atau klik kanan dalam jendela Code Editor
kemudian pilih View Explorer.
Object TreeView
Object TreeView menampilkan diagram pohon dari komponen-komponen
yang bersifat visual maupun nonvisual yang telah terdapat dalam form, data
module, atau frame. Object TreeView juga menampilkan hubungan logika antar
Tugas MicroControl MMI Server
47
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
komponen. Apabila mengklik kanan salah satu item yang terdapat di dalam
diagram pohon, dapat dilihat konteks menu komponen versi sebelumnya. Untuk
mengakses menu secara penuh, klik kanan pada komponen yang sama dalam
form, data module, atau frame.
2.4 Operational Amplifier
Operasional Amplifier (Op-Amp) adalah piranti elektronik yang bisa
digunakan sebagai penguat arus ataupun penguat tegangan dengan sedikit
tambahan komponen ekstern.
2.4.1 Penguat Non Inverting
Penguat Non Inverting mempunyai isyarat keluaran yang tidak terbalik dari
masukannya. Gambar 2.13 berikut dalah konfigurasi dasar dari penguat Non
Inverting.
Gambar 2.13 Konfigurasi dasar Penguat Non Inverting
Besarnya Vout ditentukan oleh componen ekstenal R1 dan R2 dengan persamaan :
xVinRRVout
+=
211
2.4.2 Penguat Inverting
Penguat Inverting mempunyai isyarat keluaran yang terbalik dari
masukannya. Gambar 2.14 berikut dalah konfigurasi dasar dari penguat
Inverting.
R1 R2
VoVin +
-
Tugas MicroControl MMI Server
48
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 2.14 Konfigurasi dasar Penguat Non Inverting
Besarnya Vout ditentukan oleh componen ekstenal R1 dan R2 dengan persamaan :
xVinRRVout
21
=
2.4.3 Penguat Penjumlah
Penguat Penjumlah dalah penguat yang mempunyai beberapa masukan dan
satu keluaaran. Konfigurasi penguat penjumlah terlihat seperti pada gambar 2.15
berikut.
Gambar 2.15. Konfigurasi Dasar Penguat Penjumlah
Besarnya Vout ditentukan oleh komponen ekstenal R1, R2, R3, ..Rn dengan
persamaan :
+++= xVn
RnR
xVRR
xVRRVout 1..........2
311
21
R1
R2
VoVin -
+
R1
R2
VoV1
-
+
Vn
R3
Rn
V2
Tugas MicroControl MMI Server
49
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
2.5 Servo Motor DC
Servo Motor DC type ED-4400 adalah servo system yang mempunyai
berberapa modul. Tabel 2.15 dan Gambar 2.16 adalah tabel deskripsi fungsi dan
gambar skema rangkaian dari tiap modul tersebut.
Tabel 2.15. Deskripsi fungsi tiap modul ED-4400 servo system
Modul Deskripsi U-151 U-152 U-153 U-154 U-155 U-156 U-157 U-158 U-159 U-161
U-162 U-163
Dual Attenuator (0, 9/10 ....1/10 attenuations) Summing Amplifier (gain : 0 dB, EXT, NET) Pre-amplifier (gain : 20 dB) Motor driver amplifier (10 watts) Tacho Amp Unit DC power suplly ( 15V 0.2 and motor power) Potensiometer (reference) (1K or 10K 5W) Potensiometer (Motor Coupling) (1K or 10K 5W) Tachometer (FS 4000 RPM) Servo motor :
- Motor : 12V, 4.5W - Tacho Generator : Aprox 3Vp-p / 4000RPM
Function Generator (0.1 1Hz, 1Hz-10Hz and Ramp output) Magnet Brake :
- Air gap : 4mm, 10 step variable - Input Power : AC 220V, 50 60Hz
Gambar 2.16. Modul Sistem Servo Motor ED-4400
-15V COM +15V
-+ -
U-153
-
+
-15V COM +15V
U-154
G - G
+
-15V COM +15V
U-155
T - O M - + P G
U-159
IN G ~ - +
Tacho Motor GEAR
U-161
To Motor Drive Amp -15V COM +5V
-O/L +O/L -O/L +O/L
SERVO DC POWER SUPPLY
- DC AMPERE + U-156 ON
OFF
Tugas MicroControl MMI Server
50
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
BAB III
PERANCANGAN DAN ANALISIS
Man-Machine Interface untuk Sistem Servo Motor DC terdiri dari dua
bagian yaitu perangkat keras dan perangkat lunak. Perangkat kerasnya terdiri dari
satu set sistem servo motor DC, Microprocessor Trainer SK-8051, rangkaian
Digital to Analog Converter, rangkaian penyesuai level tegangan, dan beberapa
PC yang berfungsi sebagai server MMI dan Client MMI sedangkan perangkat
lunaknya yaitu software Microprocessor Trainer SK-8051, software server dan
Client MMI yang dibuat dalam bahasa pemrograman Borland Delphi Enterprise
Edition. Gambar 3.1 berikut ini adalah blok diagram Man-Machine Interface
untuk Sistem Servo Motor DC.
Gambar 3.1. Blok Diagram Man-Machine Interface untuk Sistem Servo Motor
SISTEM SERVO MOTOR DC
PENYESUAI LEVEL TEGANGAN
PENYESUAI LEVEL TEGANGAN
SERVER MMI (PC)
CLIENT MMI (PC)
CLIENT MMI (PC)
Jaringan komputer
RS232
DIGITAL TO ANALOG
CONVERTER
MICROPROCESSOR TRAINER SK - 8051
Tugas MicroControl MMI Server
51
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Berikut ini penjelasan, rancangan, dan analisis dari masing-masing blok pada
gambar 3.1 di atas.
3.1 Perangkat Keras
A. Modul Mikroprosesor Trainer SK-8051
Modul Mikroprosesor Trainer SK-8051 adalah modul dengan 1 set
rangkaian yang di dalamnya sudah terdapat beberapa komponen pendukung yang
membentuk One Board Computer System Training Kit dengan MPU 8051
system. Namun tidak semua komponen tersebut dipakai dalam praktikum MMI
Server untuk Servo Motor DC ini. Komponen yang digunakan dalam Modul SK-
8051 hanya Mikrocontroller AT89C51 dan ADC0808. ADC0808 digunakan
untuk mengkonversi isyarat analog keluaran Servo Motor DC menjadi data digital
yang selanjutnya oleh mikrocontroller 89C51 mengirimkan data tersebut ke
komputer server. ADC0808 seperti dijelaskan pada bab 2 adalah ADC dengan 8
kanal input termultipleks. Pada praktikum ini digunakan kanal 2 karena kanal
lainnya telah digunakan untuk fungsi internal dalam modul SK-8051. Pada Modul
SK-8051 terdapat keluaran 8 bit yang terhubung langsung dengan port1 (P1)
mikrokontroller. Keluaran 8 bit ini digunakan untuk input DAC0808 yang dibuat
khusus untuk mengendalikan servo motor DC dalam modul ED-4400 servo
system. Untuk berkomunikasi dengan Komputer Server Modul SK-8051
dilengkapi dengan fasilitas komunikasi serial RS232.
B. Rangkaian Digital To Analog Converter
Rangkaian Digital To Analog Converter berfungsi untuk mengkonversi data
digital keluaran Mikrocontoller menjadi tegangan analog yang akan diinputkan ke
Tugas MicroControl MMI Server
52
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
rangkaian servo motor DC. Dalam rancangan ini digunakan DAC0808. Gambar
3.2 adalah gambar rangkaian DAC0808 sebagai berikut :
Gambar 3.2. Gambar Rangkaian DAC 0808
Dengan tegangan +15V dan hambatan 3Kohm pada penyemat 14,
didapatkan arus referensi sebesar 5mA. Pada rangkaian OP-Amp 741 diberi
hambatan 1Kohm, sehingga tegangan keluaran DAC sebesar +5V.
Keluaran P1 dari mikrokontroller AT89C51 yang tersedia pada modul SK-
8051 dihubungkan dengan masukan D0 D7 DAC 0808. Keluaran rangkaian
DAC0808 pada gambar 3.2 di atas berlevel tegangan 0V sampai +5V. Sedangkan
masukan servo motor menurut pengukuran yang telah dilakukan berlevel
tegangan -1,1V sampai +1,1V untuk kecepatan 0 sampai 4000 rpm dengan
polaritas negatif dan positif. Oleh karena itu, keluaran rangkaian DAC0808 tidak
bisa dihubungkan secara langsung dengan masukan rangkaian servo motor DC.
Untuk itu diperlukan rangkaian penggeser level dan penyesuai tegangan keluaran
DAC0808.
5 13 14 6 15 7 2 8 9 10 4 11 11 12 3
DAC 0808
Port P1 AT89C51 (SK-8051)
+15V 3K
1K 3K
Vout (0V-+5V) -
741
+ 1uF
D7 D6 D5 D4 D3 D2 D1 D0
Tugas MicroControl MMI Server
53
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
C. Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran DAC0808
Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran DAC0808
dibuat dengan menggunakan Op-Amp dengan memperhatikan kondisi keluaran
DAC0808 dan masukan Rangkaian Servo Motor DC. Tugas utama rangkaian ini
adalah menggeser setengah level tegangan positif dari 0V sampai +5V ke level
tegangan negatif sekaligus menyesuaikan level tegangan tersebut agar masuk
dalam range -1,1V sampai +1,1V yang diinginkan oleh masukan rangkaian servo
motor DC. Untuk merealisasikannya dibuat grafik linier keluaran DAC (sebagai
masukan rangkaian) dan masukan rangkaian servo motor DC (sebagai keluaran
rangkaian) seperti gambar 3.3 berikut ini :
Gambar 3.3. Grafik Masukan dan Keluaran Rangkaian Penggeser dan Penyesuai level Tegangan DAC0808
Persamaan matematis dari grafik tersebut adalah :
1,152,2
= VinVout ................................. pers. 3.1
Dari persamaan tersebut dibuat rangkaian dengan menggunakan Op-Amp
seperti terlihat dalam gambar 3.4 berikut.
+1,1V
0V
-1,1V
+2,5 +5V
Vout
Vin
Tugas MicroControl MMI Server
54
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 3.4. Rangkaian Penggeser Level dan penyesuai Tegangan DAC0808
Keluaran rangkaian tersebut membalik (inverting). Untuk mengembalikan
ke kondisi semula, keluarannya diinputkan ke rangkaian inverting dengan
penguatan 1, sehingga rangkaian lengkap penggeser level dan penyesuai tegangan
keluaran DAC adalah seperti terlihat dalam gambar 3.5 berikut ini.
Gambar 3.5. Rangkaian Lengkap Penggeser Level dan penyesuai Tegangan DAC
D. Sistem Servo Motor DC
Sistem Servo Motor DC type ED4400 seperti yang dijelaskan pada bab II
mempunyai beberapa modul. Pada percobaan ini, tidak semua modul tersebut
digunakan. Hal ini disesuaikan dengan kebutuhan pengendalian kecepatan putaran
motor. Modul-modul yang digunakan adalah : U-153 (Pre-amplifier), U-154
(Motor Driver Amplifier), U-156 (DC Power Supply), U-155 (Tacho Amplifier
unit), U-161 (Servo Motor), dan U-159 (Tacho Meter). Gambar 3.6 adalah
gambar rangkaian sistem servo motor yang digunakan untuk percobaan ini
2,2K
5K
VouVin -
+ +15V
30K
2,2K
5K
Vin -
+ +15V
1K
1K
Vo-
+
30K
Tugas MicroControl MMI Server
55
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 3.6. Rangkaian sistem servo motor DC
Keluaran rangkaian Servo Motor DC di atas menurut pengukuran yang telah
dilakukan berlevel tegangan -10,6V sampai +10,6V dengan polaritas putar kiri
dan putar kanan. Sedangkan masukan ADC0808 pada modul SK-8051 berlevel
tegangan 0V sampai +5V. Oleh karena itu, keluaran rangkaian Servo Motor DC
ini tidak bisa dihubungkan secara langsung dengan masukan ADC0808. Untuk itu
diperlukan rangkaian penggeser dan penyesuai level tegangan keluaran Servo
Motor DC.
E. Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran Servo
Motor DC
Rangkaian Penggeser Level dan Penyesuai Tegangan Keluaran Servo Motor
DC dibuat dengan menggunakan Op-Amp dengan memperhatikan kondisi
keluaran Servo Motor DC dan masukan rangkaian ADC0808 pada modul SK-
U-159
IN G
To Motor Drive Amp -15V COM +15V
-O/L +O/L -O/L +O/L
SERVO DC POWER SUPPLY
- DC AMPERE + U-156 ON
OFF
-15V COM +15V
-+ -
U-153
-
+
-15V COM +15V
U-154
G - G
+
~ - +
Tacho Motor GEAR
U-161
Ke Rangkaian Penggesel Level dan Penyesuai Tegangan Servo Motor DC
DariRangkaian Penggesel Level dan Penyesuai Tegangan DAC0808
-15V COM +15V
U-155
T - O M - + P G
Tugas MicroControl MMI Server
56
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
8051. Tugas utama rangkaian ini adalah menggeser setengah level tegangan
negatif keluaran servo motor DC dari -10,6V sampai +10,6V ke level tegangan
positif sekaligus menyesuaikan level tegangan tersebut agar masuk dalam range
0V sampai +5V seperti yang diinginkan oleh masukan rangkaian ADC0808.
Untuk merealisasikannya dibuat grafik linier keluaran Servo Motor DC (sebagai
masukan rangkaian) dan masukan rangkaian ADC0808 (sebagai keluaran
rangkaian) seperti gambar 3.7 berikut ini :
Gambar 3.7. Grafik Masukan dan Keluaran Rangkaian Penggeser Level dan
Penyesuai Tegangan Servo Motor DC
Persamaan matematis dari grafik tersebut adalah :
5,22,21
5+= VinVout ......................................... per. 3.2
Dari persamaan tersebut dibuat rangkaian dengan menggunakan Op-Amp
seperti terlihat dalam gambar 3.8 berikut.
Gambar 3.8. Rangkaian Penggeser Level dan penyesuai Tegangan DAC
+5V
2,5V
-10,6V 0V +10,6V
Vout
Vin
5K
50K
Vout Vin -
+ +15V
30K
Tugas MicroControl MMI Server
57
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Keluaran rangkaian tersebut membalik (inverting). Untuk mengembalikan
ke kondisi semula, keluarannya diinputkan ke rangkaian inverting dengan
penguatan 1, sehingga rangkaian lengkap penggeser level dan penyesuai tegangan
keluaran Servo Motor DC adalah seperti terlihat dalam gambar 3.9 berikut ini.
Gambar 3.9. Rangkaian Lengkap Penggeser Level dan penyesuai Tegangan Servo
Motor DC
F. Server/Client MMI
MMI merupakan sistem interface yang digunakan oleh pengguna (operator)
dalam melakukan monitoring dan pengendalian sistem. MMI dapat berupa Sistem
komputer yang terdiri komputer server, komputer-komputer klien yang saling
terkoneksi dalam suatu jaringan.
Dalam praktikum ini dibangun sistem MMI berupa :
- 1 buah komputer server
- 2 buah laptop sebagai klien
- Perangkat jaringan (sistem wireless) : 1 buah Access Point & 1 buah USB
Wireless Client untuk komputer server & 2 buah builtin wireless client
pada laptop klien
- Perangkat Lunak Server MMI dan Client MMI
5K
50K
Vin -
+ +15V
1K
1K
Vout -
+
30K
Tugas MicroControl MMI Server
58
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Gambar 3.10. Konfigurasi MMI pada Percobaan Praktikum
Langkah-langkah dilakukan adalah sebagai berikut :
- Melakukan setup wireless pada komputer server dan laptop klien dan access
point
- Melakukan konfigurasi protokol TCP/IP dengan penentuan alamat IP bagi
masing-masing komputer dan perangkat jaringan.
- Melakukan tes koneksi jaringan
- Uji coba fungsi software MMI server dan klien.
Setting Protocol TCP/IP
Tugas MicroControl MMI Server
59
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Setting WLAN IP komputer server Setting WLAN IP komputer client1
Setting WLAN IP komputer client2 Setting WLAN IP Access Point
Tugas MicroControl MMI Server
60
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
3.2 Perangkat Lunak
Agar dapat dapat bekerja menjadi sebuah Man-Machine Interface untuk
Sistem Servo Motor DC, perangkat keras seperti yang dijelaskan di atas harus
didukung oleh perangkat lunak (software). Dalam hal ini ada tiga bagian
perangkat lunak yang dibuat yaitu perangkat lunak pada mikrokontroller (modul
SK-8051), perangkat lunak pada MMI-Server, dan perangkat lunak pada Client.
Ketiga perangkat lunak tersebut mempunyai cara kerja yang berbeda.
3.2.1 Mikrokontroller (Modul SK-8051)
Untuk dapat menerima dan mengirim data ke server, mikrokontroller pada
modul SK-8051 harus diprogram terlebih dahulu. Data yang dikirim/diterima dari
server berupa data biner 8 bit dalam format serial melalui port serial RS232.
Program yang dibuat akan mengikuti alur seperti dalam flowchart berikut :
Gambar 3.11. Flowchart Program mikrokontroller
Start
Inisialisasi port serial Uc
Data siap diterima ?
Y
T
Data =Buffer Port1 = Data
Baca Data ADC
Data siap dikirim ?
Y
T
SBuff = Data
Selesai
Tugas MicroControl MMI Server
61
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Berikut ini linsting program untuk mikrokontroller SK-8051
ORG 8000H MOV SP,#40H SJMP START L563 EQU 0FF38H CTC_0 EQU 0FF40H CTC_1 EQU 0FF41H CTC_2 EQU 0FF42H CTC_CWR EQU 0FF43H ADC_0 EQU 0FF48H ADC_1 EQU 0FF49H ADC_2 EQU 0FF4AH
START: ACALL INIT UTAMA: ACALL RX ACALL KONV ACALL TX SJMP UTAMA
INIT: MOV TMOD,#20H ; timer 1 mode 2(8-bit,isi-ulang) MOV TH1,#0FDH ; 9600 baud rate MOV SCON,#50H ; Mode serial: 8-bit UART SETB TR1 ; Jalankan Timer 1 RET
RX: JNB RI,$ ; tunggu data dari serial MOV A,SBUF ; pindahkan data serial ke ACC MOV P1,A ; data ACC ke Port1 CLR RI ; clear flag RI RET
TX: MOV SBUF,A ; memindahkan isi akumulator ke buffer JNB TI,$ ; tunggu sampai data terkirim semua
CLR TI ; hapus TI RET
KONV: MOV DPTR,#CTC_CWR MOV A,#01110110B MOVX @DPTR,A MOV DPTR,#CTC_1
MOV A,#10 MOVX @DPTR,A MOV A,#0 MOVX @DPTR,A CALL T_adc MOV DPTR,#ADC_1 MOVX @DPTR,A MOV B,#100 DJNZ B,$
Tugas MicroControl MMI Server
62
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
MOVX A,@DPTR MOV DPTR,#L563 MOVX @DPTR,A
RET
T_adc: PUSH 1EH PUSH 1FH MOV 1EH,#100
T_a1: MOV 1FH,#0 DJNZ 1FH,$ DJNZ 1EH,T_a1 POP 1FH POP 1EH RET
END
3.2.2 MMI-Server
Man-Machine Interface Server adalah software yang dirancang untuk
mengatur koneksi Client dan memberikan layanan tranfer data dari client ke
server untuk mengatur kecepatan servo motor.
Gambar tampilan program
Gambar 3.12. Tampilan Software MMI-Server
Tugas MicroControl MMI Server
63
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Linsting Program
unit UnitMMI;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ScktComp, jpeg, Buttons, CPort;
const WM_REFRESHCLIENT = WM_USER + 100;
type TFormServer = class(TForm) Timer1: TTimer; ServerMMI_1: TServerSocket; ServerMMI_2: TServerSocket; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label10: TLabel; Label11: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; CB1: TCheckBox; CB2: TCheckBox; Bevel1: TBevel; Panel1: TPanel; Panel2: TPanel; Bevel2: TBevel; Label2: TLabel; Image1: TImage; SettingPort: TSpeedButton; OpenPort: TSpeedButton; Port: TComPort; TutupProgram: TSpeedButton; Bevel3: TBevel; Label5: TLabel; procedure WMNCHitTest(var msg : TWMNCHitTest); message WM_NCHitTest; procedure ServerMMI_1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
Tugas MicroControl MMI Server
64
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
procedure ServerMMI_1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerMMI_1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure CB1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure ServerMMI_2ClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerMMI_2ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); procedure ServerMMI_2ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure CB2Click(Sender: TObject); procedure SettingPortClick(Sender: TObject); procedure OpenPortClick(Sender: TObject); procedure TutupProgramClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var FormServer: TFormServer; data_terima, data_kirim : byte; selisih : integer;
implementation
procedure TFormServer.WMNCHitTest(var msg : TWMNCHitTest); begin inherited; if (msg.Result = htClient ) then if (msg.YPos < Top + 20)then msg.Result:=htCaption; end;
{$R *.dfm}
procedure TFormServer.SettingPortClick(Sender: TObject); begin Port.ShowSetupDialog; end;
procedure TFormServer.OpenPortClick(Sender: TObject); begin if Port.Connected then Port.Close
Tugas MicroControl MMI Server
65
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
else Port.Open; end;
procedure TFormServer.Timer1Timer(Sender: TObject); var a : byte; begin a:=data_kirim+selisih; Port.Write(a,1); Port.Read(data_terima,1); selisih:=data_kirim-data_terima; end;
procedure TFormServer.ServerMMI_1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Label15.caption:='Connected : '+Socket.RemoteHost+'('+Socket.RemoteAddress+')'; PostMessage(Handle,WM_REFRESHCLIENT,0,0); CB1.Checked:=false; CB1.Enabled:=true; end;
procedure TFormServer.ServerMMI_1ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Label10.Caption:='-'; Label11.Caption:='-'; Label5.Caption:='-'; Label15.caption:='Disconnected : '+Socket.RemoteHost+'('+Socket.RemoteAddress+')'; PostMessage(Handle,WM_REFRESHCLIENT,0,0); CB1.Checked:=false; CB1.Enabled:=false; end;
procedure TFormServer.ServerMMI_1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var DataClient1:string[5]; Pol :string[1]; Kec :string[4]; begin DataClient1:=Socket.ReceiveText; pol:=copy(DataClient1,1,1); Kec:=copy(DataClient1,2,4); if pol='0' then begin
Tugas MicroControl MMI Server
66
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Label10.Caption:='Putar Kanan'; Label11.Caption:=kec+' rpm'; data_kirim:=round(128*StrToInt(kec)/4000) + 127; Label5.Caption:=IntToStr(data_kirim)+' desimal'; end else if pol='1' then begin Label10.Caption:='Putar Kiri'; Label11.Caption:=kec+' rpm'; data_kirim:=round(127-127*StrToInt(kec)/4000); Label5.Caption:=IntToStr(data_kirim)+' desimal'; end end;
procedure TFormServer.CB1Click(Sender: TObject); begin selisih:=0; if CB1.Checked=true then begin ServerMMI_1.Socket.Connections[0].SendText('YA'); CB2.Checked:=false; Timer1.Enabled:=true; end; if CB1.Checked=false then begin ServerMMI_1.Socket.Connections[0].SendText('TIDAK'); Label10.Caption:='-'; Label11.Caption:='-'; Label5.Caption:='-'; if CB2.Checked=false then timer1.Enabled:=false; end; end;
procedure TFormServer.ServerMMI_2ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Label16.caption:='Connected : '+Socket.RemoteHost+'('+Socket.RemoteAddress+')'; PostMessage(Handle,WM_REFRESHCLIENT,0,0); CB2.Checked:=false; CB2.Enabled:=true; end;
procedure TFormServer.ServerMMI_2ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin
Tugas MicroControl MMI Server
67
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Label10.Caption:='-'; Label11.Caption:='-'; Label5.Caption:='-'; Label16.caption:='Disconnected : '+Socket.RemoteHost+'('+Socket.RemoteAddress+')'; PostMessage(Handle,WM_REFRESHCLIENT,0,0); CB2.Checked:=false; CB2.Enabled:=false; end;
procedure TFormServer.ServerMMI_2ClientRead(Sender: TObject; Socket: TCustomWinSocket); var DataClient2:string[5]; Pol :string[1]; Kec :string[4]; begin DataClient2:=Socket.ReceiveText; pol:=copy(DataClient2,1,1); Kec:=copy(DataClient2,2,4); if pol='0' then begin Label10.Caption:='Putar Kanan'; Label11.Caption:=kec+' rpm'; data_kirim:=round(128*StrToInt(kec)/4000) + 127; Label5.Caption:=IntToStr(data_kirim)+' desimal'; end else if pol='1' then begin Label10.Caption:='Putar Kiri'; Label11.Caption:=kec+' rpm'; data_kirim:=round(127-127*StrToInt(kec)/4000); Label5.Caption:=IntToStr(data_kirim)+' desimal'; end; end;
procedure TFormServer.CB2Click(Sender: TObject); begin selisih:=0; if CB2.Checked=true then begin ServerMMI_2.Socket.Connections[0].SendText('YA'); CB1.Checked:=false; Timer1.Enabled:=true; end; if CB2.Checked=false then begin
Tugas MicroControl MMI Server
68
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
ServerMMI_2.Socket.Connections[0].SendText('TIDAK'); Label10.Caption:='-'; Label11.Caption:='-'; Label5.Caption:='-'; if CB1.Checked=false then timer1.Enabled:=false; end; end;
procedure TFormServer.TutupProgramClick(Sender: TObject); var stop : byte; begin stop:=127; port.Write(stop,1); Close; end;
end.
3.2.3 Client 2
Gambar tampilan program
Gambar 3.13. Tampilan Software MMI-Client1
Tugas MicroControl MMI Server
69
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Linsting Program
unit UnitClientMMI_1; interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ScktComp, Buttons, jpeg, Mask;
type TFormClient = class(TForm) ClientMMI: TClientSocket; Label2: TLabel; Image1: TImage; Panel1: TPanel; Label3: TLabel; Label7: TLabel; Polaritas: TLabel; Label4: TLabel; Label8: TLabel; Label5: TLabel; Label6: TLabel; SB: TScrollBar; Label1: TLabel; Label9: TLabel; InIP: TEdit; Koneksi: TCheckBox; Label10: TLabel; SpeedButton1: TSpeedButton; OK: TSpeedButton; procedure WMNCHitTest(var msg : TWMNCHitTest); message WM_NCHitTest; procedure PolaritasClick(Sender: TObject); procedure KoneksiClick(Sender: TObject); procedure ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket); procedure InIPChange(Sender: TObject); procedure SBChange(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure OKClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var
Tugas MicroControl MMI Server
70
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
FormClient: TFormClient; data_terima, data_kirim : byte; pol:string[1]; kec:string[4];
implementation
procedure TFormClient.WMNCHitTest(var msg : TWMNCHitTest); begin inherited; if (msg.Result = htClient ) then if (msg.YPos < Top + 20)then msg.Result:=htCaption; end;
{$R *.dfm}
procedure TFormClient.PolaritasClick(Sender: TObject); begin if polaritas.Caption='Putar Kanan' then Polaritas.Caption:='Putar Kiri' else Polaritas.Caption:='Putar Kanan'; SBChange(sender); OKClick(Sender); end;
procedure TFormClient.KoneksiClick(Sender: TObject); begin if not ClientMMI.Active then begin ClientMMI.Address:=InIP.Text; end; ClientMMI.Active:=Koneksi.Checked; if koneksi.Checked=false then begin Panel1.Enabled:=false; Label2.Visible:=false; end; end;
procedure TFormClient.ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket); var status:string[5]; begin status:=ClientMMI.Socket.ReceiveText; if status='YA' then begin Label2.Visible:=true;
Tugas MicroControl MMI Server
71
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Label2.Caption:='Status : Client diperbolehkan mengirim data'; Panel1.Enabled:=true; SBChange(sender); end; if status='TIDAK' then begin Label2.Caption:='Status : Client tidak diperbolehkan mengirim data'; Panel1.Enabled:=false; end; end;
procedure TFormClient.InIPChange(Sender: TObject); begin if InIP.Text='' then Koneksi.Enabled:=false else Koneksi.Enabled:=true; end;
procedure TFormClient.SBChange(Sender: TObject);
begin Label1.Caption:=IntToStr(SB.Position); kec:=Label1.Caption; if Polaritas.Caption='Putar Kanan' then pol:='0' else if Polaritas.Caption='Putar Kiri' then pol:='1'; end;
procedure TFormClient.SpeedButton1Click(Sender: TObject); begin Close; end;
procedure TFormClient.OKClick(Sender: TObject); begin ClientMMI.Socket.SendText(pol+kec); end;
end.
Tugas MicroControl MMI Server
72
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
3.2.4 Client 2
Gambar tampilan program
Gambar 3.14. Tampilan Software MMI-Client2
Linsting Program
unit UnitClientMMI_2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ScktComp, Buttons, jpeg, Mask;
type TFormClient = class(TForm) ClientMMI: TClientSocket; Label2: TLabel; Image1: TImage; Panel1: TPanel; Label3: TLabel; Label7: TLabel; Polaritas: TLabel; Label4: TLabel; Label8: TLabel;
Tugas MicroControl MMI Server
73
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
Label5: TLabel; Label6: TLabel; SB: TScrollBar; Label1: TLabel; Label9: TLabel; InIP: TEdit; Koneksi: TCheckBox; Label10: TLabel; SpeedButton1: TSpeedButton; OK: TSpeedButton; procedure WMNCHitTest(var msg : TWMNCHitTest); message WM_NCHitTest; procedure PolaritasClick(Sender: TObject); procedure KoneksiClick(Sender: TObject); procedure ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket); procedure InIPChange(Sender: TObject); procedure SBChange(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure OKClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var FormClient: TFormClient; data_terima, data_kirim : byte; pol:string[1]; kec:string[4];
implementation
procedure TFormClient.WMNCHitTest(var msg : TWMNCHitTest); begin inherited; if (msg.Result = htClient ) then if (msg.YPos < Top + 20)then msg.Result:=htCaption; end;
{$R *.dfm}
procedure TFormClient.PolaritasClick(Sender: TObject); begin if polaritas.Caption='Putar Kanan' then Polaritas.Caption:='Putar Kiri' else Polaritas.Caption:='Putar Kanan';
Tugas MicroControl MMI Server
74
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
SBChange(sender); OKClick(Sender); end; procedure TFormClient.KoneksiClick(Sender: TObject); begin if not ClientMMI.Active then begin ClientMMI.Address:=InIP.Text; end; ClientMMI.Active:=Koneksi.Checked; if koneksi.Checked=false then begin Panel1.Enabled:=false; Label2.Visible:=false; end; end;
procedure TFormClient.ClientMMIRead(Sender: TObject; Socket: TCustomWinSocket); var status:string[5]; begin status:=ClientMMI.Socket.ReceiveText; if status='YA' then begin Label2.Visible:=true; Label2.Caption:='Status : Client diperbolehkan mengirim data'; Panel1.Enabled:=true; SBChange(sender); end; if status='TIDAK' then begin Label2.Caption:='Status : Client tidak diperbolehkan mengirim data'; Panel1.Enabled:=false; end; end;
procedure TFormClient.InIPChange(Sender: TObject); begin if InIP.Text='' then Koneksi.Enabled:=false else Koneksi.Enabled:=true; end;
procedure TFormClient.SBChange(Sender: TObject); begin Label1.Caption:=IntToStr(SB.Position); kec:=Label1.Caption; if Polaritas.Caption='Putar Kanan' then pol:='0' else
Tugas MicroControl MMI Server
75
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
if Polaritas.Caption='Putar Kiri' then pol:='1'; end;
procedure TFormClient.SpeedButton1Click(Sender: TObject); begin Close; end;
procedure TFormClient.OKClick(Sender: TObject); begin ClientMMI.Socket.SendText(pol+kec); end;
end.
Tugas MicroControl MMI Server
76
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
BAB IV
KESIMPULAN DAN SARAN
A. Kesimpulan
Tegangan input dari sistem servo motor ED 4400 adalah 0V sampai
1,1V untuk polaritas positif dan 0V sampai -1,1V untuk polaritas negatif
yang sebanding dengan kecepatan putaran motor sebesar 0 rpm sampai
4000 rpm.
Tegangan output servo motor adalah sebesar 0V sampai 10,6V untuk
polaritas positif dan 0V sampai -10,6V untuk polaritas negatif yang
sebanding dengan kecepatan putaran motor sebesar 0 rpm sampai 4000
rpm.
Tegangan keluaran DAC 0808 yang dibuat adalah sebesar 0V sampai
+5V. Agar dapat diinputkan ke sistem servo motor digunakan rangkaian
penggeser level dan penyesuai tegangan.
Data biner yang dikirim ke modul SK-8051 untuk menggerakkan motor
dengan polaritas positif adalah 01111111b (127) sampai 11111111b
(255) yang merepresentasikan kecepatan putaran motor dari 0 rpm
sampai 4000 rpm putar kanan, sedangkan data biner yang dikirim untuk
mengerakkan motor dengan polaritas negatif adalah 01111111b (127)
sampai 00000000b (0) yang merepresentasikan kecepatan putaran motor
dari 0 rpm sampai 4000 rpm putar kiri.
Tugas MicroControl MMI Server
77
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
B. Saran
Untuk praktikum MMI berikutnya, supaya dilanjutkan dengan
pengaturan posisi motor.
Tugas MicroControl MMI Server
78
Laporan Praktek Sistem Control Motor Servo / Hasanuddin Sirait
DAFTAR PUSTAKA
Paulus A. Nalwan, 2003, Teknik Antar Muka dan Pemrograman, Elex Media Computindo, Jakarta
Retna prasetyo, 2004, Interfacing Port Paralel & Port Serial Komputer dengan VB, Yogyakarta
Rahmat Setyawan, 2006, Mikrokontroller MCS-51, Graha Ilmu, Yogyakarta
Tim Lab Mikroprosessor, 2006, Pemrograman Mikrokontroller AT 89S51 deng an /C++ dan Assembler, Andi, Yogyakarta
Users Manual One Chip 8 Bit Microprocessor Control Trainer, SkLab
Hasmini dkk, 2007, Penuntun Praktikum Sistem Kendali Digital, Unhas, Makassar
Userss Manual Servo Motor System ED-4400