メニュー
▼ アクセス(地図)
▼ Windowsアプリ開発 ▼ マイコン開発 ▼ CGI・PHP制作 |
▼ サイトマップ(全投稿記事)
▼ タイトル(画像一覧) ▼ 事業内容 |
お問い合わせメールフォームが開きます。
2009年09月30日
FT245RL VB2005サンプル
秋月電子さんで扱っている 「USB-パラレル変換モジュール FT245RL」 は
簡単に外部装置とのI/O接続ができる便利なモジュールです。
これは、従来数万円出さないと手に入らなかった一般的なI/Oボードの代わりにもなります。
試作するために、秋月電子さんから簡単なVisualBasicのサンプルも提供されています。
が、本当に始めての方にはわかりづらいかもしれませんし、現在は、VisualBasic 2008が主流になりつつあるので、そのままのサンプルでは使いづらいかもしれません。
今回は、VisualBasic 2005にて、出力だけの更に簡単なサンプルを作ってみました。
オリジナルプロジェクトを、VisualBasic 2005 のアップデートウイザードで変換後、
Module1.bas 内の 「Declare Function」で一部 「as Any」 を 「as Integer」 に修正しました。
また、メインフォーム内ではコントロール配列がらみの変更も行っています。
記事 「FT245RL VB2010サンプル」 はこちら http://micom.hamazo.tv/e7047623.html
Option Strict Off
Option Explicit On
Friend Class frmUsbPara
Inherits System.Windows.Forms.Form
Dim ftstatus As Integer
Dim lngnumDevs As Integer
Dim strDescription As New VB6.FixedLengthString(256)
Dim strSerialNumber As New VB6.FixedLengthString(256)
'----------------------------------------------------------------------------------------------------
Private Sub CMD_FT_Close_Click()
If FT_Close(lngHandle) <> FT_OK Then Exit Sub
End Sub
'----------------------------------------------------------------------------------------------------
Public Sub CMD_FT_Open_Click()
Me.LoggerList.Items.Clear()
'----------------------------------------------------------------------------------------------------
FT_Close(lngHandle)
'----------------------------------------------------------------------------------------------------
If FT_GetNumDevices(lngnumDevs, vbNullString, FT_LIST_BY_NUMBER_ONLY) <> FT_OK Then
LoggerList.Items.Add("FT_ListDevices failed status = " & ftstatus)
Exit Sub
Else
LoggerList.Items.Add("Number of devices=" & lngnumDevs)
End If
'----------------------------------------------------------------------------------------------------
If FT_ListDevices(0, strDescription.Value, FT_LIST_BY_INDEX Or FT_OPEN_BY_DESCRIPTION) <> FT_OK Then
LoggerList.Items.Add(("ListDevices failed"))
Exit Sub
Else
LoggerList.Items.Add(("Description " & strDescription.Value))
End If
'----------------------------------------------------------------------------------------------------
If FT_ListDevices(0, strSerialNumber.Value, FT_LIST_BY_INDEX Or FT_OPEN_BY_SERIAL_NUMBER) <> FT_OK Then
LoggerList.Items.Add(("ListDevices failed"))
Exit Sub
Else
LoggerList.Items.Add(("Serial Number " & strSerialNumber.Value))
End If
'----------------------------------------------------------------------------------------------------
If FT_Open(0, lngHandle) <> FT_OK Then
LoggerList.Items.Add("FT_Open Failed status=" & ftstatus)
Exit Sub
Else
'LoggerList.AddItem "FT_Open OK"
End If
'----------------------------------------------------------------------------------------------------
If FT_SetBaudRate(lngHandle, 9600) <> FT_OK Then
LoggerList.Items.Add("FT_SetBaudRate Failed status=" & ftstatus)
Exit Sub
Else
'LoggerList.AddItem "FT_SetBaudRate OK"
End If
'----------------------------------------------------------------------------------------------------
If FT_SetBitMode(lngHandle, &HF0s, 1) <> FT_OK Then
LoggerList.Items.Add("FT_SetBitMode Failed status=" & ftstatus)
Exit Sub
Else
'LoggerList.AddItem "FT_SetBitMode OK"
End If
If FT_SetBitMode(lngHandle, &HFFs, 1) <> FT_OK Then '全出力ポートへ
Exit Sub
End If
End Sub
'----------------------------------------------------------------------------------------------------
Private Sub OutputPort(ByRef tmp As Byte)
On Error Resume Next
Dim tp_byte(0) As Byte
Dim i As Integer
tp_byte(0) = tmp
If FT_Write(lngHandle, tp_byte(0), 1, lngBytesWritten) <> FT_OK Then Exit Sub
For i = 0 To 7
If tp_byte(0) And (2 ^ i) Then
Me.Label_Led(i).ForeColor = Color.Red
Else
Me.Label_Led(i).ForeColor = Color.WhiteSmoke
End If
Next
End Sub
'----------------------------------------------------------------------------------------------------
Private Label_Led() As System.Windows.Forms.Label
Private Sub frmUsbPara_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
CMD_FT_Open_Click()
'コントロール配列の作成
Me.Label_Led = New System.Windows.Forms.Label(8) {}
'コントロールの配列にインスタンスを代入
Me.Label_Led(0) = Me.Label0
Me.Label_Led(1) = Me.Label1
Me.Label_Led(2) = Me.Label2
Me.Label_Led(3) = Me.Label3
Me.Label_Led(4) = Me.Label4
Me.Label_Led(5) = Me.Label5
Me.Label_Led(6) = Me.Label6
Me.Label_Led(7) = Me.Label7
OutputPort(CByte(NumericUpDown1.Value))
End Sub
'----------------------------------------------------------------------------------------------------
Private Sub frmUsbPara_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
CMD_FT_Close_Click()
Me.Close()
End
End Sub
'----------------------------------------------------------------------------------------------------
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
OutputPort(CByte(NumericUpDown1.Value))
End Sub