Hier ein Programm-Ausschnitt wie der Multiplexer mit dem I2C-USB-Modem angesprochen werden kann. Das Excel-Makro funktioniert auch mit dem neuen I2C-RS232-Modem 2. Über vier Buttons kann zwischen den Kanälen des PCA9544 umgeschaltet werden. Das INT-Signal wird auf den Eingang durchgereicht. Welcher Kanal den INT ausgelöst hat kann über das Register ausgelesen werden. Private Sub Command_CH0_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544 SENDBYTE (51) 'Befehl 51 = Daten senden SENDBYTE (3) 'Frame Anzahl = 3 SENDBYTE (Adr) 'Bus-Adresse des PCF 8574 SENDBYTE (0) 'Adresse MSB SENDBYTE (4) 'Register auf Cannel 0 einstellen SENDBYTE (4) 'Endekennung If Modem_Antwort = False Then MsgBox ("Fehler bei I2C-MUX") End If End Sub Private Sub Command_CH1_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544 SENDBYTE (51) 'Befehl 51 = Daten senden SENDBYTE (3) 'Frame Anzahl = 3 SENDBYTE (Adr) 'Bus-Adresse des PCF 8574 SENDBYTE (0) 'Adresse MSB SENDBYTE (5) 'Register auf Cannel 1 einstellen SENDBYTE (4) 'Endekennung If Modem_Antwort = False Then MsgBox ("Fehler bei I2C-MUX") End If End Sub Private Sub Command_CH2_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544 SENDBYTE (51) 'Befehl 51 = Daten senden SENDBYTE (3) 'Frame Anzahl = 3 SENDBYTE (Adr) 'Bus-Adresse des PCF 8574 SENDBYTE (0) 'Adresse MSB SENDBYTE (6) 'Register auf Cannel 2 einstellen SENDBYTE (4) 'Endekennung If Modem_Antwort = False Then MsgBox ("Fehler bei I2C-MUX") End If End Sub Private Sub Command_CH3_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544 SENDBYTE (51) 'Befehl 51 = Daten senden SENDBYTE (3) 'Frame Anzahl = 3 SENDBYTE (Adr) 'Bus-Adresse des PCF 8574 SENDBYTE (0) 'Adresse MSB SENDBYTE (7) 'Register auf Cannel 4 einstellen SENDBYTE (4) 'Endekennung If Modem_Antwort = False Then MsgBox ("Fehler bei I2C-MUX") End If End Sub Private Sub Command_AUS_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr Adr = Combo_Mux_Adresse.Text 'Bus-Adresse des PCA 9544 SENDBYTE (51) 'Befehl 51 = Daten senden SENDBYTE (3) 'Frame Anzahl = 3 SENDBYTE (Adr) 'Bus-Adresse des PCF 8574 SENDBYTE (0) 'Adresse MSB SENDBYTE (0) 'Register auf 0 stellen SENDBYTE (4) 'Endekennung If Modem_Antwort = False Then MsgBox ("Fehler bei I2C-MUX") End If End Sub Private Sub Command_REGISTER_Click() 'Der Befehl I2C-Data 33 hex = 51 dez. 'liest oder schreibt bis zu 128 Bytes vom I2C-Slave Dim Adr, R, Rbin Adr = Combo_Mux_Adresse.Text + 1 'Bus-Adresse des PCA 9544 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 R = D(1) 'Register vom PCA lesen Rbin = Right$("00000000" & Dec2Bin(R), 8) 'nach binär wandeln TextBox_Register.Text = Rbin 'Wert in Textbox eintragen Else MsgBox ("Fehler bei Register lesen") End If End Sub |
Beispiele als Excel Makro |
I2C-USB+M2-Multiplexer-Test.zip (133 kB) Excel-Makro mit einem Beispiel zur Ansteuerung der Kanalauswahl des I2C-Multiplexer PCA9544A für das I2C-USB-Modem oder das I2C-RS232-Modem 2 |
|
vba-makros.pdf (528 kB) Bei den Makros kann es je nach Sicherheitseinstellungen zu Fehlermeldungen kommen. Eine Anleitung wie Sie die Makros ausführen können finden Sie in diesem Dokument |
Bausätze können Sie günstig in unserem Onlineshop in der Rubrik
"I2C-Komponenten" bestellen. |
Copyright © www.horter.de All rights reserved.