Sabtu, 27 Februari 2010

Error Pembacaan Jarak sensor PING

.
Sudah cukup lama si sekitar 2.5 tahun yang lalu..
Ketika saya sedang memprogram mobil robot peraba / pengikut dinding menggunakan metode Fuzzy.
Plan berikut adalah tugas akhir saya yaitu :
"Proyeksi posisi dinding menggunakan metode Fuzzy dgn Mobil Robot"
intinya :
Sebuah mobil robot dan perangkat komunikasi wireless dgn komputer yang akan berjalan pada ruangan labirin kemudian "memetakan" posisi dinding (apakah posisi dinding dikiri atau dikanan atau dikedua sisi mobil robot) sehingga pada komputer akan digambarkan secara Realtime bentuk ruangan yang dilalui mobil robot tersebut.

Dulu saya tidak mengenal wireless seperti Zigbee, RFM12B, RLP434 + TLP434, dsb sehingga wireless seadanya saja dan komunikasi berupa karakter singkat dengan jarak maksimum 8 meter. Wallhasil kurang maksimal.

Kali ini hanya fokus pada permasalahan pembacaan sensor PING-nya.

Catatan PayZ :
Mobil robot menggunakan 3 buah sensor PING yang berada pada posisi depan semua. 1 buah sensor tegak lurus menghadap ke depan berfungsi agar mobil robot tidak menabrak dinding didepannya, 1 buah sensor menghadap depan kiri dengan sudut 45° dan 1 buah sensor lg menghadap depan kanan dengan sudut 45°.
Posisi sensor ping pada mobil robot seperti berikut.
Setelah sudah di program semua...lalu Test Drive..
Set point jarak yang diinginkan antara sensor PING dengan dinding adalah 24 cm - 26 cm, dan karena sensor PING miring 45° terhadap dinding sehingga jaraknya bisa mendekati 18cm - 22 cm. Anehnya mengapa kadang-kadang bisa lebih dekat dari 13 cm bahkan kurang.
Bingung..bingung..bingung...

Awalnya kupikir porgram Fuzzy-nya salah sehingga Crisp output Fuzzy-nya salah. Dan untuk mengurangi kesalahan, mobil robot di program, koneksi komputer via port COM dengan kabel (Ban tidak menapak), dan proses Fuzzy-nya ditampilkan di komputer pada HyperTerminal atau CoViAVR.

Simulasi dinding menggunakan telapak tangan yang didekatkan dengan sensor PING dan hasil yang ditampilkan di komputer semuanya benar dari Set Point, Jarak Aktual, Error, DError, ufError (derajat keanggotaan error 1 hingga 5), ufdError (derajat keanggotaan delta error 1 hingga 5), output Fuzzy Rule, Num, Denum, dan Crisp sudah benar semua.
Lalu apa.. apaaaa... (lebay).














Lama...lama...lama... istirahat.. lama.. lama.. lama..
Suatu saat, Uji coba lagi ah tapi kali ini simulasi tidak menggunakan tangan tetapi menggunakan Styrofoam sebagai simulasi dinding (labirinnya memang menggunakan Styrofoam sebagai dinding).
Styrofoam saya gerakkan pelan-pelan terhadap sensor PING dan hal mengejutkan ternyata tampak (alah) yaitu ketika pembacaan sensor PING sebagai berikut :
23 cm
24 cm
25 cm
26 cm
300 cm
300 cm
26 cm
25 cm

Mengapa setelah 26 bukannnya 27 melainkan 300 dan memang dalam program saya batasi nilai maksimum adalah 300 (dan ini kesalahan harusnya batasi 30 saja). Nilai error 300 inilah yang menyebabkan Mobil robot bergerak cepat mendekati dinding karena mobil robot "pikir dia sangat jauh dari dinding" sehingga terkadang mobil robot terlalu dekat dengan dinding.
Setelah dianalisa lalu diketahui bahwa pada sudut-sudut tertentu yaitu sudut pancaran ultrasonik terhadap dinding Styrofoam, kadang sinyal ultrasonik yang dipancarkan oleh pemancar tidak diterima oleh penerima karena Styrofoam / dinding memantulkan suara ultrasonik tersebut ke arah lain yang tidak mengenai sensor penerima.
Solusinya yaitu dengan menambahkan sensor PING untuk pembacaan yang lebih baik atau dengan mengatur secara manual posisi sudut sensor PING terhadap dinding sehingga didapatkan pembacaan jarak yang lebih baik..

