SSブログ

シリアル データ通信 [Excel VBA]

■目的
・アルディーノを使用して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

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

散布図の変更フォームを使ってみる ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。