Tujuan
1. Praktikan dapat membuat proyek untuk menghubungkan antara PC dan Program pada Power Supply. 2. Praktikan dapat membuat proyek untuk menghubungkan antara Mikrokontroler dan Program pada Power Supply. 3. Praktikan dapat membuat proyek untuk menguji beban lampu dc dengan menggunakan Program pada Power Supply.
Software
1. Microsoft Visual Studio 2008 2. Codevision AVR
Interface Device
Page 2
Page 3
Page 4
Project 1
COMMAND for PSS3203 1 2 3
Page 5
Project 2
Mengatur Power Supply dengan Visual Studio 2008 C#
Page 6
Laporan Praktikum Teknik Antar Muka Komputer using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;
namespace P0601 { public partial class Form1 : Form { bool OutputStatus = false;//inisialisasi variabel bertype data Boolean dengan default value = FALSE public Form1() { InitializeComponent(); } private void trackBar1_Scroll(object sender, EventArgs e) { proses("VOLT", trackBar1.Value); } private void proses(string CV,double data) { string DataBulat, DataPecahan, DataKirim; double dBulat, dPecahan; dBulat = System.Math.Floor(data / 100); dPecahan = data % 100; DataBulat = dBulat.ToString(); DataPecahan = dPecahan.ToString(); DataKirim = "CHAN1:" + CV +" " + DataBulat + "." + DataPecahan; label1.Text = DataKirim; sp.WriteLine(DataKirim + Environment.NewLine); } private void Form1_Load(object sender, EventArgs e) { sp.Open(); } private void trackBar2_Scroll(object sender, EventArgs e) {
Page 7
Laporan Praktikum Teknik Antar Muka Komputer proses("CURR", trackBar2.Value); } private void btnOUTPUT_Click(object sender, EventArgs e) { OutputStatus = !OutputStatus; if(OutputStatus) sp.WriteLine(":OUTP:STAT 1" + Environment.NewLine); else sp.WriteLine(":OUTP:STAT 0" + Environment.NewLine); } } }
Project 3
Mengatur Power Supply dengan Program CodeVision dan Potensiometer #include #include #include #include <mega128.h> <stdio.h> <delay.h> <math.h>
void kirim(int n); #define ADC_VREF_TYPE 0x60 unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; } void main(void) { longint data1, dBULAT, dPECAHAN; PORTA=0x00;DDRA=0x00;PORTB=0x00;DDRB=0x00; PORTC=0x00;DDRC=0x00;PORTD=0x00;DDRD=0x00; PORTE=0x00;DDRE=0x00;PORTF=0x00;DDRF=0x00; UCSR0A=0x00;UCSR0B=0x18;UCSR0C=0x06;UBRR0H=0x00;UBRR0L=0x33; ACSR=0x80;SFIOR=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;
Page 8
while (1) { putchar(':'); putchar('C');putchar('H');putchar('A');putchar('N');putchar('1'); putchar(':'); putchar('V');putchar('O');putchar('L');putchar('T');putchar(' '); data1=read_adc(0); data1=(data1*3200)/255; dBULAT=floor(data1/100); kirim(dBULAT);putchar('.'); dPECAHAN=data1%100; kirim(dPECAHAN); putchar(0x0D); putchar(':'); putchar('C');putchar('H');putchar('A');putchar('N');putchar('1'); putchar(':'); putchar('C');putchar('U');putchar('R');putchar('R');putchar(' '); data1=read_adc(1); data1=(data1*300)/255; dBULAT=floor(data1/100); putchar(0x30 + dBULAT); putchar('.'); dPECAHAN=data1%100; kirim(dPECAHAN); putchar(0x0D); delay_ms(500); }; } voidkirim(int n) { intp,s; p=floor((n%100)/10); s=n%10; putchar(0x30+p); putchar(0x30+s); }
Project 4
using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing;
Page 9
Laporan Praktikum Teknik Antar Muka Komputer using System.Linq; using System.Text; using System.Windows.Forms; namespace P0602 { public partial class Form1 : Form { string sDataArus,sData,sDataTeg; double DataArus,DataTeg; int i; public Form1() { InitializeComponent(); } private void proses(string CV,double data) { string DataBulat, DataPecahan, DataKirim; double dBulat, dPecahan; dBulat = System.Math.Floor(data / 100); dPecahan = data % 100; DataBulat = dBulat.ToString(); DataPecahan = dPecahan.ToString(); DataKirim = "CHAN1:" + CV +" " + DataBulat + "." + DataPecahan; label1.Text =label1.Text + "\n" + DataKirim; sp.WriteLine(DataKirim + Environment.NewLine); } private void Form1_Load(object sender, EventArgs e) { sp.Open(); label1.Text = ""; proses("VOLT", 1200); proses("CURR", 90); } private void BtTest_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) { BacaArus();
Page 10
Laporan Praktikum Teknik Antar Muka Komputer Nyalakan(); } private void Nyalakan() { button1.BackColor = System.Drawing.Color.White; button2.BackColor = System.Drawing.Color.White; button3.BackColor = System.Drawing.Color.White; if (DataArus > 0.2) button1.BackColor = System.Drawing.Color.Lime; if (DataArus > 0.4) button2.BackColor = System.Drawing.Color.Lime; if (DataArus > 0.6) button3.BackColor = System.Drawing.Color.Lime; } private void BacaArus() { sp.WriteLine(":OUTP:STAT 1" + Environment.NewLine); sp.WriteLine("CHAN1:MEAS:CURR ?" + Environment.NewLine); sp.WriteLine("CHAN1:MEAS:VOLT ?" + Environment.NewLine); for (i = 0; i < 1000; i++) { } if (sp.BytesToRead >= 1) { sData = sp.ReadExisting(); sDataArus = sData.Substring(0, 5); label2.Text = "Arus = "+ sDataArus + " Ampere"; DataArus = Convert.ToDouble(sDataArus); sDataTeg = sData.Substring(6, 5); label3.Text = "Tegangan = " + sDataTeg + " Volt"; DataTeg = Convert.ToDouble(sDataTeg); sp.DiscardInBuffer(); } } private void BtStop_Click(object sender, EventArgs e) { timer1.Enabled = false; sp.WriteLine(":OUTP:STAT 0" + Environment.NewLine); } } }
Page 11
Page 12
Page 13
Analisa
Percobaan kali ini berjudul Interfacing to Programmable Power Supply. Pada percobaan ini Power Supply akan dihubungkan dengan PC agar bisa di kontrol melalui PC dengan beberapa command yang sudah tersedia dan bisa digunakan untuk Power Supply tersebut. Digunakan kabel RS 232 untuk menghubungkan Power Supply ke PC. Lalu akan dihubungkan dengan modul mikrokontroler dan juga potensiometer. Pada percobaan pertama, yaitu mencoba command for PSS3203. Ada 8 buah command yang bisa dicoba, perlu digunakan Hyper Terminal untuk memasukkan command agar bisa dibaca oleh Power Supply. Terdapat command untuk set output on dan off, untuk mengeset nilai tegangan dan arus pada Power Supply dari PC, dan juga untuk membaca nilai tegangan dan arus pada Power Supply untuk ditampilkan ke PC.
:OUTP:STAT 1<CR>
Command diatas digunakan untuk mengatur agar output Power Supply di ON-kan. Perintah tersebut diketikkan pada Hyper Terminal. Namun untuk <CR> tidak perlu diketikkan, karena <CR> adalah pengganti perintah ENTER. Jadi ketika kita menekan ENTER, maka secara otomatis command akan bekerja pada Power Supply. Pada percobaan kedua, yaitu mencoba mengatur nilai pada Power Supply dari Visual Basic. Dimana digunakan dua buah track bar untuk mengeset nilai tersebut.
Page 14
Program diatas digunakan untuk membaca perubahan pada track bar agar ditampilkan pada Power Supply.
privatevoid proses(string CV,double data) { string DataBulat, DataPecahan, DataKirim; double dBulat, dPecahan; dBulat = System.Math.Floor(data / 100); dPecahan = data % 100; DataBulat = dBulat.ToString(); DataPecahan = dPecahan.ToString(); DataKirim = "CHAN1:" + CV +" " + DataBulat + "." + DataPecahan; label1.Text = DataKirim; sp.WriteLine(DataKirim + Environment.NewLine); }
Program diatas digunakan untuk mengkonversi nilai perubahan trck bar agar saat ditampilkan pada Power Supply menjadi angka yang sebenarnya. Tegangan maksimum yang dapat terbaca oleh Power Supply ini adalah 32 Volt sedangkan untuk arus adalah 3 Ampere. Maka agar bisa menjadi pecahan, perlu digunakan perhitungan seperti yang program diatas.
Program diatas untuk mengkonversi trackBar1 yang nilainya 0-3200 volt ke ADC.
dBULAT=floor(data1/100);
Program diatas untuk pembulatan nilai VOLTAGE 0-3200 menjadi 0-32 volt ke C#.
kirim(dBULAT);putchar('.'); dPECAHAN=data1%100;
Program diatas untuk mengetahui sisa hasil bagi untuk nilai VOLTAGE berupa pecahan ke C#.
Program diatas untuk mengkonversi trackBar2 yang nilainya 0-300 mA ke ADC. dBULAT=floor(data1/100); Program diatas untuk pembulatan nilai CURRENT 0-300 menjadi 0-3 mA ke C#.
Page 15
Laporan Praktikum Teknik Antar Muka Komputer putchar(0x30 + dBULAT); putchar('.'); dPECAHAN=data1%100; Program diatas untuk mengetahui sisa hasil bagi untuk nilai CURRENT berupa pecahan ke C#.
Pada percobaan ketiga, digunakan CodeVision untuk membuat program. Jadi digunakan pula modul mikrokontroler dan juga potensiometer. Pada dasarnya isi program ini sama seperti percobaan 2, fungsi track bar akan diganti dengan potensiometer. Jadi Power Supply bisa diatur melalui potensiometer. Pada percobaan ke empat, digunakan lampu sebagai beban untuk Power Supply. Dan juga dibuat form untuk membaca nilai pada Power Supply dan juga diberi sebuah indicator lampu agar kita mengetahui lampu berapa yang menyala.
Kesimpulan
Dari percobaan ini saya dapat menyimpulkan bahwa jika kita mengetahui peralatan yang bisa digunakan dengan kabel RS 232 seperti Power Supply ini, maka kita bisa mengatur peralatan itu melalui PC. Baik itu dengan CodeVision atau dengan Visual Basic C#. Pengaturan pada CodeVision ataupun Visual Basic C# dengan memperhatikan command yang bisa dibaca oleh peralatan tersebut. Dan untuk mengatur atau mengontrol tegangan dan arus pada Power Supply dapat menggunakan Hyper Terminal pada PC.
Tugas
Bila Power Supply di setting nilai arusnya kurang dari nominal, maka akan terjadi drop tegangan pada tegangan supply. Bila Power Supply di setting nilai tegangannya kurang dari nominal, maka akan terjadi drop arus pada supply. Jelaskan! Jawab Apabila supply di setting nilai arusnya kurang dari nominal, maka akan terjadi drop tegangan pada tegangan supply ataupun sebaliknya, dan menurut Hukum Ohm V = I x R (dengan beban R konstan), nilai Tegangan (V) dan juga Arus (I) adalah berbanding lurus. Sehingga bila setting arus diperkecil maka akan terjadi drop tegangan pada Power Supply. Begitu pula sebaliknya, apabila setting tegangan diperkecil maka juga akan terjadi drop arus pada Power Supply.
Page 16