Hallo John,
wie Frank schon geschrieben hat, muß man die Relais nach dem "Einschalten" der Controllerplatine oder nach "Programmstart" ausschalten.
Habe mal in Franks Beispiel rum kopiert. Geht sicher eleganter...
Code:
'###################################################
'relaiskarte.bas
'für
'RoboterNetz Standard-Roboter Board RBNFRA 1.2
'
'
'Aufgabe:
'Relaiskarte wird getestet
'Alle 8 Relais bzw. Fet Schaltstufen werden nacheinander
'für 2 Sekunden eingeschaltet
'
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de + robotikhardware.de
'###################################################
Declare Sub Rnb_relaisschalten(byval Relaisnr As Byte , Byval Status As Byte)
Const Relaisport_adr = &H76 'I2C Adr PCF 2
Dim Relaisstatus As Byte
Dim I As Byte
$crystal = 8000000 'Quarzfrequenz
$baud = 9600
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
I2cinit
'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
' Bei Board 1.1 bitte auskommentieren oder löschen
I2cstart
I2cwbyte &H74 'Schreibbefehl an PCF3 schicken
' Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
I2cwbyte &B00000010 'Datenbyte an PCF3
I2cstop
'*********
For I = 0 To 7
Call Rnb_relaisschalten(i , 0) 'erst mal alle Relais sollen abfallen
Next I
Waitms 1
Wiederhole:
For I = 0 To 7
Call Rnb_relaisschalten(i , 1) 'Relais i so anziehen
Next I
Wait 2 'Warte 2 Sekundne
For I = 0 To 7
Call Rnb_relaisschalten(i , 0) 'Relais i soll abfallen
Next I
Wait 2 'Warte 2 Sekundne
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
Ein kleiner Kühlkörper wäre auch nicht schlecht.
http://www.reichelt.de/inhalt.html?S...EARCH=standard
### Silvio ###
Lesezeichen