Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen/Antworten zur Relaiskarte RN-Relais
Hallo,
ich habe die Relaiskarte an RN-Control angeschlossen und ein wenig mit folgendem Progrämmchen gespielt:
$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
Weil die Relaiskarte über I2C läuft, habe ich die LED's mal an Port A "geklemmt". Ich frage mich nur, warum die LED's nach Übertragung des Programms oder Reset sofort allesamt leuchten. Nach meinem Verständnis sollte jeweils nur eine LED angehen, wenn ein Relais anzieht.
Und: kann man irgendwie vermeiden, das die Relais beim Einschalten der Betriebsspannung anziehen?
TIA: - Reinhard -
Die Relais werden über einen PCF angesteuert. Dieser führt beim RESET immer High Pegel daher schalten die Relais durch.
Also entweder direkt nach dem Reset per I2C alles auf Low schalten oder halt bei den Relais den anderen Wechselkontakt nutzen.
Gruß Frank
Hallo Frank,
Die Relais werden über einen PCF angesteuert. Dieser führt beim RESET immer High Pegel daher schalten die Relais durch.
Stimmt, hatte ich vergessen ... Man könnte jedoch noch einen Motorola MC14049B Hex Inverter/Buffer zwischenschalten. Ist irgendwie nicht so schön, wenn beim Einschalten alle Relais anziehen und je nach Anwendung der Relaiskarte auch gefährlich ...
Bzgl. Low auf den I2C-Bus: einmal ziehen die Relais in der jetzigen Form der Karte aber doch noch an, oder?
+++
Hast Du 'ne Idee bzgl. der LED's auf RN-Control? Liefern die Ports des M32 auch standardmäßig High-Pegel nach dem Einschalten?
Irgendwie komme ich mit dem M32 nicht so recht klar: ich stelle mir einfach vor, das nach dem Einschalten der Betriebsspannung erst dann eine Aktion erfolgt, wenn ich a) eine Aktion anstoße (bspw. per Taster) oder b) der Programmablauf so gestaltet ist. Aber das dürfte wohl kein Problem von RN-Control sein.
- Reinhard -
Hallo Reinhard,
zu RN-RELAIS:
ja man hätte statt dem vorhandenen Relaistreiber auch einen invertierte Version nehmen können. Aber sah das eigentlich als nicht so problematisch an das die Relais kurz anziehen. Wenn man es weiß kann man es ja berücksichtigen. Und da drei Relais Wechselkontakte haben, kann man es ja duch den Anschluß umkehren wenn es stört. Aber bei einer spätere Platinenserie könnte ich das auch umkehren, das ist kein Problem.
Also derzeit ist es so das ein Relais dann anzieht wenn der PCF auf High steht. Bei Low fällt es ab!
zu RN-Control:
Meinst du wirklich RN-Control oder das RNBFRA Board?
Die Fragen mit den LED´s hab ich nicht so recht verstanden. Also die LED´s bei RN-Control sind invertiert um die Ports so wenig wie möglich zu belasten, diese sollen ja auch für andere Funktionen bereitstehen. Das heißt sie leuchten immer dann wenn ein Low Signal auf einem Port ist. Es wird der komplette Portc mit LED´s überwacht. Da auf dem Port C auch der Hardware I2C-Bus (SDA/SCL) liegt, kann man auch sehr schön die Busleitungen kontrollieren, falls diese genutzt werden.
Sollte noch was unklar sein, bitte nochmal etwas näher erläutern!
Gruß
Frank
Hallo Frank,
zu RN-Control:
Meinst du wirklich RN-Control oder das RNBFRA Board?
ich meine wirklich RN-Control.
Zur Frage mit den LED's siehe meinen ersten Beitrag: ich habe die LED's an PortA angeschlossen, weil der I2C-Bus über PortC, bzw. 2 Pin's davon, läuft und ich nicht davon ausgegangen bin, das ich die LED's zusätzlich an PortC betreiben kann.
Und da ist es nun so, das alle LED's beim Einschalten aufleuchten.
Also die LED´s bei RN-Control sind invertiert um die Ports so wenig wie möglich zu belasten, diese sollen ja auch für andere Funktionen bereitstehen. Das heißt sie leuchten immer dann wenn ein Low Signal auf einem Port ist.
Ok, das heißt dann wohl, das die Ports nach Einschalten Low-Signal führen und die LED's deshalb leuchten.
Es wird der komplette Portc mit LED´s überwacht. Da auf dem Port C auch der Hardware I2C-Bus (SDA/SCL) liegt, kann man auch sehr schön die Busleitungen kontrollieren, falls diese genutzt werden.
Kann ich das mit "Du kannst die LED's ruhig an PortC lassen" übersetzen? Sprich, es ist kein Problem, I2C und LED's gleichzeitig zu nutzen?
Aber schau noch mal in oben gepostete Programm. Da sieht man wohl, was ich möchte (LED soll optisch das Anziehen eines Relais anzeigen).
TIA: - Reinhard -
Kann ich das mit "Du kannst die LED's ruhig an PortC lassen" übersetzen? Sprich, es ist kein Problem, I2C und LED's gleichzeitig zu nutzen?
Hi,
nein, da hast du mich falsch verstanden. Ich hab nur gesagt das generell die LED´s halt PORT C überwachen wenn alle DIP Schalte raktiviert sind. Wenn man andere Ports überwachen will muss man DIP Schalter deaktivieren und eine Drahtbücke einstecken.
Jetzt hab ich glaub versatnden was du meinst. Also mit dem I2C Befehl schaltest du auch noch ein LED an Port A. Jetzt ist auch klar warum alle LED´s dann leuchten. Wenn ein Port auf Ausgang konfiguriert wird, dann schaltet er automatisch erst mal alles auf LOW. Da die LED´s bei LOW leuchten, gehen also alle an. High ist dann wenn eines Aus ist.
Nach einem Reset sind immer alle Ports auf Eingang geschaltet und somit hochohmig. Dadurch leuchten keine LED´s. Das ist also nur deshalb weil du Port auf Ausgang geschaltet hast, was völlig richtig ist.
Merke:
Wenn eine LED aus geht, dann ist High Pegel am Port und Relais zieht an!
Gruß Frank
Millenniumpilot
11.09.2005, 19:14
Hallo Frank,
toll, das es die Suchfunktion gibt ;-)
Ich habe mich gerade nach dem Aufbau meines Relais-Board gewundert, daß die Relais alle anziehen (ausser die beiden Großen, da reichen die 4,98V, die über den i2c-Bus kommen leider nicht aus).
Ich persönlich finde es auch störend, das die Relais ohne Initialisierung schon anziehen. Das Argument mit den Wechselkontakten zählt IMHO nicht, da nicht alle Teile Wechsler sind und auch unnötig Strom verbraucht wird. Meiner bescheidenen Meinung nach sollten die Relais erst einschalten, wenn ICH es will und das Board über i2c entsprechend ansteuere.
Ich habe das jetzt nicht ganz verstanden. Gibt es einen entsprechenden pinkompatiblem IC, welcher die Signale gleich invertiert?
Wenn ja, wie heist dieser?
Gruß Dirk
PS: hast Du eine Beschreibung der Jumperbelegung für die i2c-Adressen.
Ich habe den Schaltplan und Deine Beispieljumperbelegung (H76)jetzt so verstanden, das ich Adressen nach der Formel 70 + A1(=2) +A2 (=4)+ A3 (=8 ) einstellen kann. Ist das korrekt so?
The Puma
11.09.2005, 19:29
Sehe antwort von Frank,
zu RN-RELAIS:
ja man hätte statt dem vorhandenen Relaistreiber auch einen invertierte Version nehmen können
Dieser IC muss es geben
Wass ist der invertierte version von UDN2981?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.