Saya lebih suka cara kedua.. hemat...

Problem Solved.... (",)v

Jumat, 26 Februari 2010

Sensor Suhu Termocouple

.
Suatu saat ada yang minta tolong untuk diprogramkan (dan sedikit hardware) untuk Perangkat Pembakar Sampah menggunakan metode Kontrol Fuzzy dan Kontrol PI karena memang 1 alat ini dikerjakan oleh 2 orang dengan metode yang berbeda (biar boleh dijadikan TA).

Sedikit kesulitan pada coding adalah "Bagaimana menggabungkan 2 buah metode dalam satu program" sehingga si pengguna dapat memilih metode FUZZY atau metode Kontrol PI cukup dengan menekan tombol berdasarkan menu yang ditampilkan di layar LCD 16x2 dan tidak perlu mendownload program ke dalam MCU lagi.

Metode Fuzzy dengan 5 kelas derajat keanggotaan dan 25 buah Rule di tambah dengan metode kontrol PI menggunakan Mikrokontroller ATmega8535 menghabiskan total memori hingga 85%.

Kali ini tidak saya bahas lengkap tetapi fokus ke karakteristik driver + sensor termocouple.
Harga sensornya relatif murah yaitu Rp 20.000,- dan berikut gambar sensor Termocouple yang digunakan :











Catatan PayZ :
Driver sensor termocouple menggunakan IC AD595 buatan Analog Device. Ketika sedang uji coba driver + sensor termocouple, agar suhu cepat mencapai 100° hingga 150° Celcius saya menggunakan Solder.
Sudah cukup lama solder menempel pada sensor termocouple tetapi suhu yang baru di capai maksimum 80° C dan kemudian suhu turun kembali hingga 65° C.

Aneh..aneh... kenapa bisa begitu.
Awalnya kupikir sensor termocouplenya rusak karena si perancang hardware dulunya memotong dan mengupas kabelnya sehingga tidak diketahui terminal biru dan terminal merah selain itu kondisi kabel termocouple yang sudah tertekuk-tekuk yang menurutku bisa memungkinkan kabel didalamnya putus (patah).

Mengurangi kesalahan, terminal termocouple yang terhubung pada IC AD595 saya bolak balik tetapi datanya tetap error. Kemudian di cek menggunakan multimeter antar terminal tetapi tetap terhubung yang artinya kabel tidak putus.

Akhirnya biar tidak pusing, diputuskan beli sensor baru (toh murah n skalian buat jaga-jaga).
Saya tambah bingung, datanya memang lebih baik dari sebelumnya tetapi suhunya tidak lebih dari 90° padahal Solder sudah sangat panas.

Oiya saya ingat, biasanya jika sedang menyolder komponen LED, entah mengapa LED-nya bisa menyala sendiri meskipun redup padahal supply-nya tidak terhubung. Berarti LED tersebut memperoleh tegangan dan arus dari Solder tersebut.
Dari sinilah berarti IC AD595 memperoleh tegangan dan arus dari Solder sehingga mengacaukan pembacaan sensor termocouple.

Kemudian saya coba lagi menggunakan lilin yang lumayan besar agar apinya besar) dan...
Wallaa......
Suhu mencapai 110° C dan naikknya bertahap serta tidak mengalami penurunan kembali...

