Home    Impressum / Datenschutz    Shop    Download    Links     Blog  

I2C-Eingabekarte Programmierbeispiele

Programmbeispiel Schnittstelle öffnen und Signalzustände lesen mit dem I2C-Koppler

'Deklarationen der port.dll
Declare Function OPENCOM Lib "Port.dll" (ByVal A$) As Integer
Declare Sub CLOSECOM Lib "Port.dll" ()
Declare Sub SENDBYTE Lib "Port.dll" (ByVal b%)
Declare Function READBYTE Lib "Port.dll" () As Integer
Declare Sub DELAY Lib "Port.dll" (ByVal b%)

'Deklarationen der FTDI-Bibliothek
Declare Function FT_CreateDeviceInfoList Lib "FTD2XX.DLL" _
(ByRef lpdwNumDevs As Long) As Long

Declare Function FT_ListDevices Lib "FTD2XX.DLL" _ 
(ByVal arg1 As Long, ByVal arg2 As String, ByVal dwFlags As Long) As Long

Public Const FT_LIST_BY_NUMBER_ONLY = &H80000000
Public Const FT_LIST_BY_INDEX = &H40000000
Public Const FT_LIST_ALL = &H20000000

Declare Function FT_OpenEx Lib "FTD2XX.DLL" _ 
(ByVal arg1 As String, ByVal arg2 As Long, ByRef lngHandle As Long) As Long

Declare Function FT_GetComPortNumber Lib "FTD2XX.DLL" _ 
(ByVal lngHandle As Long, ByRef portnumber As Long) As Long

Declare Function FT_Close Lib "FTD2XX.DLL" _ 
(ByVal lngHandle As Long) As Long

Public Const FT_OPEN_BY_SERIAL_NUMBER = 1
Public Const FT_OPEN_BY_DESCRIPTION = 2

Private Sub Command_SCHREIBEN_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave

Dim W, Adr
Adr = Combo_SAdresse.Text   'Adresse aus Cobo-Box

On Error GoTo ErrorHandler  'Für falsche Eingaben im Feld

If TextBox_SWert.Text > 255 Then
    MsgBox ("Im Feld WERT nur Zahlen <= 255 erlaubt")
Else
    If CheckBox_Sinv.Value = True Then
      W = 255 - TextBox_SWert.Text  'Ausgabewert invertieren
    Else
      W = TextBox_SWert.Text        'Ausgabewert direkt zum Portbaustein
    End If

    SENDBYTE (51)  'Befehl 51 = Daten senden
    SENDBYTE (3)   'Frame Anzahl = 3
    SENDBYTE (Adr) 'Bus-Adresse des PCF 8574
    SENDBYTE (0)   'Adresse MSB
    SENDBYTE (W)   'Wert ausgeben
    SENDBYTE (4)   'Endekennung
End If

If Modem_Antwort = False Then
    MsgBox ("Fehler bei I2C-DATA")
End If

ErrorHandler:
Select Case ERR.Number              'Fehlernummer auswerten.
    Case 0 'ok
    Case 13
         MsgBox ("Im Feld WERT nur Zahlen erlaubt")
         TextBox_SWert.Text = ""
    Case Else
        MsgBox ("Fehler " & ERR.Number)
    End Select

End Sub 

Private Sub Command_LESEN_Click()
'Der Befehl I2C-Data 33 hex = 51 dez.
'liest oder schreibt bis zu 128 Bytes vom I2C-Slave
Dim Adr
Adr = Combo_LAdresse.Text   'Adresse aus Cobo-Box

SENDBYTE (51)      'Befehl 51 = I2C-DATA
SENDBYTE (3)       'Frame Anzahl = 3
SENDBYTE (Adr)     'Bus-Adresse des PCF 8574
SENDBYTE (0)       'Adresse MSB
SENDBYTE (1)       '1 Byte lesen
SENDBYTE (4)       'Endekennung

If Modem_Antwort = True Then
    If CheckBox_Linv.Value = True Then
      TextBox_LWert.Text = 255 - D(1)  'Wert in Textbox eintragen invertiert
    Else
      TextBox_LWert.Text = D(1)        'Wert in Textbox eintragen
    End If
Else
    MsgBox ("Fehler bei I2C-DATA")
End If

End Sub 

 
Beispiele als Excel Makro
I2C-Koppler-Test.xls und port.dll (76 kB)
Excel-Makro mit je einem Beispiel zur Ansteuerung der I2C-Ausgabekarte, I2C-Eingabekarte, der I2C-LCD-Anzeige, und dem Temperatursensor LM75
I2C-Modem-Test.xls und port.dll (83 kB)
Excel-Makro mit je einem Beispiel zur Ansteuerung der I2C-Ausgabekarte, I2C-Eingabekarte, und dem Temperatursensor LM75

 

Bausätze können Sie günstig in unserem Onlineshop in der Rubrik
I2C-Komponenten bestellen.