Jumat, 10 April 2015

Menyalakan dan Mematikan Lampu Melalui PC

Komponen yang dibutuhkan :
a.DB25 male
    b.8 buah LED (silahkan pilih warnanya sendiri)
    c.Resistor 470 ohm ½ watt 5%
    d.1-2 meter kabel
    e.Solder (kalo belum punya)
    f.AVO Meter (kalo belum punya)
    g.Timah
   Buat sesuai rangkaian dibawah ini:

Semua resistor adalah 470 ohm. Jadi pin 2-9 dari DB25 (no pin keliatan dari bagian belakang soket DB25) dihubungkan dengan LED lewat resistor, katoda LED (negatif) semuanya dihubungkan dengan PIN 25 (Pin 20-25 adalah Ground). Jangan lupa:
- Resistor boleh terbalik
- LED tidak boleh terbalik, kaki yang pendek adalah negatif / Katoda
Terus diapain? Matikan komputer dulu, termasuk powernya (biar enggak nyetrum), colokin ke paralel Port bagian belakang dari PC. Yakinkan enggak ada yang short antara resistor, LED dengan casing PC. Kemudian nyalakan lagi komputernya. Mungkin LED akan menyala atau mati semua... tidak masalah.

Pemrograman
Sayangnya XP/NT tidak mengijinkan akses port langsung, jadi agak berabe sih, tapi ada solusinya kok, silahkan download file kecil dari:
http://www.beyondlogic.org/porttalk/porttalk.htm
filenamenya porttalk22.zip
Bahasa pemrogramannya pake delphi 7.0 aja ya, kalo mau yang laen, tentu saja bisa, dasarnya pasti sama. Sekarang, silahkan jalankan Delphi 7.0 nya.

1. Bikin form seperti dibawah ini dengan 2 buah control:Edit1 dan Command1


2. Terus ini listing softwarenya:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure outb(Value: Byte);
function inb: Byte;

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.outb(Value: Byte);
begin
asm
mov al, Value
mov dx, $378
out dx, al
end
end;

function TForm1.inb: Byte;
begin
asm
mov dx, $379
in al, dx
mov @result, al
end
end;


procedure TForm1.Button1Click(Sender: TObject);
var pport:byte;
begin
pport:=strtoint(edit1.Text);
outb(pport);


end;

end.

Jangan di run dulu!, tapi compile aja sebagai Project1.exe

3. Simpan file allowIO.exe ke folder yang ada file .exe software diatas.
4. Bikin file project.bat yang isinya satu baris:

allowio project1.exe
simpan file bat tersebut di folder yang ada allowIO.exe, dan file Project1.exe program diatas.

5. Copykan porttalk.sys ke folder X:\Windows\System32\drivers

6. Jalankan porttalk.reg untuk mengupdate registry.

Catatan:
File allowIO.exe, porttalk.reg dan porttalk.sys ada di porttalk22.zip

Nah, sekarang baru jalankan file bat tersebut (project.bat).

7. Coba isi angka 1 pada textbox, kemudian tekan tombol “Kirim ke Paralel Port”
8. Apa yang terjadi dengan LED? Seharusnya led yang terhubung dengan Pin 2 DB25 menyala. Kalo enggak ya.... ada yang belum beres... Cek lagi rangkaian LED nya.
9. Sekarang, coba isi dengan angka 128, kemudian tekan tombolnya lagi.
Seharusnya led ke 8 menyala.
10. Coba isi dengan 129.... Dan..... led ke 1 dan led ke 8 menyala.
Mudan2an dari eksperimen diatas anda sudah bisa menarik kesimpulan dan menarik hubungan antara angka yang diisikan dan led yang menyala.

Keterangannya begini:
1. Coba jalankan software calculator di Accessories.
2. Pilih View – Scientific
3. Pilih Dec (desimal, maksudnya)
4. Isi angka 129 di kalkulatornya
5. Pilih Bin (Biner)
6. Angka yang keluar adalah 10000001

Sama kan dengan urutan LED yang menyala? Led yang menyala adalah LED ke 1 dan ke 8, karena pada bilangan biner untuk 129 adalah 10000001.

Tidak ada komentar:

Posting Komentar