Problem Solved.... (",)v

Kamis, 25 Februari 2010

Servo Part III : Antara Torsi dan Kecepatan

.
Baca dulu :
Servo Part I : Kontrol Motor Servo
Servo Part II : Timing (Waktu) dan Sudut Servo

3. Torsi VS Speed (Kecepatan)
Seperti diketahui sebelumnya bahwa motor servo posisi akan bergerak pada posisi sudut tertentu berdasarkan lebar sinyal kontrol yang diberikan pada pin sinyal. Dan Beberapa motor servo memiliki torsi yang cukup besar dengan kecepatan yang relatif cepat (bahkan sangat cepat).
Beberapa motor servo justru menimbulkan masalah ketika digunakan untuk menggerakkan beban berat, memiliki pergerakan yang relatif cepat akan tetapi menggunakan gearbox plastik.

Misalkan :
Spesifikasi motor Servo memiliki torsi yang mampu mengangkat beban 4 Kg, kecepatan 60° / 0.18 Sec dan menggunakan gearbox plastik.
Motor servo tersebut bisa mengalami kerusakan yang umumnya gearbox plastik yang aus karena terjadi sentakan yang kuat pada gearbox tersebut karena kecepatan perubahan sudut yang relatif tinggi dan menggangkat beban mendekati batas maksimum motor servo tersebut.

Cara mengatasinya ada 2 cara yaitu :
  1. Cara mekanis yaitu dengan menggunakan Motor servo yang menggunakan gearbox metal yang pastinya lebih mahal atau menggunakan gearbox tambahan untuk mengurangi kerusakan (..dan lain-lain..) yang sangat tidak praktis serta memperbesar rangkaian.
  2. Mengurangi kecepatan perubahan motor servo melalui Coding, dan tentu saja cara ini menjadi pilihan peraktis dan mudah.
Saya hanya membahas cara ke-2 saja..
Ide dasar memperlambat pergerakan motor servo yaitu dengan menambah sudut motor servo secara perlahan-lahan dan memberikan waktu delay antar perubahan sudut terserbut.

Misalkan perubahan sudut dari 0° ke sudut 180° maka sebenarnya yang terjadi adalah sudut berubah setiap saat dari
0° (delay_ms(10)), 1° (delay_ms(10)), 2° (delay_ms(10))... ,179° (delay_ms(10)), 180°.

Atau bisa saja biar lebih cepat dari
0° (delay_ms(30)), 10° (delay_ms(30)), 20° (delay_ms(30)), 30° (delay_ms(30)),... , 180°.


Coding + Video.....
Otw..
;)

Senin, 22 Februari 2010

Servo Part II : Timing (Waktu) dan Sudut Servo

.
Baca dulu :
Servo Part I : Kontrol Motor Servo

2. Menentukan Perbandingan Waktu dgn Sudut
Beberapa servo yang presisi (yang mahal), menggunakan komponen-komponen dan sensor potensiometer yang linier dan akurat selain itu disertai datasheet lengkap yang sangat membantu untuk memprogram motor servo tersebut.
Tetapi beberapa servo tidak disertai datasheet dan programmer tidak mengetahui diagram timing untuk penggunaan servo tersebut, sehingga menggunakan cara masing-masing untuk memprogram servo tersebut.

Spesifikasi motor servo yang akan saya bahas adalah motor servo 180°, akan tetapi kenyataannya motor servo memiliki sudut putar lebih dari 180° (Servo yang saya pakai) dan ini merupakan keuntungan.

