Minggu, 03 Agustus 2008

Dasar:Kontrol ON/OFF memakai PC

Dalam dunia digital, apapun dinyatakan dalam SATU (HIGH) dan NOL (LOW). Lha? Gimana caranya komputer bisa ngitung rumus2 yang rumit hanya modal SATU dan NOL? Ya iya, gak bisa apa2 kalo cuman sebuah SATU atau NOL, tapi kalo dikumpul-kumpulin kan bisa banyak juga.... (Kayak gen manusia yang dasarnya adalah A (Adenin-T (Thymin)-G (Guanin)-S (Sitosin) seperti waktu dipelajari di SMA, tapi kan kalo A-T-G-S nya panjaaaaaaang... bisa bikin semua mahluk berbeda-beda) Teu nyambung nya? nyambung sih.... dikit... Ya... itung2 mengingat pelajaran SMA.
Begitu juga dengan digital. SATU dan NOL disebut dengan BIT. 8 buah BIT jadi BYTE. 2 BYTE jadi WORD, dan seterusnya.
Hmm.... jadi apa yang bisa direpresentasikan oleh 1 BIT?
Ya hanya dua keadaan, SATU atau NOL, HIGH atau LOW, HIDUP atau MATI, TIDUR atau BANGUN, dst...
Terus, kalo 1 BYTE?
Satu BYTE kan 8 bit nih, jadi kombinasinya bisa mulai dari 00000000 sampai 11111111, ditengah2nya ada 00010001, 01110101, dll... jadi jumlah keadaan yang bisa direpresentasikan oleh 1 BYTE adalah 256 keadaan, gak percaya? itung aja sendiri hehehe....
Oh iya saya lupa, ada yg lebih kecil dari byte, yaitu NIBBLE, yang isinya 4 bit, bisa merepresentasikan 16 keadaan.
Intinya, dengan memanipulasikan BANYAK satu dan nol diputer-puter, digeser-geser, dibolak-balik, kita bisa menikmati Internet, VCD, mesra-mesraan lewat chatting, dan lain-lain.
Ok, that’s introduction... Let’s start with the lesson!

Karena blog ini gak jauh-jauh dari urusan PC dan mikrokontroller, maka saya bahas yang ada hubungannya saja ya.
Jaman sekarang, anak SD sudah ada pendidikan komputer, that’s good! biar gak gaptek nantinya. Coba tanya anak SD, buat apa sih komputer itu? Jawabannya:
1.Buat ayah kerja
2.Buat ngetik
3.Buat maen game
4.Buat liat internet
5.Buat maen ragnarok (kumaha sih maen ragnarok teh?)
6.Buat bikin blog (anak SD ada yg bikin blog enggak ya?)
Tapi gak ada yang jawab: “Buat matiin dan nyalain lampu di rumah” Iya kan?
Nah, sekarang mari kita bikin komputer di rumah supaya bisa nyalain dan matiin lampu (lampu LED aja dulu ya? kalo lampu rumah takut kesetrum, tapi nanti Insya Allah akan saya bahas juga gimana cara kendali peralatan elektronik yang memakai tegangan tinggi).
Tapi, gimana caranya?
Dateng ke toko elektronik bawa duit sekitar 50rb, bilang beli komponen:
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
Bikin 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.

Got the idea?

Coba eksperimen dengan angka2 lain, tapi syaratnya harus dibawah 255, karena hanya 8 bit yang dipakai.

Mati/Nyala LED bisa dibayangkan sebagai MATI/NYALA lampu ruangan, MATI/NYALA pendingin ruangan, MATI/NYALA Mesin industri, MATI/NYALA lampu penerangan jalan, dll.... Pokonya semua hal yang terdiri dari 2 kondisi.

Nah, sekarang mari kita pikirkan apa yang kita diciptakan dengan sistem seperti diatas... Ngelamun dikit boleh kan?

Contoh 1:
Sang eksekutif muda kadang pulang jam 10 malem, kadang2 juga pulangnya sore hari, gak tentu pokonya mah. Kalo dia pulang malem, lampu taman belum dinyalakan, lampu teras belum dinyalakan, rumahnya jadi gelap gulita, sementara sang eksekutif muda hanya sendirian di rumahnya yang mewah...
Gimana caranya ya, saya pengen bisa nyalain lampu taman dan AC setengah jam sebelum pulang saat saya mau pulang dari kantor lewat SMS?
Solusi:
Beli GSM Modem, bikin rangkaian supaya lampu2 bisa dinyalakan sebagai pengganti LED (caranya dibahas pada posting lain), bikin software sederhana untuk membaca SMS dari GSM Modem dan mengirimkan perintah ke paralel port. Anda perlu memahami:
a. Komunikasi GSM Modem dengan PC memakai kabel data
b. AT Command untuk membaca SMS masuk dan mengirimkan SMS
c. Interfacing Power Electronics, yaitu desain antar muka antara PC dengan alat2 yang membutuhkan daya tinggi (AC/Lampu listrik, dll)
d. Pemrograman (Delphi, VB, dll...)

Contoh 2:
Intelligent Building System / Building Automation System adalah sistem kendali bangunan/gedung secara remote, pada dasarnya adalah sistem seperti ini, kita bisa menyalakan AC, mematikan Lampu yang tidak dibutuhkan, dan lain-lain hanya dengan mengklik pada komputer pengontrol dari pusat.

Artikel ini adalah pembahasan metoda agar sebuah PC dapat mengendalikan/mengontrol sesuatu. Artinya, PC memberikan OUTPUT. Kalo ada OUTPUT, biasanya ada INPUT kan? Nah, apa yang dimaksud dengan INPUT? Yaitu apabila PC/sistem menerima masukan dari luar untuk kemudian diproses. Contohnya:
1. Mengetahui adanya pintu yang terbuka
2. Mengetahui apakah tombol Bel ditekan
3. Mengetahui apakah Lampu menyala (Harap dibedakan dengan:Menyuruh lampu untuk menyala=OUTPUT)

Supaya PC bisa menerima INPUT, dibahas pada posting yang lain.

15 komentar:

Anonim mengatakan...

mas mo nanya...klo misal gk pke pemrograman2 bs p gk soalny sy gk bs bhs pemrograman sm sekali...
misal nih ky remote control tv,kita bs gunain itu apa gk untuk on off lmpu pke remote???klo bs gmn crny??

ini id YM & jg id email saya tlong mas saya bru krjain TA tp cri yg gmpang2...biar cpet selesai hehe...
tyo_n@yahoo.com add me y...

Ugly Duclin' mengatakan...

Sorry nih telat jawabnya... Soalnya saya bingung kok blogger ini gak ada notifikasi klo seseorang kasih comment hehehe...
Ya... kalo mikrokontroller sih kayaknya harus pake bahasa pemrograman ya, saya pikir C lebih mudah untuk dipelajari dibandingkan assembler.
Tapi untuk contoh kasus On/Off lampu pake remote, ada dijual dipasaran modul kecil pada modul tersebut sudah sepasang transmitter dan receivernya, kayaknya tinggal pake aja, kalo di transmitternya ditekan, di receiver ada tegangan. Tinggal hubungkan dengan relay aja.
Klo mau ngobrol2 lebih lanjut, imel aja ke rizakomara@gmail.com.

Anonim mengatakan...

Salam kenaL Mas.. saya mahasiswa yg lg ngerjain skripsi..
inti skripsi saya adalah "mengendalikan perangkat luar melalui port serial dengan vb 6.0.." contohnya seperti mengendalikan 8 buah led di port C AVR 8535 melalui visual basic 6.0 melalui port serial komputer..

Program di mikro AVR 8535 dan VB 6.0 nya gmn ya mas...???? saya bingung sekali...

Mohon bantuannya mas untuk dapat mengirimkan refrensi2 ttg skripsi saya tersebut...

ini email saya mas christman_1986@yahoo.com

faisal mengatakan...

salam kenal a'.

saya ical dari medan, saya udah buat program nyalakan lampu plip-plop dari paralel port, sekarang saya mau menghubungkan paralel ke relay, masalahnya relay yg tegangannya 3v gak ada, gimana caranya ya a'? Mohon pencerahannya ya...

thx b4 a'.

Ugly Duclin' mengatakan...

salam kenal juga mas ical, untuk menyalakan relay, bisa dilihat di postingan lain:

http://awasnyetrum.blogspot.com/2008/08/dasarinterfacing-power-electronic-dan.html

Ada rangkaian relay menggunakan satu transistor.

Anonim mengatakan...

sip bagus...

tapi saya ingin coba di laptop...selain pake paralel port bisa gak kang? misalnya USB..

Kang kalo matiin lampunya satu2 gimana? kalo di kasih 00000000 ntar mati semua...

hatur nuhun...
hiduplah orang sunda...

oecoep mengatakan...

Salam kenal Mas Mantab artikel sangat berguna Thanks

Ugly Duclin' mengatakan...

kang ipan,kang oecoep,
makasih atensinya... maaf saya jg jarang update blog ini, tp mudah2an bermanfaat.
Thanks,
riza

Kalem Brow mengatakan...

salam knal Gan

saya pemula hanya memeiliki dasar jaringan dan sedikit dasar program

yg saya tangkap berarti hanya 8 buah bola lampu yg bisa di control / bagaimana? jika lebih dari 8 misal 10 / 12 lampu mohon penjelasannya ?

Ugly Duclin' mengatakan...

@mas kalem,
Untuk paralel port, sebetulnya bisa lebih dari 8 output, karena ada control signal yg bisa dipakai juga (misal pin STROBE, dll.) tapi kalau mau lebih dari itu, bisa memakai multiplexer, dengan tambahan beberapa IC seperti 74LS574 dan 74LS138, bisa dibuat sampai 8x8 output.
Tks,
riza

Kalem Brow mengatakan...

buat mas-mas yang udah pro :

1. bagai mana jika buat sekolah teknologi dari mulai sd,smp,sma/smk dan perguruan tinggi.

dengan alasan :
1. memajukan indonesia bersama (untuk masa depan anak cucu kita).
2. masa depan yang lebih cerah (dapat bersaing dengan negara lain / nilai SDM kita naik juga di dunia).
3. solusi bersama.
4. kebahagiaan bersama (yang menimbulkan rasa bangga dengan apa yang kita ciptakan / perbuat semasa hidup )

contoh : anak tk jepang belajar merakit komponen robot dari mainan.

maaf buat mas-mas ini hanya ide untuk meningkatkan kualitas/nilai SDM anak indonesia dan indonesia berjaya ^-^.

Ugly Duclin' mengatakan...

mas kalem,
memang XP tidak mengijinkan akses ke Port langsung... oleh karena itu perlu program yg bisa meng-allow akses port, program ini bisa didownload di:
http://www.beyondlogic.org/porttalk/porttalk.htm

Cara pakainya ada di posting:
http://awasnyetrum.blogspot.com/2008/08/dasarkontrol-onoff-memakai-pc.html

thanks,

Ugly Duclin' mengatakan...

@mas kalem,
memang saya juga punya keinginan untuk mengenalkan robotika mulai tingkat dasar, hanya saja mungkin keterbatasan waktu, dan sumber daya yang belum bisa merealisasikannya... karena pengalaman saya di industri, banyak sekali yang bisa dilakukan bila kita memahami dengan baik konsep robotika ini.
silahkan apabila ada yang punya saran, ide atau apa pun, saya siap membantu sesuai kemampuan saya.
thanks,

Luthfi mengatakan...

mas tanya, kalau pararelnya pake kabel usb to pararrel bisa nggak ya?
trims infonya

anwar efendi hutasuhut mengatakan...

Ada update?