PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Ausgabekarte mit PCF8574



hallo1
07.07.2004, 15:31
Hallo,
ich habe auf www.horter.de (http://www.horter.de) eine I2C Ausgabekarte (http://www.horter.de/i2c/i2c-ausgabe/ausgabe_1.html) entdeckt, auf der ein PCF8574 verbaut ist und man dadurch nur 2 Ports an der C-Control benötigt.
Wie man die anschließt ist mir klar, aber nicht wie man die einzelnen Relais ansteuert, kann mir das vielleicht jemand erklären?

Danke schonmal im Voraus.

07.07.2004, 15:49
Ist denn keine Anleitung dabei? Eine etwas belastbarere Relaiskarte sogar mir Umschalterelais gibts hier http://www.robotikhardware.de/relaisplatine.html
Ansteuerung dürfte gleich sein, es ist auch ein PCF8574 verbaut. Schau doch da mal in die Anleitung

hallo1
07.07.2004, 16:14
Also ne Anleitung ist ned dabei in der steht wie man die Karte ansteuern kann.
Hab mir mal den Link von dir angeschaut, ist schon nicht schlecht, aber ich bräuchte halt nen Beispiel in Basic...

07.07.2004, 16:24
In Bascom hab ich was:



$regfile = "m32def.dat"
$crystal = 1000000
$baud = 9600


Declare Sub Schalte_relais(byval Relaisnr As Byte , Byval Status As Byte)


Dim I As Byte
Dim Relaisstatus As Byte


Const Relaisport_adr = &H76


'Ports für I2C-Bus
Config Scl = Portc.0
Config Sda = Portc.1

'I2C-Bus initialisieren
I2cinit


Config Porta = Output


Main:

For I = 0 To 7

Porta.i = 0
Call Schalte_relais(i , 1)
Wait 1

Porta.i = 1
Call Schalte_relais(i , 0)
Wait 1

Next I

Goto Main


Sub Schalte_relais(byval Relaisnr As Byte , Byval Status As Byte)

Relaisstatus.relaisnr = Status

I2cstart

I2cwbyte Relaisport_adr 'Schreibbefehl an PCF
I2cwbyte Relaisstatus 'Datenbyte an PCF

I2cstop

End Sub

hallo1
07.07.2004, 16:30
naja, also wie gesagt, basecom bringt mir nicht viel, ich brauch basic...

Frank
07.07.2004, 18:26
Bei der C-Control brauchst du noch ein Assemblerprogramm zur Ansteuerung des I2C-Bus. Schau mal im Download-Bereich, da haben wir ein geeignetes I2C-Assemblerprogramm für die C-Control. Das kannst du in Basic einbinden. Ich glaub es ist sogar Beispiel für den PCF dabei.

Gruß Frank

PS. Bascom ist auch Basic, allerdings für die Atmel Controller.

hallo1
07.07.2004, 19:25
Hallo Frank,
könntest du mir vielleicht den zusammenhang von dem Beispiel und dem Assemblerprogramm erklären? und am besten auch wo ich was in welcher Form angeben muss... :cheesy:

Frank
07.07.2004, 20:27
Hi,
den Treiber (AssemblerProgramm) findest du hier https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=2

Ich glaube eine compilierte Fassung ist auch dabei. In dem Demo siehst du wie der Maschinencode mit dem Befehl SYSCODE eingebuden wird und wie einzelne Ports gesetzt werden. Im Grunde ist es auch oben in dem bascom Beispiel schon zu erkennen.
Es müssen dann beim Aufruf zwei Parameter angegeben werden. Die I2C-Adresse der Relaisplatine (die steht in der jeweiligen Anleitung und kann meist frei über Jumper konfiguriert werden, bei rnrelais wird das beschrieben). Als zweiten Parameter die Binärzahl die den Schaltzustand angibt. Beispielseweise ist ja 255 = Binär 11111111. Also alle 8 Relais ziehen an. Oder Dezimal 3 = Binär 00000011 Also nur das erste und zweite Relais zieht an. So ist es zumindest bei rnrelais, manchmal ist es bei anderen Karten auch umgekehrt. Mußt du austesten. Am besten versuchst du erst mal den I2C Code runter zu laden und das Beispiel zu compilieren. Dann musst du versuchen den Code nachzuvollziehen

hallo1
07.07.2004, 22:39
Ok, danke erstmal.
Sobald ich meine "Ausgabekarte" hab werd ichs halt mal ausprobieren...