Langkah-langkah menentukan sudut Motor Servo:
  • Siapkan penggaris busur (pengaris sudut).
  • Ambil nilai waktu awal terkecil dan jadikan sebagai sudut 0°, Saya ambil 500 μS.
  • Nilai 500 μS didapat dengan cara dicoba langsung untuk menggerakkan servo. Berikan nilai 500 μS dan lihat posisi servo, lalu program untuk 480 μS atau 450 μS, jika servo bergerak pada nilai tersebut berarti nilai 500 μS bisa dijadikan patokan 0° tetapi jika tidak bergerak (servo mentok sejak awal) tambah nilainya menjadi 550 μS atau 600 μS. Saya anggap pada nilai 500 μS menjadi patokan 0°.
  • Program motor servo dengan waktu yang variasi sehingga ditemukan sudut 180° dari sudut awal 0° (500 μS). Coba nilai 2000 μS, 2500 μS, dst. Pada servo yang saya gunakan, sudut 180° pada waktu 1980 μS.
  • Sehingga di dapat 500 μS = 0° dan 1980 μS = 180° maka (1980 - 500) / 180 = 8,2222 μS. Artinya bertambah sudut = bertambah waktu 8,2222 μS.
  • Misal : sudut tujuan = 35° berarti waktu yang dibutuhkan Servo ON = 500 μS + (35 x 8.2222 μS) = 787.777 μS lalu Servo OFF.
  • Coba coding untuk variasi sudut-sudut tertentu dan catat linearitasnya. Jika telah sesuai dan linear maka waktu untuk menentukan sudut servo telah ditemukan, sebaliknya jika tidak linear (toleransi error terlalu besar) maka silahkan coba-coba lagi.
Gambar disamping adalah hasil dari percobaan tersebut.
Dan hasil dari menentukan perbandingan waktu dengan sudut motor Servo.

Setelah dicoba timing diganti-ganti, saya simpulkan beberapa hal (silahkan coba dulu dan simpulkan sendiri ^_^ ).
  1. Umumnya timing motor servo adalah 20 mS (sebaiknya lihat datasheet motor servo tersebut) ini adalah waktu periode total saat servo ON dan servo OFF.
  2. Jika motor servo tidak diberikan sinyal kontrol secara terus-menerus maka motor servo akan kehilangan torsinya.
  3. Jika periode motor servo 20 mS maka sebelum mencapai waktu 20 mS, sebaiknya jangan memberikan sinyal kontrol ke motor servo dan menunggu agar motor servo "siap" menerima sinyal selanjutnya.
  4. Dan jika periode motor servo 20 mS maka untuk menjaga torsi motor servo dan meminimalkan waktu eksekusi program sebaiknya total delay saat servo On, servo Off, lalu servo ON adalah 20 mS. Misal spesifikasi periode motor servo 20 mS kemudian total delay periode motor servo 25 mS maka 5 mS tersebut motor servo tidak memiliki torsi.
  5. Dari point 4 dan 5 jika ragu-ragu sedangkan sistem tidak membutuhkan kecepatan eksekusi yang tinggi maka lebih baik menambah sedikit periode sinyal kontrol dibandingkan menguranginya.
....To Be Continue Part III....

Minggu, 21 Februari 2010

Servo Part I : Kontrol Motor Servo

.
Seperti yang saya jelaskan sebelumnya bahwa di tutorial internet yang anda dapatkan dari googling mengenai cara mengendalikan motor servo, akan tampak bahwa terdapat perbedaan diagram pewaktuan untuk mengendalikan motor servo. Seperti gambar berikut.









Jika anda merancang alat yang membutuhkan pengaturan sudut yang presisi maka harus mencari nilai waktu pengendalian motor servo yang tepat dan ini agak sulit, sehingga saya hanya akan memaparkan cara praktis mencari nilai waktu pada motor servo.

Langkah-langkah merancang kendali Motor Servo

