LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

Masalah dalam pembacaan data serial dari arduino

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.FrontPanel.jpg

Ini tampilan block diagramnya.

BlockDiagram.jpg

Apa ada yang salah dalam merangkai block diagramnya.?

Saya attach juga file vi-nya.

Mohon bantuannya para master LabVIEW.

Terimakasih

0 Kudos
Message 1 of 17
(22,564 Views)

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

0 Kudos
Message 2 of 17
(20,838 Views)

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

0 Kudos
Message 3 of 17
(20,838 Views)

Coba program berikut ini semoga berkurang problemnya

SpeedMeas.png

0 Kudos
Message 4 of 17
(20,838 Views)

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.....

0 Kudos
Message 5 of 17
(20,838 Views)

Pak irsal tanjung, terimakasih koreksinya,, aku udah coba, tapi hasil runningnya masih aja tetep osilasi pak, hasil.png

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

0 Kudos
Message 6 of 17
(20,838 Views)

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.

Certified LabVIEW Developer (CLD)
Certified TestStand Developer (CTD)
Using LabVIEW 8.5.1 (2008) to LabVIEW 2024
Message 7 of 17
(20,838 Views)

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

blok diagram labview.JPG

0 Kudos
Message 8 of 17
(20,838 Views)

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

0 Kudos
Message 9 of 17
(20,838 Views)

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..

0 Kudos
Message 10 of 17
(20,838 Views)