Inhaltsverzeichnis
Relaisplatine für I2C-Bus
Immer wieder kommt es vor, dass Verbraucher (Motoren, Leuchten, Staubsauger usw.) von einem Controller aktiviert werden müssen. Da der Strom der Controllerboard-Ausgänge dafür selten ausreicht bieten sich Relais an. Diese Platine stellt 5 Relais und 3 FET-Schaltstufen zur Verfügung. Im Gegensatz zu vielen anderen Relaisboards sind auch Umschaltrelais (2xUm) vorhanden. Dadurch können auch komplexere Aufgaben, wie Motorsteuerung in mehrere Richtungen usw., realisiert werden
Und das Beste: Das Port wird per I2C-Bus angesteuert, also 2 Leitungen reichen aus!
Also hier die Leistungsmerkmale auf einen Blick:
- 2 Stück Umschaltrelais (jeweils 2xUM) mit ca. 6A belastbar
- 1 Stück Umschaltrelais (jeweils 2xUM) mit ca. 2A belastbar
- 2 Stück Relais mit einem Schließerkontakt ca. 1A belastbar
- 3 kontaktlose FET Schaltstufen für Verbraucher mit max 40V / 3A
- Nahezu an jedem Controller mit I2C Bus verwendbar
- Stecker und Platinenbohrungen nach Roboternetz-Definition
- Kann Huckepack mit anderen RN-Roboternetzboards verschraubt werden
- Eigene 6V Spannungsstabilisierung für Relais (alternativ kann Spannung über I2C-Port entnommen werden)
- Mehrere Boards kombinierbar, da I2C Slave Adresse frei wählbar
- Alle Relais-Kontakte über Schraubklemmen herausgeführt
- Nur halbe Europakartengröße (RN-Definitionen)
Diagramm
Register für Ansteuerung
Die Relais werden über den I2C-Port von beliebigen Controllern angesteuert. Auf der Relaisplatine befindet sich der bekannte I2C Porterweiterungsbaustein PCF 8574AP. Jedes Bit dieses Portbausteines steht für 1 Relais. Durch einfaches Setzen oder Löschen eines Bits wird das entsprechende Relais ein- oder ausgeschaltet.
Folgende Bits stehen für folgendes Relais:
Bit | Relais |
0 | Relais K2 (2A belastbar) 2xUM |
1 | Relais K1 (6A belastbar) 2xUM |
2 | Relais K3 (6A belastbar) 2xUM |
3 | FET Schaltstufe FET C |
4 | FET Schaltstufe FET B |
5 | FET Schaltstufe FET A |
6 | Relais K4 (1A) |
7 | Relais K5 (1A) |
Der I2C-Port kann von nahezu allen Controllern (z.B. RN-Control, RNBFRA-Board Atmel AVR usw.) recht einfach per Befehl in den verfügbaren Sprachen, wie Basic, Bascom-Basic, C, Pascal, Assembler usw., angesprochen werden. Als Beispiel hier nur ein kleines Bascom-Programm für das RoboterNetz-Board RNBFRA. Andere Beispiele können gerne im Roboternetz noch gepostet werden (wenn noch nicht geschehen).
Empfohlen wird als Slave Adresse für das Board Hex 76. Damit verträgt sich das ganze auch optimal zum RNBFRA Roboterboard.
Schaltplan
Bestückungsplan
Stückliste
1 C1 100n (R=5mm L=6mm,B=3mm) KERKO100N 2 C2,C3 220 uF/35V (R=5mm, D=10mm) RAD 220/35 7 Fet-Power,FETA,FETB,FETC,Power,REL4,REL5 Schraubklemmen 2 polig (R=5,12) AKL 101-02 1 I2C-Bus Wannenbuchse 2x5 gerade WSL 10G 1 IC1 7806 (6-7V Spannungsregler) 7806 1 IC2 UDN2981A UDN 2981 A 4 JP1, ADR Jumper Stiftleiste 1x3 LU 2,5 MS3 (dort werden 3 benutzt) 1 JP2 Jumper Stiftleiste 1x2 LU 2,5 MS2 2 K1,K3 6V Relais 2xUM (max. 8A) FIN 40.52.9 6V 1 K2 6V Relais 2xUM (max. 2A) FIN 30.22.9 6V 2 K4,K5 5V Relais 1xUM (max. 1A) SIL 7271-D 5V 1 PCF PCF8574 AP PCF8574AP 3 IRF540 FET Transistor IRF540 IRF540 6 Relais1A,Relais1B,Relais2A,Relais2B,Relais3A,Relais3B Schraubklemmen 3polig (R=5,12) AKL 101-03 1 RN1 Widerstandsnetzwerk 8x 10k SIL 9-8 10K 1 Platine Fertig gedruckte Platine zum Aufbauen der Schaltung (siehe unter Weblinks)
Beispielprogramm zur Ansteuerung
'################################################### 'relaiskarte.bas 'für 'RoboterNetz Standard-Roboter Board RBNFRA ab 1.1 ' '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 I2C-Bus Config Sda = Portc.1 I2cinit Wiederhole: For I = 0 To 7 Call Rnb_relaisschalten(i , 1) 'Relais i soll anziehen Wait 2 'Warte 2 Sekunden Call Rnb_relaisschalten(i , 0) 'Relais i soll abfallen Wait 2 'Warte 2 Sekunden Next I 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 das 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