1. Membaca Spesifikasi Motor Servo
Sederhana tapi penting (bangeet...).
Biasa teman-teman langsung melakukan Coding untuk mencari nilai waktu motor servo, cara mengendalikan, dan langsung mengimplementasikan ke sistem (padahal saya juga begitu ...v^^'...). Misalkan data spesifikasi motor servo seperti ini :
- Supply Voltage: 4.8- 6.0V
- Standard servo motor
- Kecepatan: 0,18sec/60° @6V
- Torsi: 4kg/cm @6V
- Dimensi: 39.5x20x39.6mm
- Berat: 41 gram
- Sudut 180°

Untuk coding cukup lihat Kecepatan dan Sudut motor servonya. dari informasi tersebut yaitu kecepatan 0.18 sec/60° dan sudut 180°. Informasi yang bisa diolah yaitu.
  • Sudut maksimum motor servo 180°.
  • Kecepatan : 0,18sec/60°.
  • waktu 0°-180° =>> 0.18 sec * 3 = 0.54 sec = 540 miliSecond.
  • Asumsi lebar pulsa sinyal kontrol maksimum 20 ms.
  • Looping kontrol = 540 mS / 20 ms = 27 kali looping.
Keempat data diatas berguna untuk Coding seperti contoh disamping.



Yang paling berguna dari informasi diatas yaitu menemukan nilai looping, dengan menemukan nilai looping yang tepat maka motor servo akan mencapai sudut tersebut dengan segera, tepat, dan dengan waktu yang mininum.
Misalkan anda coding untuk menuju sudut 180° dari posisi 0° ,jika Looping terlalu cepat motor servo akan berhenti sebelum mencapai sudut 180°. Dan jika looping terlalu lama maka akan menambah waktu tundaan untuk eksekusi program keseluruhan.

Tentu saja ada cara yang lebih tepat dibanding cara diatas yaitu dengan menghitung nilai looping untuk setiap sudut dan nilai ini berupa program tertanam di MCU. Seperti berikut (berdasarkan spesifikasi diatas) :
  • Kecepatan = 0,18sec/60° atau 180 mS / 60°, sehingga 1° = 3 mS
  • Asumsi lebar pulsa sinyal kontrol maksimum 20 ms.

.......To Be Continue di part II

Servo : Introduction Motor Servo

.

Banyak pengertian motor servo dan kalo bingung tinggal tanya om google atu mbak wiki. Pada umumnya Motor servo adalah motor DC yang memiliki feed back loop yaitu perangkat (motor DC) otomatis yang menggunakan umpan balik sensor untuk memperbaiki mekanisme posisi-nya. Sensor umpan balik yang digunakan pada motor servo umumnya berupa potensiometer.

Suatu saat saya ditanya
T: "Mas, di TA saya pada sistem ini, motor servo itu close loop atau open loop..?"
J : "Kalo dari sistem / plan alatmu berarti open loop (tidak ada umpan balik) tapi kalau dilihat dari hanya motor servonya saja berarti close loop."
T: "Lho gimana maksudnya tuh..?"
J: "Motor servo kan ada sensor potensiometernya sebagai umpan balik pengaturan posisi sudut motor servonya, makanya kalo dilihat dari segi motor servo berarti close loop."
J: "Tapi motor servo posisinya tepat 50°, 90°, atau 180° sistemmu kan tidak tahu, karena tahunya hanya memberikan sinyal kontrol tanpa perlu tahu sudutnya sudah benar atau tidak dan jika servonya rusak dan sudutnya terjadi error sistemmu tidak tahu dan dianggap tidak ada error makanya dilihat dari alat (sistem)-mu open loop."

Gambar disamping adalah diagram blok pada motor servo.

Beberapa link tentang motor servo :
www.brookshiresoftware.com
www.pc-control.co.uk




Intro Kontrol Motor Servo









Pengendalian motor servo menggunakan pewaktuan atau frekuensi.
Jika anda googling akan tampak seperti diatas yaitu banyaknya literatur yang memiliki diagram pewaktuan motor servo yang berbeda-beda. Padahal setiap tipe motor servo yang berbeda memiliki keakurasian dan pewaktuan yang berbeda.
Oleh sebab itu pengendalian motor servo yang akan saya utarakan adalah pengendalian motor servo dengan pewaktuan anda sendiri yaitu anda yang mendefinisikan waktunya.
Penyebutan sudut motor servo juga berbeda-beda tergantung sistem yang akan dikendalikan. Ada yang menyebut 0° - 180° ada juga yang menyebut -90°, 0°, +90° derajat.

Mengendalikan motor servo ada 3 cara (yang kutemukan) :
  1. Menggunakan delay atau tundaan.
  2. Menggunakan Timer / Counter.
  3. Menggunakan PWM.
Tetapi akan saya bahas hanya menggunakan delay / tundaan saja pada post selanjutnya.

Rabu, 10 Februari 2010

DVM : Rangkaian Skematik

.
Time : Januari - Februari 2010.
Project : Digital Voltmeter.

Download Project Voltmeter Digital

Berikut gambar rangkaian skematik DVM-nya

Rangkaian pada gambar adalah prototype voltmeter untuk memperoleh hasil yang maksimal dengan cara sederhana sehingga rangkaian terkesan rumit dan terdapat komponen tambahan. Seperti yang dijelaskan berikut ini.


Op Amp LF351
Pada rangkaian saya membuat 4 buah rangkaian Op Amp menggunakan IC LF351, alasannya yaitu agar input tegangan yang berkisar pada satuan miliVolt atau bernilai kecil dapat terukur.
Saya menggunakan beberapa Op Amp dan dengan cara coba-coba (maap cara praktis ...v^^'...) agar didapat penguatan yang berbeda untuk memperoleh hasil yang tepat atau terbaik. Selain itu agar nilai penguatan dapat dipilih-pilih sesuai keinginan menggunakan DIP switch (bisa juga menggunakan switch tipe lain ex : rotari switch).
Lebih tepatnya saya sedang ujicoba dengan Op Amp, dan ternyata baru tahu kalo ada tipe IC yang bagus untuk skala miliVolt dan biasa di pakai di strain gauge.
Sebenarnya bisa juga menggunakan Variabel Resistor seperti cermet tapi karena ingin mencoba dengan nilai resistor tetap.

UART TTL-UART RS232 / UART TTL- USB Interface
Seperti yang saya jelaskan sebelumnya, pada rangkaian juga saya menyediakan rangkaian konverter TTL-RS232 menggunakan IC MAX232 dan juga konverter UART -USB menggunakan IC FT232RL, karena ingin mencoba interface dengan USB.
(sampai sekarang belum di tes USB-nya masih menggunakan port COM => agak sibuk kk...^^...)

Port DB9F PCB
Perhatikan pada DB9F PCB yang berarti menggunakan konektor DB9 female yang rangkaian pada umumnya menggunakan DB9M PCB (male), alasan menggunakan Female adalah agar dapat dikoneksikan secara langsung dengan konverter RS232-USB menggunakan kabel konverter yang tersedia dipasaran, seperti gambar berikut.

Karena menggunakan DB9 Female jika anda menggunakan kabel serial sendiri maka perhatikan koneksi RX dan TX yang terhubung ke port COM komputer.

Awalnya saya juga salah memasang kabel serial yang saya buat sendiri.
Koneksi kabel antara lain RX, TX, dan GND, jika menggunakan DB9M PCB maka RX dan TX posisinya disilang sebaliknya untuk DB9F tidak disilang RX dan TX-nya.

Sebaiknya langsung coba saja dikomputer dengan program Hyperterminal, jika tidak ada tampilan coba di balik kabel RX dan TX-nya yang penting GND-nya sudah benar.

Power Supply
Modul Voltmeter Digital ini memiliki fungsi Stand Alone yang akan disupply menggunakan baterai 9 Volt DC sehingga agar baterai lebih tahan lama dan awet digunakan Power Supply dengan LM78L05. Regulator LM78L05 memiliki arus maksimum 100 mA sehingga saya paralel 2 buah dan keluaran arus bisa mencapai 200 mA.
Jika menggunakan LM78L05, memang arusnya mencapai 1,5 Ampere tetapi juga butuh konsumsi arus dan tegangan yang cukup besar dan baterai bisa lebih cepat habis.

Setelah menimbang memilih dan menyederhanakan berikut rangkaian sederhananya

Demikian, kurang lebih maap..
Semoga membantu... ;)

Senin, 08 Februari 2010

DVM : Introduction to My Voltmeter Digital

.
Time : Januari - Februari 2010.
Project : Digital Voltmeter.

Download Project Voltmeter Digital











Spesifikasi Voltmeter Digital :
  • Dimensi 11 x 8.5 x 3
  • Supply 9Vdc - 12Vdc (adaptor terpisah)
  • Mikrokontroller ATmega8535 Xtall 11.059200 MHz
  • ADC 10 bit frekuensi 86.400 KHz
  • Input 4 buah Push button NO (Normally Open)
  • Interface Serial 9600,8N1
  • USB interface dengan IC FT232RL
Fungsi dan fitur :
  • Mengukur Voltmeter secara Real Time.
  • Mengukur arus secara perhitungan.
  • Memiliki 3 Mode kerja Stand Alone, Komputer Interface, dan MCU Memory.
  • Mengirim data tegangan terukur ke komputer dan ditampikan pada grafik.
  • Mengukur secara Stand Alone dan memiliki mode AutoSave setiap 500mS, yaitu setiap 500mS (porgrammable) secara otomatis menyimpan data di EEPROM MCU hingga 256 data pengukuran tetapi bisa juga tanpa menggunakan AutoSave (optional).
  • Membaca Memory hasil pengukuran (offline) dan memberikannya ke komputer agar dapat ditampilkan berupa grafik, Excel, Teks, dsb.
  • Terdapat fungsi HELP setiap penggunaan alat sehingga mempermudah bagi pemula untuk menggunakan alat ini.
Masalah :
  • Tegangan yang terukur adalah tegangan AC dan sangat besar hingga 4kVolt = 4000 Volt.
  • Ketika probe pengukuran diambangkan, nilai tegangan terukur harus menunjukkan 0 Volt.
  • Sampling data cukup banyak (lebih dari 256 data) sehingga untuk menggunakan EEPROM internal ATmega8535 tidaklah cukup dan harus menggunakan tambahan EEPROM.
  • Komputer monitoring harus menyala terus menerus dan berkomunikasi dengan MCU.
Saya diminta bantuan untuk membuat Voltmeter digital yang dapat mengukur tegangan yang terkoneksi secara langsung dengan komputer dengan tampilan berupa grafik, gambar, dan data teks yang dapat diolah (pada Excel, word, maupun notepad). Tampilan yang diinginkan berupa karakter LCD 16x2 dengan input hanya berupa push button. User tidak menginginkan menggunakan keypad karena dapat memperbesar dan memperumit rangkaian (menurutnya tidak perlu dan saya setuju).

Rancangan saya siapkan RS232 converter dgn IC MAX232 untuk komunikasi secara serial port COM dan interface USB dengan IC FT232RL. Salah satu alasannya yaitu karena agar dapat digunakan pada Laptop maupun mada CPU biasa menggunakan port COM, dan alasan lain (alasan sebenarnya) yaitu karena saya ingin mencoba ICFT232RL untuk USB interface agar rancangan berikutnya saya akan membuat interface USB saja biar lebih sederhana msekipun IC-nya mahal Rp 50.000 dibanding MAX232 Rp 8000.

Tombol yang disediakan berupa 4 buah Push Button yang dapat membingungkan user, sehingga dibuat fungsi Help disetiap step-step yang akan menuntun user pada fungsi step tersebut dan fungsi Push Button pada step tersebut.

Ada 3 mode penggunaan alat yaitu Stand Alone, Komputer (master), dan Memory.
  • Stand Alone yaitu Voltmeter digital dapat mengukur secara langsung dan user dapat menyimpan hasil pengukuran di internal EEPROM MCU sebanyak 256 data pengukuran.
  • Komputer (master) yaitu MCU dapat mengukur tegangan secara langsung dan ketika ada perintah dari komputer maka MCU mengirim data ke komputer untuk diolah dan ditampilkan berupa grafik maupun teks. Waktu pengambilan data (Time Sampling) bisa ditentukan dari program komputer dengan range sampling dari 50 milisecond hingga 24 Jam.
  • Memory yaitu mode untuk membaca data dimemory internal MCU untuk diberikan ke komputer dan diproses lebih lanjut.
Nah itu dulu perkenalannya...
Selanjutnya akan saya coba bahas sedikit demi sedikit di post selanjutnya.

Topik yang Populer