03-23-2015 11:07 AM
Salam para master LabVIEW,,, saya lagi mencoba baca kecepatan motor pakai encoder, pulsa encodernya dibaca oleh arduino terus dikonversi menjadi kecepatan putaran (dalam rpm). Nah data RPM tersebut saya kirim lewat serial buat ditampilkan di labview. Saya dapat kendala nih dengan pembacaan data serial dari arduino buat ditampilin ke tampilan labview. Kendalanya pada saat labview baca data serial yang dikirim kadang-kadang labview muncul datanya 0 sementara sehingga di grafik terlihat melonjak turun terus naik lagi. Untuk lebih jelasnya ini gambar hasil percobaannya.
Ini tampilan block diagramnya.
Apa ada yang salah dalam merangkai block diagramnya.?
Saya attach juga file vi-nya.
Mohon bantuannya para master LabVIEW.
Terimakasih
03-24-2015 12:07 AM
Kalau gak pakai While, gimana?.
waktu tunggunya dilamain jadi 200ms, OK kah?
kalau gak diterima juga cara itu, datanya perlu dihitung statistikanya.
M. Rifai Muslih
03-24-2015 01:00 AM
saya udah coba naikin waktu tunggunya jadi lama (200, terus coba ganti jadi 500, terus coba ganti jadi 1000) namun mash tetap muncul lonjakan nilai (nol)-nya cuma munculnya agak lama daripada 100. nah watu tunggunya pakai 1000 itu responnya lama banget pak, pas dinaikin atau diturunin kecepatannya, data di grafik masih ga berubah.
kalo while-nya diilangin, saya belum coba pak,,, saya sekarang coba dlu whilenya dihilangin, nanti hasilnya saya post disini lagi pak.
Thanks
03-24-2015 08:06 AM
Coba program berikut ini semoga berkurang problemnya
03-24-2015 12:18 PM
Pak hasrifa2003,,, aku dah coba lepas while loopnya ternyata ga jalan sama sekali pak.
pak irsal tanjung,,, oke pak saya coba yah, saya download dulu pak. Nanti hasilnya saya kabarin lagi hehehehe makasih pak.....
03-29-2015 03:32 AM
Pak irsal tanjung, terimakasih koreksinya,, aku udah coba, tapi hasil runningnya masih aja tetep osilasi pak,
Aku coba ganti serialnya yang tulisan "bytes at port" jadi "baud rate" itu berhasil pak ga ada lonjakan angka nol-nya. Cuma masalahnya nge-plotnya mash lambat, ga bisa disetting dari timmernya, jadi timmernya tu di hapus juga ga ngaruh.??? Jadi bingung nih pak
Project ini tu bagian dari tugas akhir aku sekarang pak, Tolong bantuannya dari para master LabVIEW.
Terimakasih
03-31-2015 08:39 PM
dalam pendapat saya, itu bukan masalah timing. Jadi Wait Until Next ms. Multiple tidak masalah. Dan juga bukan masalah While Loop.
Kemungkinan besar itu masalah coding di Arduino. Sebagai bukti:
1. Di dalam loop kan ada kondisi, kalau "Bytes at Port" selain angka 0, maka akan di plot ke dalam chart. Kalau angka 0 maka do nothing. Artinya, kalau dalam chart masih ada angka 0 plot-an, yang terjadi adalah "Bytes at Port" adalah bukan 0. Bisa jadi 1,2,3,4, dan seterusnya. Jadi memang dari Arduino sudah mengirimkan data, tapi data ini 0.
2. Diganti waktu Wait Until Next ms. Multiple, tidak berpengaruh. Kenapa? karena Serial port akan membuffer data, jadi data yang dikirim Arduino sudah pasti tidak akan hilang. Dengan catatan, buffer tidak overflow.
Coba diperhatikan coding arduinonya lagi.
08-16-2016 06:36 PM
Salam Mas krisna, saya ingin bertanya megapa monitoring level di lab view dan yang di level tangki hasilnya tidak sama, saya menggunakan sensor ultrasonik HCSR04 dan arduino Uno Rev3, sensor mensensing medium air, setelah saya analisa, data yang di terima pending berkisar satu menit lebih, apa ada yang salah dari data serial atau blok diagramnya. Mohon pencerahannya karna masih pemula, Terima kasih
08-17-2016 08:14 PM
Selamat pagi kak
Menurut saya coba kakak perikasa kembali keluaran sensor dan keluaran output melalui arduino apakah output sesuai atau tidak, terkhusus untuk pembacaan "byte at port " pada arduino. Menurut saya while loop akan melakukan satu looping tiap "byte a port" pada labview.
Timing dalam while loop tidak berpengaruh terhadap pending data yang terjadi. Karena serial port akan membuffer data.
terimakasih kak
09-05-2016 11:28 AM
coba ikut nimbrung... sepengalaman saya mencoba2 komunikasi serial arduino dan LabVIEW. Untuk data yang kadang menghasilkan nilai 0 itu karena pemrosesan data di arduino terlalu cepat dibandingkan delay di labview (tapi itu khusus jika kita menggunakan bytes at port), kasusnya seperti pembacaan data gps yang umumnya menggunakan smart delay di arduino (karena jika kita menggunakan smartdelay(100); itu sebenarnya si arduino tidak melooping selama 100 ms akan tetapi lebih cepat, untuk lebih jelasnya bisa lihat isi dari void smartdelay()). sebenarnya masalah intinya itu di delay lopping atau pemrosesan di arduino.
tips komunikasi serial:
1. jika menggunakan byte at port, usahakan delay looping di labview itu lebih besar sedikit dari delay looping di arduino. akan tetapi jika terlalu besar maka akan menyebabkan respon gui menjadi lemot. efeknya ketika respon lemot running selanjutnya pada labview kadang masih menampilkan data sebelumnya, dan ketika di stop kadang masih ada delaynya.
2. biasanya untuk mengakalinya saya mengitung terlebih dahulu berapa byte data yang akan dikirim ke labview, jika ketemu gunakan konstan pada count byte pada visa read nya. ini akan menghasilkan pembacaan data yang bagus karena tidak mungkin mendapatkan count byte bernilai nol.
3. uji coba cara ke 1 atau 2 dengan menvariasikan delay pada labview dan arduino.
Yup2... Semangat belajar..