Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: I2C und dann PCF ansteuern oder umgekehrt Kategorie: I²C-Bus (von André H. - 21.10.2003 14:50)
Als Antwort auf I2C und dann PCF ansteuern oder umgekehrt von aquamolli - 18.10.2003 22:29

Hallo Aquamolli,

Zum Ansteuern des HSRel5 benutzt Du am besten das Modul pcf.c2 .
Wichtig bei pcf.c2 ab V2.1 ist der Init() !
D.h., es muÃ? beim Systemstart einmalig pcf.init(); aufgerufen werden,
sonst ganz es u.U. zu Fehlfunktionen kommen.

Beim Schalten der Relais beim HSRel5 (wie auch beim SR/PCF-Rel8 I²C-Vers. & PCF-RT4-HS)
muÃ? beachtet werden, daÃ? die Relais invertiert geschalten werden.
D.h., ein High-Bit bedeutet Relais, ein Low-Bit beudeutet Relais ein.
Somit wird mit pcf.on() das Relais ausgeschaltet und mit pcf.off() das Relais eingeschaltet.
Der Grund für diese Invertierung ist ganz einfach:
So wird vermieden, daÃ? alle Relais nach Anlegen der Spannung sofort anziehen.

Hier ein kleines Testproggie:
const PCF=0; // Adresse des PCF8574 (0-15)
thread main
{string s;byte state,i;
 pcf.init();
 hwcom.init();
 hwcom.setspeed(8);
 hwcom.print(s);
 loop
 {
  hwcom.put(12);
  s="Relais Testproggie";
  hwcom.print(s);
  hwcom.ret();
  hwcom.ret();
  s="Rel1"+9+"Rel2"+9+"Rel3"+9+"Rel4"+9+"Rel5"+9+"Rel6"+9;
  hwcom.print(s);
  wait hwcom.ready();
  s="Rel7"+9+"Rel8"+13+10;
  hwcom.print(s);
  state=pcf.in(PCF);
  for i=0...7
  {
   hwcom.put(((not state shr i) and 1) +0x30);
   hwcom.tab();
  }
  s=13+10+"Relais 1 - 8: ";
  hwcom.print(s);
  wait hwcom.rxd();
  i=hwcom.get();
  hwcom.put(i);
  i=i-0x31;
  if i<=7
  {
   s=13+10+"1=Ein, 0=Aus: ";
   hwcom.print(s);
   wait hwcom.rxd();
   state=hwcom.get();
   hwcom.put(state);
   pcf.set(PCF,i,(state-0x30)==0);
  }
 }
}


Lade das Proggie in die CC2 und öffne dann das Hyperterminal (57.600 Baud).
Jetzt solltest Du die Relais bequem schalten können. :-)

MfG André H.


> Hallo Forum,
>
> tja ich hab da wieder mal ein Prob. Hab von Andrè das HS5Rel mit für den I2C-Bus. Leider kann ich keines der
> Relais ansprechen. MuÃ? ich zuerst den I2C capturen (wenn ja, wie??) und dann das Relais per PCF.on(1,0)setzen
> oder umgekehrt? Kann mir jemand ein bischel Quälcode als Beispiel dafür geben??
>
> Danke
>
> Aquamolli


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: