PROGRAM STUDI TEKNIK ELEKTRONIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MEDAN
MEDAN
SEMESTER - 5A
LEMBAR PENILAIAN
No. Percobaan : 01/Lab. Aplikasi Komputer/EK-5A/2010
Judul Percobaan : MODUL PENGENDALI 12 LED
Kelompok : V (lima)
Nama Kelompok : 1. AHMAD SYAHRI
2. MAILIA SYAFITRI 3. RENHARD F SINAGA 4. HENDRIANTO MANURUNG 5. MIKHAEL NAIBAHO 5. YUSTIGA HUTABARAT Kelas : EK – 5 A Tanggal Percobaan :
Tanggal penyerahan : 04 Januari 2011
Instruktur : AHMAD YANI, ST
Nilai :
DAFTAR ISI
LEMBAR PENILAIAN ... ... DAFTAR ISI ... ... 1. Tujuan ... ... 2. Teori Dasar ... ... 3. Bahan dan Peralatan ... 4. Rangkaian Interface ... ... 5. Prosedur... ... 6. Tugas ... ...
Program 1 dan 2 Menghidupkan Dan Mematikan Lampu
A. Listing Program ... ... B. Analisa Program ... ... Program 3 Menghidupkan Secara Bergiliran
A. Listing Program ... ... B. Analisa Program ... ... 7. Kesimpulan ... ...
SEMESTER - 5A
MODUL PENGENDALI 12 - LED
1. Tujuan Percobaan
- Mampu membuat rangkaian tampilan 12-LED
- Mampu membuat program komputer dengan visual basic untuk mengendalikan tampilan 12-LED 2. Dasar Teori
Aplikasi yang digunakan untuk mengendalikan tampilan 12-LED merupakan aplikasi yang paling sederhana, karena untuk menghidupkan dan mematikan sebuah LED hanya dibutuhkan tegangan standar TTL dengan komponen tambahan berupa sebuah resistor untuk pembatas arus.
Pada aplikasi yang menggunakan 12 buah LED ini, 8 buah LED dikendalikan oleh port Data, sedangkan 4 buah LED oleh Port Kontrol dalam port paralel yang didrive oleh software dengan bahasa pemograman visual basic. Adapun program ini dibuat adalah sebagai interface antara modul LED dengan komputer.
3. Bahan dan Peralatan
- Konektor DB-25 (jantan) 1 buah
- LED 12 buah
- Resistor 330 ohm 12 buah
- Kabel data 13 potong
- Komputer 1 unit
4. Langkah Kerja
1. Rangkai peralatan sesuai dengan Gambar 4.
2. Buat interface (penghubung antara komputer dengan konektor LED) Dengan menggunakan software Visual Basic
3. Menghubungkan konektor DB-25 jantan ke konektor DB-25 betina pada komputer 4. Menjalankan dan menganalisa program
5. Gambar Rangkaian
Catatan
- LED 0 samapai LED 7 dihubungkan dengan bit D0 samapai D7 pada Port Data
- LED 8 sampai LED 11 dihubungkan masing-masing ke bit ~C0, ~C1,~C2,dan ~C3 (dalam hal ini, bit ~C0, ~C1, dan ~C3 adalah aktif rendah sehingga perlu diperhatikan dalam pemograman). Dengan pin diagram sebagai gambar berikut :
SEMESTER - 5A 6. Analisa Data dan Listing Program
Dalam pembuatan interface ini adapun form yang dibuat adalah seperti gambar berikut :
A. LED ON
Private Sub Command1_Click() Do
DoEvents
PortOut &H378, &HFF menghidupkan led pada port data (semua led akan hidup) PortOut &H37A, &H4 menghidupkan led pada port control dengan terlebih dahulu
memperhatikan port control yang aktif nya aktif low dengan memberikan data 4h maka semua led yang berada pada port control akan hidup karena C0,C1, dan C3 merupakan aktif low jadi harus diberikan logika nol untuk menghidupkannya. Loop
B. LED OF
Private Sub Command2_Click() Do
DoEvents
PortOut &H378, &H0 mematikan semua led pada port data dan control
PortOut &H37A, &HB dengan memberikan data 0 pd port data dan data 11 desimal
Loop pada port control
End Sub
C. LED MELINGKAR
Private Sub Command3_Click() Do
DoEvents For i = 0 To 7 DoEvents
PortOut &H 378, 2 ^ i mengirimkan data berupa bilangan genap sehingga led hidup bergeser kearah kanan Sleep 100
Next
PortOut &H378, 0 For i = 0 To 3 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB mengirimkan data pada port control kemudian di xor kan dengan data HB
Sleep 100 Next
PortOut &H37A, &HB mematikan led pada port control Loop
PortOut &H378, 0
PortOut &H37A, &HB mematikan led pada port data End Sub
D. LED BERKEDIP
Private Sub Command5_Click() Do
DoEvents
PortOut &H378, &HFF menghidupkan led di port control dan port data PortOut &H37A, &H4
Sleep 250 ---- delay
PortOut &H378, 0 mematikan led di port control dan port data sehingga PortOut &H37A, &HB menghasilkan led berkedip dengan delay yg dapat diatur
Sleep 250 Loop End Sub
SEMESTER - 5A E. LED MEMANTUL
Private Sub Command4_Click() Do DoEvents For i = 0 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 100 Next
PortOut &H378, 0 listing program untuk menghidupkan led bergeser For i = 0 To 3
DoEvents
PortOut &H37A, (2 ^ i) Xor &HB kekanan Sleep 100
Next
PortOut &H37A, &HB For i = 3 To 0 Step -1 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 100
Next
PortOut &H37A, &HB For i = 7 To 0 Step -1 DoEvents
PortOut &H378, 2 ^ I listing program untuk menghidupkan led bergeser Sleep 100
Next kekiri setelah bergeser kekanan selasai dieksekusi
PortOut &H378, 0 sehingga didapat dilihat led seperti memantul Loop
PortOut &H378, 0 PortOut &H37A, &HB End Sub
F. LED TABRAKAN
Private Sub Command6_Click() Do
DoEvents
PortOut &H378, &H1
PortOut &H37A, 8 Xor &HB Sleep 100
PortOut &H378, &H2
PortOut &H37A, 4 Xor &HB Sleep 100
PortOut &H378, &H4
PortOut &H37A, 2 Xor &HB Sleep 100
PortOut &H378, &H8
PortOut &H37A, 1 Xor &HB Sleep 100
PortOut &H37A, &HB PortOut &H378, &H90 Sleep 100
PortOut &H378, &H60 Sleep 100
PortOut &H378, &H90 Sleep 100
PortOut &H378, &H8
PortOut &H37A, 1 Xor &HB Sleep 100
PortOut &H378, &H4
PortOut &H37A, 2 Xor &HB Sleep 100
PortOut &H378, &H2
PortOut &H37A, 4 Xor &HB Sleep 100
PortOut &H378, &H1
PortOut &H37A, 8 Xor &HB Sleep 100
Loop
PortOut &H378, 0 PortOut &H37A, &HB End Sub
G. LED DIPUKUL MUNDUR Do DoEvents For i = 0 To 7 For y = 3 To 0 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 40
PortOut &H37A, (2 ^ y) Xor &HB Sleep 50 Next Next For i = 7 To 0 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 Loop PortOut &H378, 0 PortOut &H37A, &HB End Sub
SEMESTER - 5A H. LED MENGECIL Do DoEvents For i = 0 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 0 To 3 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 3 To 0 Step -1 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 7 To 1 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 1 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 0 To 2 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 2 To 0 Step -1 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 7 To 2 Step -1 DoEvents
PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 2 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 0 To 1 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 1 To 0 Step -1 DoEvents
PortOut &H37A, (2 ^ i) Xor &HB Sleep 50
Next
PortOut &H37A, &HB For i = 7 To 3 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 3 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0
PortOut &H37A, (2 ^ 0) Xor &HB 'Lampu c0 hidup' Sleep 50 PortOut &H37A, &HB
For i = 7 To 4 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0
SEMESTER - 5A For i = 4 To 7 DoEvents PortOut &H378, 2 ^ i Sleep 50 Next PortOut &H378, 0 For i = 7 To 5 Step -1 DoEvents PortOut &H378, 2 ^ i Sleep 100 Next PortOut &H378, 0 For i = 5 To 6 DoEvents PortOut &H378, 2 ^ i Sleep 100 Next PortOut &H378, 0 PortOut &H378, 2 ^ 5 Loop PortOut &H378, 0 PortOut &H37A, &HB End Sub
I. MEMILIH LED YANG MENYALA Form :
Listing Program :
Private Declare Sub PortOut Lib "io.dll" (ByVal PortNo As Integer, ByVal Data As Byte) Private Sub Command1_Click(Index As Integer)
Do DoEvents
PortOut &H378, &H1 PortOut &H37A, &HB Loop
End Sub
Private Sub Command10_Click() Do
DoEvents
PortOut &H378, &H0 PortOut &H37A, &H9 Loop
End Sub
Private Sub Command11_Click() Do
DoEvents
PortOut &H378, &H0 PortOut &H37A, &HF Loop
End Sub
Private Sub Command12_Click() Do
SEMESTER - 5A PortOut &H378, &H0
PortOut &H37A, &H3 Loop
End Sub
Private Sub Command13_Click() End
End Sub
Private Sub Command2_Click() Do
DoEvents
PortOut &H378, &H2 PortOut &H37A, &HB Loop
End Sub
Private Sub Command3_Click() Do
DoEvents
PortOut &H378, &H4 PortOut &H37A, &HB Loop
End Sub
Private Sub Command4_Click() Do
DoEvents
PortOut &H378, &H8 PortOut &H37A, &HB Loop
End Sub
Private Sub Command5_Click() Do
DoEvents
PortOut &H378, &H10 PortOut &H37A, &HB Loop
End Sub
Private Sub Command6_Click() Do
DoEvents
PortOut &H378, &H20 PortOut &H37A, &HB Loop
End Sub
Do DoEvents
PortOut &H378, &H40 PortOut &H37A, &HB Loop
End Sub
Private Sub Command8_Click() Do
DoEvents
PortOut &H378, &H80 PortOut &H37A, &HB Loop
End Sub
Private Sub Command9_Click() Do
DoEvents
PortOut &H378, &H0 PortOut &H37A, &HA Loop
End Sub
Private Sub Form_Load() Do
DoEvents
PortOut &H378, &H0 'berikan logika 0 pada port 378'
PortOut &H37A, &HB 'berikan logika 0 pada port 37A (aktive low)' Loop
SEMESTER - 5A
1. Dalam Visual Basic agar dapat mengenali port Paralel harus di copykan terlebih dahulu ke system 32 sebuah file berupa IO.dll. tanpa adanya file IO.dll ini program tidak bisa dijalankan
2. Pada awal program terlebih dahulu kita inisialisasikan alamt io.dll yang kita gunakan agar tidak terjadi nya error.
Private Declare Sub PortOut Lib "IO.DLL" (ByVal PortNo As Integer, ByVal Data As Byte)
Private Declare Function PortIn Lib "IO.DLL" (ByVal PortNo As Integer) As Byte
3. Sleep juga membutuhkan declarasi tersendiri supaya dapat berjalan dengan baik dan tidak terjadinya kesalahan
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
4. Dalam pemasangan modul, salah satu hal yang perlu diperhatikan dalam pengontoran LED adalah instalasi pin diagram konektor dengan kabel serta keadaan aktif khususnya untuk input C, dimana terdapat perbedaan berdasarkan tegangan pada LED aktif high atau aktif low, serta dibutuhkan pengalamatan data yang tepat.
5. Pada pembuatan interface pengontrolan modul LED, bilangan yang dimasukkan adalah dalam hexadesimal, maka dalam hal ini diperlukan adanya ketelitian untuk menghindari kesalahan alamat.
LEMBAR PENILAIAN
No. Percobaan : 02/Lab. Aplikasi Komputer/EK-5A/2010
Judul Percobaan : MODUL PENGENDALI TAMPILAN SEVENT-SEGMENT
Kelompok : V (lima)
Nama Kelompok : 1. AHMAD SYAHRI
2. MAILIA SYAFITRI 3. RENHARD F SINAGA 4. HENDRIANTO MANURUNG 5. MIKHAEL NAIBAHO 5. YUSTIGA HUTABARAT Kelas : EK – 5 A Tanggal Percobaan :
Tanggal penyerahan : 04 Januari 2011
Instruktur : AHMAD YANI, ST
Nilai :
SEMESTER - 5A APLIKASI 2
MODUL PENGENDALI TAMPILAN SEVEN-SEGMENT
A. Tujuan
Setelah menyelesaikan modul ini mahasiswa diharapkan :
Mampu membuat rangkaian interface tampilan seven-segment
Mampu membuat program komputer untuk mengendalikan tampilan seven- segment.
B. Teori Dasar
Pada dasarnya, untuk menampilkan angka pada satu buah seven-segment diperlukan sebuah dekoder, misalnya dekoder 7447 yang mampu mengubah data biner 4-bit (kode BCD) menjadi tampilan digit 0 sampai 9. Setiap segmen (segmen a sampai g) dalam sebuah seven-segment berupa sebuah LED. Jika semua katoda dari masing-masing LED dalam seven-segment dihubungkan secara bersama, maka seven-segment ini disebut common-cathode, sedangkan jika semua anoda dihubungkan, maka seven-segment ini disebut common-anode. Setiap rangkaian LED perlu diberi resistor sebagai pembatas arus untuk melindunginya terhadap arus listrik yang berlebihan. Nilai resistor ditentukan berdasarkan sifat kerja LED. Agar dapat menyala, LED membutuhkan arus antara 5 sampai 30 mA; semakin besar arus diberikan, semakin terang nyala LED. Sewaktu menyala, jatuh tegangan di antara kedua terminal LED secara umum berkisar 1,5 V. Untuk LED tunggal dengan tegangan catu sebesar +5 V dan arus sekitar 20 mA, nilai resistor yang dibutuhkan adalah (5 - 1.5)/0.020 = 175 :. Jika menggunakan dekoder 7447, jatuh tegangan pada dekoder itu sendiri harus diperhitungkan. Untuk tampilan seven-segment yang digerakkan 7447, LED pada setiap segmen akan menyala jika keluaran 7447 bertegangan rendah (berlogika 0). Tegangan maksimum keluaran 7447 pada saat berlogika 0 adalah 0,4 V dengan arus 40 mA. Dengan data ini, cukup aman jika tegangan anoda saat LED menyala dianggap 0,2 V dengan arus 20 mA, sehingga jatuh tegangan pada resistor pembatas arus adalah 5 - 1,5 - 0,2 = 3,3 V. Ini berarti bahwa resistor yang dibutuhkan adalah 3,3/0,02 = 165 :, yang cukup aman menggunakan resistor standar 168 : yang tersedia di pasaran.
Dalam penampilan lebih dari satu digit, jika setiap seven-segment membutuhkan sebuah dekoder 7447, maka rangkaian menjadi kurang efisien karena membutuhkan dekoder yang banyak dan konsumsi daya yang besar. Penampilan dengan menggunakan rangkaian seperti ini disebut penampilan statis. Sebagai contoh, untuk menampilkan 16 digit, dibutuhkan dekoder 16 buah. Jika seven-segment menampilkan angka 8, artinya
ketujuh LED menyala dan masing-masing menarik arus 20 mA, maka ketujuh LED itu menarik arus 7 x 20 = 140 mA. Jika ke-16 seven-segment secara bersamaan menampilkan angka 8,
maka dibutuhkan arus yang sangat besar, yaitu 16 x 140 mA = 2240 mA = 2,24 A.
Untuk mengatasi kelemahan penampilan statis, digunakan penampilan dinamis. Dalam penampilan ini, penampilan dilakukan bergilir digit demi digit, dan setiap saat hanya salah satu digit tampilan yang diaktifkan dan hanya dalam waktu singkat, sehingga kebutuhan daya setiap saat tidak lebih dari sebesar daya yang dibutuhkan oleh penampil 1 digit. Dengan periode hidup-mati yang cukup cepat, antara 40 sampai 200 kali setiap detik, mata manusia masih melihat seolah-olah LED tersebut menyala secara terus-menerus. Operasi mati-hidup ini juga menurunkan duty cycle (lamanya periode hidup terhadap periode hidup-mati), tidak seperti pada penampilan statis yang hidup terus-menerus (duty cycle 100%). Dalam cara ini digunakan teknik multiplexing, yaitu mengirimkan data angka tampilan secara berurutan ke semua seven-segment, tetapi pada setiap saat hanya satu seven-segment yang dihidupkan.
Aplikasi 2 ini menggunakan bantuan IC decoder/demultiplexer 74154 yang
mempunyai 16 keluaran yang pada setiap saat hanya satu keluaran yang aktif (berlogika rendah). Setiap keluaran dekoder ini digunakan untuk memilih seven-segment yang harus diaktifkan. Masukan pemilih 4-bit untuk IC ini dihubungkan ke Port Kontrol pada bit ~C0, ~C1, C2, dan ~C3. Seven-segment yang digunakan adalah jenis common-anode. Data biner untuk menghidupkan segmen-segmen a sampai g pada masing-masing seven-segment tidak dilewatkan melalui dekoder 7447, tetapi langsung ke segmen yang bersangkutan. Data biner ini diambil dari bit D0 sampai D6 (7 bit saja) pada Port Data. Karena tidak menggunakan dekoder 7447, setiap seven-segment tidak hanya dapat menampilkan angka 0 sampai 9, tetapi juga bentuk karakter lain, seperti huruf atau tanda baca tertentu. Rangkaian lengkap untuk aplikasi dapat dilihat pada Gambar 5.
Dengan rangkaian seperti Gambar 5, penampilan dimulai dengan mengirimkan data angka dari Port Data pada bit D0 sampai D7 (masing-masing untuk segmen a sampai g) untuk seven-segment yang anodanya terhubung ke keluaran Y0 dari dekoder melalui transistor. Kemudian dikirim data pemilih digit (4 bit) dari Port Kontrol ke 74154 sehingga keluaran Y0 aktif dan seven-segment yang bersangkutan menampilkan data yang diberikan. Penyalaan digit ini dibiarkan berlangsung sekitar 1 sampai 2 milidetik (atau disesuaikan dengan Kecepatan komputer yang digunakan). Kemudian data untuk digit berikutnya dikirim ke D0 sampai D7
SEMESTER - 5A
Setelah masa hidup dilampaui, kembali dilakukan penampilan digit berikutnya sampai keluaran Y15 diaktifkan dengan cara yang sama. Setelah semua digit ditampilkan secara bergiliran, proses penampilan diulangi lagi untuk digit yang pertama sekali diaktifkan.
C. Bahan dan Peralatan
¾ Konektor DB-25 (jantan) 1 buah
¾ Common anode seven segment 16 buah
¾ Resistor 330 ohm 7 buah
¾ Resistor 1K 16 buah
¾ Kabel data 11 potong
¾ Komputer 1 unit
¾ Catu daya +5V 1 unit
D. Rangkaian Interface
E. Prosedur
1. Rangkai peralatan sesuai dengan Gambar 5.
2. Hidupkan komputer dan jalankan software Visual Basic 6.0.
3. Hubungkan konektor DB-25 jantan ke konektor DB-25 betina pada komputer. 4. Tulis program sesuai dengan tugas yang diberikan.
5. Jalankan program.
6. Periksa hasil program terhadap rangkaian interface yang dipasang. Jika tidak sesuai dengan hasil yang diinginkan, edit kembali program, kemudian ulangi langkah 5 dan 6.
7. Selesai.
F. Tugas
1. Buatlah program yang memiliki kemampuan berikut : dapat menampilkan 16 digit konstan
dapat menampilkan tanggal sekarang dapat menampilkan jam sekarang
2. Buatlah program yang dapat menampilkan 16 digit yang berkedip-kedip 3. Buatlah program yang dapat menampilkan karakter berjalan.
SEMESTER - 5A PROGRAM 1
MENAMPILKAN 16 DIGIT KONSTAN 0123456789AbCdEF
A. Listing Program
Private Declare Sub PortOut Lib "IO.DLL" (ByVal PortNo As Integer, ByVal Data As Byte)
Private Declare Function PortIn Lib "IO.DLL" (ByVal PortNo As Integer) As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim Angka(16) As Byte
Dim Data As Integer, Control As Integer Option Explicit Public Sub Command1_Click()
Dim i As Byte i = 1
Data = &H378 Control = &H37A
Angka(1) = &HC0: Angka(2) = &HF9: Angka(3) = &HA4: Angka(4) = &HB0 Angka(5) = &H99: Angka(6) = &H92: Angka(7) = &H82: Angka(8) = &HF8
Angka(9) = &H80: Angka(10) = &H90: Angka(11) = &H88: Angka(12) = &H83 Angka(13) = &HC6: Angka(14) = &HA1: Angka(15) = &H86: Angka(16) = &H8E
Do DoEvents
PortOut Data, Angka(i)
PortOut Control, (16 - i) Xor &HB Sleep 1 'PortOut Data, &HFF
If i = 16 Then i = 1 Else i = i + 1
Loop
PortOut Data, &HFF End Sub
B. Analisa Program
Untuk menampilkan angka 16 digit hexadesimal secara konstan pada sevensegment, dibutuhkan konversi bilangan untuk tiap-tiap LED pada seven-segment dalam bentuk bilangan biner kedalam bilangan hexadesimal untuk dikeluarkan pada Port paralel (378H), adapun teknik mengaktifkan LED untuk tiap-tiap angka hexadesimal adalah sebagai berikut :
Karena dalam rangkaian seven segment yang digunakan jenis common anoda maka seven segment aktif low (aktif pada saat input = 0), seperti pada tabel berikut :
Tabel Pin LED pada seven segment
Setelah nilai angka seperti pada tabel dimasukkan, selanjutnya program di XOR-kan dengan 0B karena pada port paralel terdapat 3 bus control yang aktif low untuk medapatkan keadaan yang diinginkan.
Program diberi timer (sleep 1), yang diatur sedemikian rupa sehingga program berjalan sedemikian rupa dengan frekuensi yang tinggi pada pergantian tampilan segmen, sehingga akan terlihat tanpa tenggang waktu.
SEMESTER - 5A PROGRAM 2
MENAMPILKAN TANGGAL SEKARANG A. Listing Program
Private Sub Command5_Click() Data = &H378
Control = &H37A
Angka(0) = &HC0: Angka(1) = &HF9: Angka(2) = &HA4: Angka(3) = &HB0 Angka(4) = &H99: Angka(5) = &H92: Angka(6) = &H82: Angka(7) = &HF8 Angka(8) = &H80: Angka(9) = &H90 Dim A(7) As Byte
Dim X As Long Dim i As Byte X = 0 Do DoEvents Text1.Enabled=False Text2.Enabled=False Text3.Enabled=True Text3.Text=CStr(X) A(0) = X \ 1000000 A(1) = (X Mod 1000000) \ 100000
A(2) = ((X Mod 1000000) Mod 100000) \ 10000
A(3) = (((X Mod 1000000) Mod 100000) Mod 10000) \ 1000
A(4) = ((((X Mod 1000000) Mod 100000) Mod 10000) Mod 1000) \ 100
A(5) = (((((X Mod 1000000) Mod 100000) Mod 10000) Mod 1000) Mod 100)\10 A(6) = X Mod 1000000 Mod 100000 Mod 10000 Mod 1000 Mod 100 Mod 10
For i = 0 To 6
PortOut Data, Angka(A(i))
PortOut Control, (15 - i) Xor &HB Sleep 1 'PortOut Data, &HFF
Next
If X = 10000000 Then X = 0 Else X = X + 50000 Loop
End Sub
B. Analisa Program
Pada program ini, Visual basic akan mengambil tanggal, bulan dan tahun dari system computer, dalam pembuatan programnya terlebih dahulu didefinisikan data tampilan dalam bilangan hexadesimal yang akan dapat dimuat pada seven segment, pada program ini Angka (0) sampai dengan angka (9).
PROGRAM 3
MENAMPILKAN JAM SEKARANG A. Listing Program
Private Declare Sub PortOut Lib "IO.DLL" (ByVal PortNo As Integer, ByVal Data As Byte)
Private Declare Function PortIn Lib "IO.DLL" (ByVal PortNo As Integer) As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Dim Angka(16) As Byte
Dim Data As Integer, Control As Integer Option Explicit Private Sub Command2_Click()
Dim i As Byte Data = &H378
Control = &H37A
Angka(1) = &HC0: Angka(2) = &HF9: Angka(3) = &HA4: Angka(4) = &HB0 Angka(5) = &H99: Angka(6) = &H92: Angka(7) = &H82: Angka(8) = &HF8
Angka(9) = &H80: Angka(10) = &H90: Angka(11) = &H88: Angka(12) = &H83 Angka(13) = &HC6: Angka(14) = &HA1: Angka(15) = &H86: Angka(16) = &H8E
Dim A(16) As Byte Dim jam, menit, detik Dim Sekarang Do DoEvents jam = Hour(Now) menit = Minute(Now) detik = Second(Now) Text1.Enabled = True
Text1.Text = CStr(Time) & " WIB" Text2.Enabled = False
Text3.Enabled = False A(1) = jam \ 10 A(2) = jam Mod 10 A(3) = &HBF A(4) = menit \ 10 A(5) = menit Mod 10 A(6) = &HBF A(7) = detik \ 10 A(8) = detik Mod 10 A(9) = &HFF A(10)=&HFF A(11)=&HFF A(12)=&HFF A(13)=&H8C A(14)=&HC0 A(15)=&HC7 A(16) = &HCF For i = 1 To 16 If i = 3 Or i = 6 Or i >= 9 Then PortOut Data, A(i)
Else
PortOut Data, Angka(A(i) + 1) End If PortOut Control, (16 - i) Xor &HB Sleep 1
'PortOut Data, &HFF Next
Loop End Sub
SEMESTER - 5A
Pada program ini, Visual basic akan mengambil jam pada comuputer dan secara bersamaan menampilkannya di text1 pada form.
Mula-mula tampilan seven segment diset sesuai angka pada tabel. Setelah program dieksekusi, Visual Basic akan mengambil jam, menit dan tanggal pada komputer dengan perintah :
Dim A(16) As Byte Dim jam, menit, detik Dim Sekarang Do DoEvents jam = Hour(Now) menit = Minute(Now) detik = Second(Now)
Selanjutnya pada seven segmen akan dimuat tampilan jam, menit dan detik berdasarkan data berikut : A(1) = jam \ 10
A(2) = jam Mod 10 A(3) = &HBF A(4) = menit \ 10 A(5) = menit Mod 10 A(6) = &HBF
A(7) = detik \ 10 A(8) = detik Mod 10 A(9) = &HFF A(10) = &HFF A(11) = &HFF A(12) = &HFF A(13) = &H8C A(14) = &HC0 A(15) = &HC7 A(16) = &HCF
Untuk A(1), A(4), A(7) nilai datanya dibagi sepuluh, hal ini dimaksudkan untuk memperoleh nilai 2 digit. Sedangkan untuk A(2), A(5) dan A(8) digunakan perintah Mod 10 untuk mengambil angka bulat pada hasil pembagian A(1), A(4), A(7) dengan 10. Untuk A(6), A(9) - A(16) tampilan data sesuai dengan nilai data yang dituliskan dalam bentuk hexadesimal.
KESIMPULAN
1. Semakin cepat delay yang digunakan makan tampilan sevent-segment akan seolah-olah tidak pernah berkedip, karena mata manusia tidak mampu melihat perpindahan tampilan data tersebut
LEMBAR PENILAIAN
No. Percobaan : 03/Lab. Aplikasi Komputer/EK-5A/2011
Judul Percobaan : MODUL PENGENDALI MOTOR STEPPER
Kelompok : V (lima)
Nama Kelompok : 1. AHMAD SYAHRI
2. MAILIA SYAFITRI 3. RENHARD F SINAGA 4. HENDRIANTO MANURUNG 5. MIKHAEL NAIBAHO 5. YUSTIGA HUTABARAT Kelas : EK – 5 A Tanggal Percobaan :
Tanggal penyerahan : 04 Januari 2011
Instruktur : AHMAD YANI, ST
Nilai :
SEMESTER - 5A
MODUL PENGENDALI MOTOR STEPPER
Tujuan
Setelah menyelesaikan modul ini mahasiswa diharapkan
mampu membuat rangkaian interface pengendali motor stepper.
mampu membuat program komputer untuk mengendalikan motor stepper.
Teori Dasar
Motor stepper merupakan salah satu jenis motor yang dapat digunakan untuk memindahkan sebuah benda (beban) dengan jarak perpindahan yang kecil. Berbeda halnya dengan motor jenis lain yang bergerak dengan putaran yang kontinyu (mulus), motor stepper bergerak dengan putaran yang kaku. Motor stepper bergerak dari posisi tertentu ke posisi berikutnya seperti gerak melangkah (step). Motor stepper banyak digunakan untuk berbagai keperluan, seperti pada pinter Epson LX-800, atau Epson LQ-2170 atau printer lain yang sejenis (dot-matrix printer). Motor ini juga ditemukan pada floppy disk drive, harddisk drive, plotter, dan lain-lain.
Motor stepper yang umum digunakan mempunyai jangkauan langkah (step) berputar antara 0,9º sampai dengan 30º. Motor-motor itu adalah motor stepper dua atau empat fase. Secara teoritis, sebuah motor stepper berukuran kecil dapat digerakkan secara langsung oleh mikroprosesor. Dalam kenyataannya, arus dan tegangan yang dapat dikeluarkan oleh mikroprosersor terlalu kecil untuk menggerakkan sebuah motor stepper kecil. Sebagai perbandingan, gerbang-gerbang tipe TTL dalam mikroprosesor hanya mampu mengeluarkan arus dalam orde mA atau tegangan antara 2 sampai 2,5 volt. Sementara itu, untuk menggerakkan motor stepper dibutuhkan arus yang cukup besar (dalam orde ampere) dengan tegangan berkisar 5 – 24 V. Untuk mengatasi masalah tersebut, dibutuhkan sebuah perangkat tambahan yang dapat memenuhi kebutuhan arus dan tegangan yang besar itu, yaitu dengan menambahkan suatu rangkaian transistor yang disebut pasangan Darlington. Rangkaian aplikasi untuk pengendalian motor stepper ini dapat dilihat seperti pada Gambar 7.
Sebuah motor stepper digerakkan dari posisi yang satu ke posisi yang lain berikutnya dengan mengubah arus yang terhubung ke masing-masing fase. Pengubahan arus tersebut mempunyai pola/kombinasi tertentu. Berikut ini adalah cara untuk menggerakkan motor stepper 4-fase.
Tabel 2 kombinasi arus fase motor stepper untuk langkah penuh (full-step)
Step Fase D3 D2 D1 D0 1 0 0 1 1 2 1 0 0 1 3 1 1 0 0 4 0 1 1 0 1 0 0 1 1
Tabel 3 kombinasi arus fase motor stepper untuk langkah paruh (half-step)
CW W
Step Fase D3 D2 D1 D0 1 0 0 1 1 2 0 0 0 1 3 1 0 0 1 4 1 0 0 0 5 1 1 0 0 6 0 1 0 0 7 0 1 1 0 8 0 0 1 0 1 0 0 1 1
Pada Gambar 7, misalkan D0 dan D1 diberi arus (dalam keadaan ON). Bila arus pada D1 diputus (OFF) dan D3 diberi arus (ON), motor stepper akan bergerak satu langkah searah dengan putaran jarum jam. Bila arus pada D1 ditutup dan D2 diberi arus, motor stepper bergerak lagi satu langkah searah putaran jaruim jam. Demikian seterusnya, motor stepper dapat digerakkan langkah per langkah searah putaran jam.
Pengubahan kombinasi arus fase adalah untuk menggerakkan motor stepper dengan langkah penuh (full-step). Gerakan motor dapat diperhalus dengan menggerakkannya setengah-setengah langkah. Hal ini dilakukan dengan mengubah arus fase motor sesuai dengan urutan yang ditunjukkan oleh Tabel 3. Urutan gerak dari langkah pertama, kedua, ketiga, dan seterusnya akan menghasilkan gerakan separuh langkah searah jarum jam; sebaliknya akan menghasilkan gerakan yang berlawanan dengan arah putaran jam.
Bahan dan Peralatan
Konektor DB-25 (jantan) 1 buah Motor stepper 1 buah
Resistor 330 ohm 4 buah LED 4 buah
Kabel data 4 potong Dioda 1N4000 4 buah Transistor 4 buah IC 74LS06 1 buah Komputer 1 unit Catu daya +12V 1 unit
CW W
SEMESTER - 5A Rangkaian Interface
Gambar 7 Rangkaian pengendali motor stepper Prosedur
1. Rangkai peralatan sesuai dengan Gambar 7.
2. Hidupkan komputer dan jalankan software Visual Basic 6.0.
3. Hubungkan konektor DB-25 jantan ke konektor DB-25 betina pada komputer. 4. Tulis program sesuai dengan tugas yang diberikan.
5. Jalankan program.
6. Periksa hasil program terhadap rangkaian interface yang dipasang. Jika tidak sesuai dengan hasil yang diinginkan, edit kembali program, kemudian ulangi langkah 5 dan 6.
7. Selesai. Tugas
1. Buatlah program untuk mengendalikan motor stepper sehingga motor stepper dapat berputar CW 1 kali
dapat berputar CCW 1 kali dapat berputar CW n kali dapat berputar CCW n kali
dapat berputar CW menurut besar sudut yang diinginkan dapat berputar CCW menurut besar sudut yang diinginkan
2. Buatlah program sehingga motor stepper dapat berputar dan berhenti secara interaktif menurut perintah yang diinginkan.
LSITING PROGRAM DAN ANALISA PROGRAM
Private Declare Sub PortOut Lib "IO.DLL" (ByVal PortNo As Integer, ByVal Data As Byte) Private Declare Function PortIn Lib "IO.DLL" (ByVal PortNo As Integer) As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Inisialisasi port parelell dan sleep (delay)
Private Sub Command1_Click() ‘Berputar 1 putaran Dim Data(4) As Byte deklarasis data sebagai byte
Dim I,j As Byte deklarasi I dan j sebagai byte
Data(1) =9: Data(1) =12: Data(1) =6: Data(1) =3 Do
DoEvents
For j=1 to 50 looping sebanyak 50 kali
For i=1 to 4 looping sebanyak 4 kali
PortOut &H378,Data(i) memutar motor stepper searah jarum jam CW
Sleep 1000 delay
Next Next Loop
PortOut &H378,0 kirim data low ke semua portOut
End Sub
Kesimpulan
1.Motor stepper dapat digunakan dalam aplikasi penggerak (actuator)
2.Motor stepper dapat digunakan dalam beberapa langkah yaitu full step dan half step
3.Besar sudut motor stepper juga dapat diatur dengan penyesuaian pemberian data
SEMESTER - 5A
LEMBAR PENILAIAN
No. Percobaan : 04/Lab. Aplikasi Komputer/EK-5A/2011
Judul Percobaan : MODUL PENGENDALI LAMPU PIJAR
Kelompok : V (lima)
Nama Kelompok : 1. AHMAD SYAHRI
2. MAILIA SYAFITRI 3. RENHARD F SINAGA 4. HENDRIANTO MANURUNG 5. MIKHAEL NAIBAHO 5. YUSTIGA HUTABARAT Kelas : EK – 5 A Tanggal Percobaan :
Tanggal penyerahan : 04 Januari 2011
Instruktur : AHMAD YANI, ST
Nilai :
MODUL PENGENDALI LAMPU PIJAR
Tujuan
Setelah menyelesaikan modul ini mahasiswa diharapkan :
mampu membuat rangkaian interface pengendali lampu pijar.
mampu membuat program komputer untuk mengendalikan lampu pijar. Teori Dasar
Untuk mengendalikan peralatan listrik rumah tangga, misalnya lampu pijar, kipas angin, dan sebagainya, yang membutuhkan catu daya yang berbeda dengan tingkat tegangan TTL, maka perlu dibuat rangkaian driver untuk peralatan yang bersangkutan. Untuk lampu pijar, misalnya, dapat digunakan relay yang diaktifkan dengan transistor. Rangkaian untuk aplikasi ini dapat dilihat pada Gambar 6.
Bahan dan Peralatan
Konektor DB-25 (jantan) 1 buah
Lampu pijar 4 buah
Resistor 1K 16 buah
Kabel data 4 potong
Relay 4 buah
Dioda 4 buah
Transistor NPN 4 buah
Komputer 1 unit
Catu daya +12V 1 unit Rangkaian Interface
SEMESTER - 5A Prosedur
1. Rangkai peralatan sesuai dengan Gambar 6.
2. Hidupkan komputer dan jalankan software Visual Basic 6.0.
3. Hubungkan konektor DB-25 jantan ke konektor DB-25 betina pada komputer. 4. Tulis program sesuai dengan tugas yang diberikan.
5. Jalankan program.
6. Periksa hasil program terhadap rangkaian interface yang dipasang. Jika tidak sesuai dengan hasil yang diinginkan, edit kembali program, kemudian ulangi langkah 5 dan 6.
7. Selesai. Tugas
1. Buatlah program yang memiliki kemampuan berikut:
dapat menghidupkan semua lampu
dapat mematikan semua lampu
dapat menghidupkan lampu secara bergiliran
2. Buatlah program yang dapat menghidupkan semua lampu secara berkedip-kedip
3. Buatlah program yang dapat menghidupkan dan mematikan satu atau beberapa lampu yang diinginkan.
LISTING PROGRAM DAN ANALISA PROGRAM
Private Declare Sub PortOut Lib "IO.DLL" (ByVal PortNo As Integer, ByVal Data As Byte) Private Declare Function PortIn Lib "IO.DLL" (ByVal PortNo As Integer) As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Inisialisasi prot parallel dan delay (Sleep)
Private Sub Command1_Click() 'Hidupkan semua Lampu
PortOut &H378, &HFF mengirimkan data high (1) ke port data 2,3,4,dan 5 sehingga semua lampu menjadi hidup
End Sub
Private Sub Command2_Click() 'Matikan semua Lampu
PortOut &H378, &H0 mengirimkan data low (0) ke port data 2,3,4, dan 5 sehingga lampu mati
End Sub
Private Sub Command3_Click() 'Hidupkan Lampu melingkar Do
For i = 0 To 3 pengulangan sampai 4 x
DoEvents
PortOut &H378, 2 ^ I keluaran data 0,2,4,dan 8
Sleep 1000 tunda 1 ms
Next Loop
PortOut &H378, 0 matikan lampu setelah pengulangan 4 x
End Sub
Private Sub Command4_Click() 'Hidupkan Lampu memantul Do
DoEvents
For i = 0 To 3 looping sebanyak 4 kali
DoEvents untuk mengatasi masalah error pada saat program dijalankan
PortOut &H378, 2 ^ I Membuat lampu pijar berputar ke kanan
Sleep 1000 delay 1ms
Next
For i = 2 To 1 Step -1 looping sebanyak 3 kali hitungan mundur
DoEvents
PortOut &H378, 2 ^ I membuat lampu pijar kembali bergeser Namaun ke kiri
Sleep 1000 delay
Next Loop
PortOut &H378, 0 End Sub
Private Sub Command5_Click() 'Lampu berkedip terus Do
DoEvents
PortOut &H378, &HFF hidupkan semua lampu pijar
Sleep 200 delay
PortOut &H378, 0 matikan lampu pijar
SEMESTER - 5A KESIMPULAN
1.Dengan mengirimkan data high ke port data maka lampu pijar akan hidup dan sebaliknya
2.Penggunaan relay sebagai switch mengakibatkan timbulnya bunyi (tak), untuk menghindari suara tersebut dapat digunakan optocopler atau infrared.