シリアル データ通信 [Excel VBA]
■目的
・アルディーノを使用してADC(ADS1115)で読み取った電圧値をPCへ転送する方法を探る。
■通信方法(その1)
・easycommを使用して通信する方法あり。
Web 上に『 easycomm_1.84』で圧縮ファイルあり。
・圧縮ファイル中身
ec.bas ・・・標準モジュール
ecDef.bas ・・・標準モジュール
ecManual.xls
readme.txt
・上記、2種類の標準モジュールをExcelにインポートする。
ーーーーーーーー
画像貼り付け予定
ーーーーーーーー
・VBAでプログラムを作成し実行することで、
ADCの電圧値をPCへ取り込みグラフ作成ができることを確認した。
ーーーーーーーーーーーーーーーーーーーーーーー
電圧表示 / グラフの写真を張り付ける予定
ーーーーーーーーーーーーーーーーーーーーーーー
<サンプルプログラム>
・アルディーノを使用してADC(ADS1115)で読み取った電圧値をPCへ転送する方法を探る。
■通信方法(その1)
・easycommを使用して通信する方法あり。
Web 上に『 easycomm_1.84』で圧縮ファイルあり。
・圧縮ファイル中身
ec.bas ・・・標準モジュール
ecDef.bas ・・・標準モジュール
ecManual.xls
readme.txt
・上記、2種類の標準モジュールをExcelにインポートする。
ーーーーーーーー
画像貼り付け予定
ーーーーーーーー
・VBAでプログラムを作成し実行することで、
ADCの電圧値をPCへ取り込みグラフ作成ができることを確認した。
ーーーーーーーーーーーーーーーーーーーーーーー
電圧表示 / グラフの写真を張り付ける予定
ーーーーーーーーーーーーーーーーーーーーーーー
<サンプルプログラム>
Private Sub CommandButton1_Click() '①初期設定 ec.COMn = 3 'COM4を指定します ec.Setting = "9600,n,8,2" '通信条件(ボーレート,パリティビット数,データビット数,ストップビット数)の設定 ec.HandShaking = ec.HANDSHAKEs.RTSCTS '通信ハンドシェークの設定 ec.Delimiter = ec.DELIMs.CrLf 'データの区切りを示す文字列を設定します '②データの送信 ec.OutBuffer = 100& * 1024& '現在処理の対象になっているポートの送信バッファを100kBに設定します ec.AsciiLine = "*TRG" '"*TRG"という文字列をデリミタ付きで送信します. '③データの受信 A$ = ec.AsciiLine 'デリミタの手前までの受信文字列をA$に代入します. ec.InBufferClear '受信バッファをクリア '④受信データの表示 MsgBox A$ '⑤ポートを閉じる ec.COMn = -1 '終了処理 End Sub Private Sub CommandButton2_Click() Dim MeasCount As Long '計測回数カウンタ Dim ReadData As String '入力した値 ec.COMn = 3 'COMポートのオープン(COMポート番号) ec.Setting = "9600,n,8,2" 'COMポートの設定(通信速度,パリティ,データビット,ストップビット) Range("B10") = "AD1" 'ワークシートのB10 セルにAD1 と表示 Range("C10") = "AD2" 'ワークシートのB10 セルにAD2 と表示 Range("D10") = "AD3" 'ワークシートのB10 セルにAD3 と表示 Range("E10") = "AD4" 'ワークシートのB10 セルにAD4 と表示 MeasCount = 1 '計測回数カウンタ 初期化 Do ec.OutBuffer = 100& * 1024& '現在処理の対象になっているポートの送信バッファを100kBに設定します ec.AsciiLine = "*TRG" '"*TRG"という文字列をデリミタ付きで送信します Range("A10").Offset(MeasCount, 0) = MeasCount '計測カウンタ値をA10列に書込み ReadData = ec.AsciiLine 'AD1 データ読み込み ReadData_i = Val(ReadData) '文字データを数値データに変換 Range("A10").Offset(MeasCount, 1) = ReadData_i 'AD1の値をA11列に書込み ReadData = ec.AsciiLine 'AD2 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 2) = ReadData_i ' ‘ワークシート書込み ReadData = ec.AsciiLine 'AD3 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 3) = ReadData_i ' ‘ワークシート書込み ReadData = ec.AsciiLine 'AD4 データ読み込み ReadData_i = Val(ReadData) Range("A10").Offset(MeasCount, 4) = ReadData_i ' ‘ワークシート書込み MeasCount = MeasCount + 1 'カウンタに1を加算 Loop End Sub Private Sub CommandButton3_Click() ec.COMnClose = 0 'COMポートのクローズ MsgBox " COM3 CLOSED " '停止メッセージ表示 End End Sub Private Sub CommandButton4_Click() Cells.Select '全てのセルを選択 Selection.ClearContents 'セルを削除 Range("A10").Select 'セル(A11)に移動 End Sub
2018-01-24 13:17
nice!(0)
コメント(0)
コメント 0