https://www.youtube.com/watch?v=giubFyJeZ-8
說明一下他的觀念:
(1) Arduino本來的運作就是出現在裝置管理員裡的 COM 通訊埠,用這通訊埠跟PC做溝通。
(2) 所以可以在語法裡靠著 Serial.begin 系列來達成與PC溝通的工作。
(3) 然後LabVIEW就是把這溝通的內容抓進來,用VISA的子功能來執行。
(4) VISA Read得到的就是字串的內容,再到LabVIEW裡自行轉換。
做法如下:
(1) 連結上Arduino,先接一個按鈕來測試。
(3) 查看 Serial Monitor每面的數值,確認開關的訊號有傳到PC。
(4) 打開LabVIEW,撰寫以下程式
(4-1) Config VISA裝置,這台是從COM4進來的,速度為9600 bit/s
(4-2) 用Properties Node把VISA的Bytes參數丟進VISA Read裡
(4-3) 把VISA Read讀出來的字串顯示出來,包括轉成數字。
(4-4) Close VISA資源
(5) 執行LabVIEW,他會把Serial Monitor看到的東西讀進來。
以下為查看人機介面的運作的情況。
結論:也就是說在序列通訊的情況下,LabVIEW就抓Arduino裡Serial.print出來的內容。
這個方法沒有上次用現成的icon來得方便,但更為fundamental,可做為觀念的練習。
Ming Lin 您好
回覆刪除您的文章教學我實際做起來是ok的,非常謝謝您的分享
想請問您:
如果我的Arduino的程式內容Serial.print出現多個(也就是我不只一個感測器)
那我的LabVIEW的Chart該怎麼顯示多個呢?
您好,我偷懶的方法是依序讀進來,也就是一串數字中,1、3、5是第一組sensor的資料,2、4、6是第二組sensor的資料,進labview之後,再分出來。
刪除部分內文圖片借轉貼. THANKS!
回覆刪除請教若一次4個sensor 要同時進來要如何做? NI 的DAQ 6008 是同時近來還是也是依序讀進來
回覆刪除4個訊號,用DAQ 6008應該是同時進來的。
刪除你好 我想請問多組print 像是
回覆刪除r: 0.1 p:-0.0 y:128.9 v:3.60 time:6.8 s GSP:0.00m/s 這樣
可以陣列出來出來再分開嗎?
不太會G code 抱歉...
刪除如果要抓到labview的話,你可以試試直接在Labview 用string index去把字串裡第N個字接出來。
刪除額 抱歉 我解決了
刪除靠
Scan From String Function
她可以判斷出像這樣的function
r:%.1f, p:%.1f, y:%.1f, v:%.2f, time:%.1f, GSP:%.2f, Lat:%.5f, Lon:%.5f
然後可以抽出來用
您好 不好意思打擾
回覆刪除我的實驗也是有複數個資料
Arduino端程式如下:
Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V");
Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V");
Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA");
像這樣"分行"print出來的字串形式data
利用VISA讀取至LabVIEW後
有辦法使用vi讓這4筆資料分別顯示嗎???
謝謝
這篇文章是讀取資料的部分,想知道有沒有輸出資料到arduino的方法?
回覆刪除