プロが教えるわが家の防犯対策術!

現在学校でセンサー(焦電型赤外線センサー)とPCをRS232Cで接続させようと考えています。
センサーからの信号は検知するとHが出力されます。
Visual Basic 2008を使って信号がHになった回数をカウントさせたいのですがどのようなプログラムを組めば良いのでしょうか?

また、センサーの出力はRS232Cのどのピンに接続すれば良いのでしょうか、どなたか詳しい方教えてください。

A 回答 (2件)

●RS-232Cのピンアサイン


http://www40.atwiki.jp/system-ed/pages/13.html

注:制御信号のレベルは ON:+3V以上25V以下 OFF:-3V以下 -25V以上
  なので0Vの場合は不定です。
  (運が良ければ0VがOFFと判断されることもありますが当然
   保証されていません)

 :自作センサーの出力の仕様が判りませんが、一般的には
  レベル変換のための回路が必要です。

  この程度の情報を元に、後は自分で調査・判断できないようなら
  機器(PC)を壊す可能性が高いので止めておいたほうが良いでしょう。


●SerialPortクラスの使用方法
http://www.technoveins.co.jp/dev/vb2005/serialpo …

 ・DSR、CTSの状態をPropertyで読むことができます。
 
 ・但し、上記のような使い方は保証されていないので、あくまで
  自己責任で行ってください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
さっそくプログラムを作ってみたのですが、Buttonをクリックした瞬間のTrue/Falseしか表示できません。常に表示するにはどうしたらよいでしょうか?

以下は作成したプログラムです。

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

If SerialPort1.IsOpen() = False Then

SerialPort1.Open()
Dim data As Boolean

Try

data = SerialPort1.DsrHolding

Catch ex As Exception

data = ex.Message

End Try

TextBox1.Text &= data

Button1.Text = "通信停止"

Else

SerialPort1.Close()

Button1.Text = "通信開始"

End If

Catch ex As Exception

MessageBox.Show(ex.Message, "接続エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)

End Try

End Sub

End Class

お礼日時:2008/07/18 10:48

>Buttonをクリックした瞬間のTrue/Falseしか表示できません。


そのように作成したのですから、その通りの動きしかしません。

●連続して動作させるのは、読み込みと表示の部分をTimerコントロールを使用して動かしてください。
#Open,CloseはTimer処理には入れない。

●回数をカウントするには、前回の読み込みデータと今回の読み込みデータを比較し、L⇒Hに変化した時だけカウントしてください。

●タイマーの周期は、センサーの動作具合などを実験し、調整してみてください。
#あまり短いと誤検出する可能性があるし、あまり長いと検出できない可能性あり。
#センサーの特性と検知したい現象・動作(人、動物など?)などに合わせて調整が必要です


ところで、センサーの信号のレベルとRS-232Cへの接続のところは解決したのでしょうか?
    • good
    • 0
この回答へのお礼

RS232Cへの接続、回数のカウントともに解決し、動作させることができました。
本当に助かりました。
ご回答ありがとうございます。

お礼日時:2008/07/18 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!