Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Eingänge PCF 8574 Kategorie: Hardware (von gerd - 21.03.2007 12:32)
 Als Antwort auf Re: Eingänge PCF 8574 von chuckie - 20.03.2007 18:04
gerd nutzt:  CC1-M-Unit V1.2/2.0
Also, an den bus muß je von SDA und SCL ein 2,2K Widerstand an +5V angeschlossen werden. Als Pullup.
Dann mĂŒssen alle EingĂ€nge des PCF mit einem 47K Widerstand mit +5V verbunden werden. Die Pullups im PCF reichen nicht aus! Beim PCF als Ausgang muß vor der (NPN gesteuert) Relaisstufe ein 2,2K auf +5V zu den AusgĂ€ngen gelegt werden. Das folgende Beispielprogramm ist getestet und lĂ€uft!

DEFINE SDA      PORT[9]
DEFINE SCL      PORT[10]

'AusgÀnge
DEFINE OutIC1     BYTEPORT[3]                

DEFINE  aa        BIT[1]
DEFINE  bb        BIT[2]
DEFINE  cc        BIT[3]
DEFINE  dd        BIT[4]
DEFINE  ee        BIT[5]
DEFINE  ff        BIT[6]
DEFINE  gg        BIT[7]
DEFINE  hh        BIT[8]
DEFINE  Out1       BYTE[1]

'EingÀnge
DEFINE InIC1      BYTEPORT[11]

DEFINE a          PORT[81]
DEFINE b          PORT[82]
DEFINE c          PORT[83]
DEFINE d          PORT[84]
DEFINE e          PORT[85]
DEFINE f          PORT[86]
DEFINE g          PORT[87]
DEFINE h          PORT[88]

' Voreinstellungen
SDA=on:SCL=on
InIC1=&B11111111                                         ' Alle eingĂ€nge high schalten

OutIC1=&B00000000                                       ' Alle AusgĂ€nge am IC ausschalten
Out1=0

' Programmbeispiel
#LOOP
IF h =0 THEN hh=1 ELSE hh=0                             ' funktion1
IF a =0 THEN gg=1 ELSE gg=0                             ' funktion2
IF b =0 THEN ff=1 ELSE ff=0                             ' funktion3
IF f =0 THEN ee=1 ELSE ee=0                             ' funktion4
IF e =0 THEN dd=1 ELSE dd=0                             ' funktion5
IF d =0 THEN cc=1 ELSE cc=0                             ' funktion6

OutIC1=Out1
goto LOOP

Gruß Gerd



> Ich hab jetzt mal das Standartprogramm von der Porterweiterung geladen, das wo man die PortzustÀnde ablesen kann und komischer weise funktioniert des einwahnfrei. Dann hab ich das Programm von mir in das programm mit reingeschrieben und jetzt funktioniert alles so wies soll.. komisch ich denke nich das das daran liegt....
> > Der Interrupt-Pin interessierte mich nur, weil der bei mir beim einzigen nicht funktionierenden PCF verbunden ist.
> > Wie lang ist der Bus, Pullups vorhanden?
> > Wenn du ne Lösung hast, lass es uns (MICH!) wissen...
> >
> >
> > > ne nur die Bus-Leitung verbindet die unit mit pcf 8574 und 5v & 0v natĂŒrlich auch...  
> > > ja das stimmt, nur das war als beispiel gemeint....
> > > ich probiere es gleich mal.... nur das komische ist ja das die lcd displays die mit nem pcf 8574 gekoppelt sind und die relais einwahnfrei funktionieren  wenn ich z.b.
> > > den port [5] als taster nehme, natĂŒrlich nur mit 5V als eingang dann schaltet das relai...
> > >
> > >
> > > > Hallo,
> > > >
> > > > mal abgesehen davon, dass das Relais nur solange schaltet wie der Taster gedrĂŒckt ist und man dann auch
> > > >
> > > > relai1 = Taste1
> > > >
> > > > schreiben könnte, habe ich zeitweise dasselbe Problem (siehe Beitrag "I2C-VerlÀngerung").
> > > > Ist an deinem PCF8574 der Interrupt-Pin mit der Unit verbunden?
> > > > Hast du mal versucht,
> > > > LCD.INIT
> > > > LCD.OFF
> > > > SDA=on
> > > > SCL=on
> > > > zu tauschen, also so:
> > > > SDA=on
> > > > SCL=on
> > > > LCD.INIT
> > > > LCD.OFF
> > > >
> > > > MfG
> > > > Todi
> > > >
> > > > > > Ich will einen PCF 8574 als eingÀnge benutzten, mit tastern die auf die eingÀnge masse (0V) geben.
> > > > > > Wenn ich z.b. Taster 1 (port 80) drĂŒcke soll der port 65 geschaltet werden.
> > > > > >
> > > > > > define tasten as byteport[10]
> > > > > > define taste1 as port[80]
> > > > > > define relai1 as port[65]
> > > > > > define SDA port[9]
> > > > > > define SCL port[10]
> > > > > >
> > > > > >
> > > > > > LCD.INIT
> > > > > > LCD.OFF
> > > > > > SDA=on
> > > > > > SCL=on
> > > > > >
> > > > > > tasten=11111111b
> > > > > >
> > > > >   #loop (sry hatte ich vergessen. nachtrag)
> > > > > > if taste1=off then
> > > > > > relai1=on
> > > > > > else
> > > > > > relai=off
> > > > > > end if
> > > > > >
> > > > > > goto loop (sry hatte ich hier vergessen)
> > > > >
> > > > > > Irgendwie funktioniert das aber nich, so als wĂŒrde der pcf garnicht erkennen das der port 80 (7) aus low gesenkt wurde.. das relai bleibt auf off.
> > > > > >
> > > > > > Wenn ich mit einem messgerĂ€t von port 80 gegen masse messe hab ich 5 Volt (4,95V) wenn ich den byteport 10 auf 0 setzte hab ich 0 volt anzeige  als das funktioniert, kaputt ist der chip net.. Das trĂ€gt umsomehr zu meiner verzweiflung bei.... kann mir jemand helfen

 Antwort schreiben

Bisherige Antworten: