Grafik sebuah data yang didapatkan dari pengukuran dapat disajikan dalam sebuah grafik pada Visual Basic. Pada tulisan sebelumnya telah diberikan sedikit contoh bagaimana cara menyajikan data dengan menggunakan Visual Basic. Pada kesempatan ini akan diberikan contoh pengembangannya dengan menyajikan data sebanyak 8 channel data. Selain penyajian dalam grafik, diberikan juga sebuah indikator pada tiap-tiap channel dengan menentukan batas atas dan batas bawah. Batas atas disini, untuk memberitahukan bawah titik atas tersebut sudah tercapai dengan ditandai berubah warnah merah pada penanda.
Selain disajikan dalam bentuk grafik, data ditampilkan pula dalam grid yang menyajikan data dalam bentuk numerik. Sehingga secara visual dan numerik dapat diamati dengan lebih mudah. Masing-masing channel dibedakan dengan warna yang berbeda.
Pada dasarnya, proses delapan channel data tersebut adalah sama dengan proses satu grafik yang dibuat parallel. Dalam pengambilan data, ditangani oleh MCU yang membaca data analog dengan menggunakan ADC internal ATMega16. MCU mengambil data dengan sistem polling, ADC yang jumlahnya 8 channel dibaca dari channel 1 sampai channel 8. Kemudian data yang didapatkan dibuat paket data menjadi satu frame data.
Data disusun dengan skema berikut:
1. Header = #
2 Delimiter = $ – ?
3. Data = 0 s/d 5000
4. End of Data = &@
#$ADC1?$ADC2?$ADC3?$ADC4?$ADC5?$ADC6?$ADC7?$ADC8?&@ + [ENTER]
dalam contoh dengan data numerik:
#$520?$1040?$1560?$2080?$2600?$3120?$3640?$4160?&@ + [ENTER]
Header, delimiter dan End of data diperlukan untuk parameter bahwa data yang ada adalah valid dan dapat digunakan.
Untuk dapat mengambil data menjadi delapan data kembali, maka diperlukan identifikasi. Proses yang dilakukan adalah membaca parameter-parameter di atas. Pertama, membaca header, kemudian membaca delimiter, kemudian membaca end of data, baru membaca datanya.
Untuk membaca header, langkahnya adalah membaca karakter #. Pada visual basic, untuk membaca karakter tertentu digunakan syntax:
[sourcecode]
Kres = InStr(PaketData, "#")
[/sourcecode]
membaca end of data:
[sourcecode]
At = InStr(PaketData, "@")
[/sourcecode]
Terakhir untuk mengetahui sebuah data, maka kita perlu mengetahui posisi delimiter.
[sourcecode]
Dollar = InStr(PaketPecah, "$")
Tanya = InStr(PaketPecah, "?")
[/sourcecode]
baru kita bisa mendapatkan data pengukuran tersebut.
Selanjutnya baru kita membuat tampilan dalam bentuk grafik seperti telah dibahas pada tulisan sebelumnya.
Demikian semoga bermanfaat.
Mas, membuat tampilan picute kayak gitu gimana mas. Saya kok polos aja ya mas? Terima kasih banyak.
Tampilan itu dapat dibuat dengan cara membuat garis sepanjang sumbu X sejumlah interval yang diinginkan pada sumbu Y. Dan membuat garis sepanjang sumbu Y sejumlah interval yang diinginkan pada sumbu X.
…..
code:
picGrafik.DrawStyle = 2
picGrafik.DrawWidth = 1
‘–skala sumbu Y
For i = 1 To 9
picGrafik.Line (500, i * 500)-(picGrafik.Width, i * 500), RGB(125, 125, 125)
picGrafik.CurrentY = i * 500
picGrafik.CurrentX = 1
picGrafik.Print 5000 – (i * 500)
Next i
‘–skala sumbu X
For i = 1 To 22
picGrafik.CurrentX = 400 + (i * 600)
picGrafik.CurrentY = 5000
picGrafik.Print i * 5
Next i
….
Mas, saranin saya sebuah buku, Saya mau pelajari. Kalau begini saya masih bingung. Mas dulu belajar dari mana? thanks… 🙂
saya dapat tugas buat konversi DAC dengan inputan digital berbentuk grafik..
pengen buat grafiknya pake VB,tp masih awam ttg VB.
liat uraian diatas sepertinya cuma kebalikan dari tugas dac.
mau liat source code nya, tp kok g bisa di download mas?
coba link yang di blogspot.
mas kalau buat ngonekin hardware dengan data base gimana ya mas
mohon bantuannya
jawabannya dikirim di email saya di amin_riza2@yahoo.co.id
databasenya mau pake apa?
Bos,pemrograman mikronya pake apa?Boleh dishare disini ato pake email hermancreative@gmail.com. Sy sedang belajar mikrokontroler.Makasih…
Saya pakai Code Vision. Saya rasa sudah cukup jelas dari uraian diatas untuk membuat programmnya karena sangat sederhana.
untuk yang pembacaan karakter itu(header,delimiter dsb), apakah memang dari code visionnya memang dikirimkan karakter tersebut?saya biasa pake bascom-avr mas.
ya, memang dari code vision dikirimkan karakter-karakter tersebut sebagai penanda sehingga posisi data dapat diketahui dengan pasti.
contoh program pengiriman adc dari mikro ke VB bagaimana ya?
apakah tinggal printf(“%i”,suhu1);
printf(“%i”,suhu2);
dst..
mohon pencerahannya?
ya, betul. seperti itu bisa.
maaf Bapak,,saya mau nanyak ne
sy kurang paham dengan artikel diatas
untuk membuat grafik dari data ADC mikro gmn ya???
kalau saya baca dari tulisan bapak di atas saya belum menangkap/mengerti bagian mana data ADC masuk ke VB ??
terus makasud data = 1 – 5000 itu apa ya pak?? saya masih awam dan saya sedang Tugas Akhir kuliah ne PAk dmn tugas saya berhubungan dengan membaca data ADC untuk dijadikan grafik,,jadi mohon bantuan nya
terimakasih
Pada artikel di atas memang tidak membahas bagian untuk membaca ADC. Karena posting di atas hanya membahas bagaimana membaca data serial yang dikirimkan oleh mikrokontroller oleh VB.
Untuk angka 1-5000 itu adalah nilai hasil pembacaan ADC. Karena nilai ADC biasanya akan dibaca sebagai nilai tegangan antara 0 mV s/d 5000 mV.
terimakasih Pak,,
saya sudah sedikit mulai mengerti,,
ditunggu postingan selanjutnya
salam sejahtera Pak,,mohon maaf pak sebelumnya,
saya mau nanyak,,jika saya mengambil data dr ADC dan data mau saya gunakan untuk membuat sebuah grafik sumbu (x,y) secara real time,,dimana untuk nilai titik2 Y nya saya ambil dari nilai data ADC,,yang saya tanyakan
“bagaimana caranya saya bisa mengambil data x nya atau data X nya saya ambil dari nilai apa???”
grafik saya trus bergerak selama VB conect dg mikro,,
sy pernah coba pakai timer untuk titik2 X nya tp tidak sesuai atau data data terbaca ngawur dan tdk real time,,bagaimana ya Pak ??
terimakasih
biasanya nilai titik-titik X adalah nilai fungsi waktu (t), atau bisa juga data ke-n. Tergantung mau diambil yang mana.
Untuk realtiime, biasanya kita pakai timer untuk mengambil data.
mohon maaf Pak,,saya belum bisa memahami yang mengenai fungsi waktu (t) nya,,itu maksud nya fungsi waktu di ambil dari komponen Timer pada VB ya Pak??
jka yg dimaksud adalah komponen Timer VB,,lalu gmn cara nya data ADC yang di ambil dapat mnyesuaikan atau mngeikuti interval timer ya Pak?? pdahal kan Serial mngirimkan data dengan sangat cepat,,gmn singkron nya dg timer ya pak?
soalnya kmrin saya coba tp hasil nya ngawur(tdk stabil) padahal data sudah saya parsing,,hehhee……
terimakasih pak
Timer bisa dari VB atau bisa juga dari mikrokontroller yang menggunakan RTC (Real TIme Clock). Untuk mensinkronkan, jika menggunakan RTC, maka pengiriman data dibuat setiap interval waktu yang diinginkan, misalnya setiap satu detik.
Misalanya menggunakan timer VB, berarti pembacaan data di VB berdasarkan interval timer di VB, misalnya setiap satu detik, atau dalam interval milidetik.
Soal data yang tidak stabil, berarti itu masalah pembacaan datanya, bisa digunakan rata-rata.
terimakasih Pak sebelum nya
mohon maaf Pak,,saya msh belum bisa menyesuaikan antara MsComm mengambil data ADC dg speed dari timer pd VB,,kalau saya hanya mencoba2 memperkirakan brapa interval timer yg dibutuhkan agar singkron dg pembacaan serial itu sulit sekali pak,,grafik saya merupakan hubungan tegangan(Volt) terhadap waktu(second),,jd adakah cara untuk dapat menyesuaikan interval timer dg serial,serial saya menggunakan (57600 bps)??
prtanyaan saya selanjutnya,,pengambilan data ADC sebaik nya ditaruh pada fungsi sub timer atau pada sub MsComm ya pak?? punya saya pada sub MsComm,,sementara data sb-X saya ambil dan saya update dari nilai increase interval timer VB dan update’an saya taruh pada fungsi sub Timer,,jd seharusnya gmn ya Pak??
terimakasih
Jika Anda ingin membuat grafik hubungan antara tegangan (V) dan waktu (t/detik), maka baiknya adalah Anda buat fungsi ambil data pada MSComm1_OnComm().
Kemudian untuk mengupdate grafik anda menggunakan fungsi Timer1_Timer() yang sudah diatur intervalnya setiap 1000 milidetik.
Jika data yang Anda terima dalam satu detik lebih dari satu data, maka baiknya dirata-rata jika hal ini data masih valid untuk dirata-rata.demikian
hem….terimakasih pak atas jawaban nya
maaf pak,,bisa beri contoh tidak pak bagaimana saya harus merata2 ADC saya untuk di update kan pada Timer1_timer() ?? dan bagaimana contoh program nya agar saya bisa mengupdate data sb-X saya yang mana dalam hal ini sb-X merupakan data dari waktu fungsi timer??
oya Pak,,jika berkenan ,boleh saya minta alamat email bapak ?? saya ingin berkonsultasi secara pribadi mengenai tugas akhir saya,,
heheheee…….mohon maaf sebelum nya_!!
terimakasih
salam kenal bang rohmadi…..tolong dong di posting sourc code untuk program mikrokontrolernya…..tks
Silakan monitor terus, insya Alloh segera saya posting source code mikrokontrollernya.
kalo ada yang versi codevision avr…..trim
salam kenal bang roohmadi…
tolong dong di posting source code untuk program mikrokontrolernya…tks
salam kenal pak
saya mau tanya. jika saya mau menampilkan data di visual basic dengan 2 port adc gimana caranya ?
saya sudah coba dengan 1 port adc dengan program mikronya
print T
untuk program vb nya
T = MSComm1.input
text1.text = T
itu sudah bisa tampil, jika saya mau menggunakan 2 port gimana ?
misal
print T
print R
Pada pinsipnya sama, tinggal anda memahami konsep diatas dan mencobanya. Terima kasih.
source code mikrokontrolernya dong mas, sangat butuh ini sudah berminggu – minggu saya monitor koq belum di upload juga…..