Hallo,
scheinbar habe ich doch ein HW Problem.
Habe nun einige Beispiele aus dem Internet durchgetestet. Es ist immer so: Der Ausgang wird gesetzt, in kurzer Zeit aber wieder zurückgesetzt. Selbst das Beispiel von der Roboterseite "I2C Relaisplatine RNREL 1.0" funktioniert nicht. Ich verwende den PCF8574P. Habt Ihr noch eine Idee wo ich suchen sollte? Die Relais (hier LED's blinken nur ganz kurz auf, also nicht wie im Programm angegeben 2 Sekunden).
Viele GrüßeCode:$regfile = "m16def.dat" $framesize = 64 $swstack = 50 $hwstack = 50 $crystal = 7372800 $baud = 9600 Declare Sub Rnb_relaisschalten(byval Relaisnr As Byte , Byval Status As Byte) 'Const Relaisport_adr = &H76 'I2C Adr PCF 2 Const Relaisport_adr = &B1001110 Dim Relaisstatus As Byte Dim I As Byte Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 I2cinit Wiederhole: For I = 0 To 7 Call Rnb_relaisschalten(i , 1) 'Relais i so anziehen Wait 2 'Warte 2 Sekundne Call Rnb_relaisschalten(i , 0) 'Relais i soll abfallen Wait 2 'Warte 2 Sekundne Next I Goto Wiederhole 'Die Hilfsfunktion erleichtert das ein und Ausschalten bestimmter Relais 'Variable: Relaisnr ( 0 bis 7) steht für ein bestimmtes Relais 'Variable: status (1 oder 0) schaltet Relais ein oder aus 'Bei Status 1 wird die entsprechende Relais anziehen, bei 0 abfallen Sub Rnb_relaisschalten(byval Relaisnr As Byte , Byval Status As Byte) Relaisstatus.relaisnr = Status I2cstart I2cwbyte Relaisport_adr 'Schreibbefehl an PCF schicken I2cwbyte Relaisstatus 'Datenbyte an PCF I2cstop End Sub End
Richard







Zitieren

Lesezeichen