Das Relais ist eine Komponente, welche es ermöglichen soll mit geringen Schaltströmen grosse Lasten zu schalten. So kann beispielsweise mit dem Raspberry Pi eine grosse Lampe geschaltet werden, ohne den Raspberry Pi zu beschädigen. Um eine Last zu verkabeln, stellt das Relais drei Anschlüsse zur Verfügung. Diese sind beim CrowPi mit ´NC, NO, COM´ beschriftet. Die Anschlüsse für die Ansteuerung durch den CrowPi sind wie auch bei den anderen Komponenten bereits fertig verkabelt.
Auf dem Schaltbild des Relais ist sehr gut zu erkennen, wie das Relais zu benutzen ist. Dabei stellt das Schaltsymbol immer den
stromlosen Zustand einer Komponente dar. Also der digitale Ausgang im Status LOW
ist.
Auf dem Bild stellt das Rechteck die Spule des Relais dar. Wenn die
Spule unter Strom gesetzt wird, bewegt sich der Kontakt entsprechend auf die andere Position. So kann ein Stromkreis jeweils zwischen COM - NC
oder COM - NO
geschlossen werden.
Beim im CrowPi verbauten Relais handelt es sich um ein 24VDC/3A oder 120VAC/3A Produkt. Diese technische Spezifikation ist zwingend zu beachten. Überlastung des Relais kann den CrowPi beschädigen. Es besteht Brandgefahr!
Für diese Komponente werden keine spezifischen DIP-Switches benötigt, sodass diese in der Standardkonfiguration belassen werden können:
Nachfolgend wird die Verwendung der Klasse
com.pi4j.crowpi.components.RelayComponent
Javadoc
beschrieben.
Konstruktor | Bemerkung |
---|---|
RelayComponent(com.pi4j.context.Context pi4j) | Initialisiert ein Relais mit dem Standard-Pin für den CrowPi. |
RelayComponent(com.pi4j.context.Context pi4j, int address) | Initialisiert eine Relais mit einem benutzerdefinierten Pin. |
Methode | Bemerkung |
---|---|
void setStateOn() | Schaltet das Relais ein. |
void setStateOff() | Schaltet das Relais aus. |
boolean toggleState() | Wechselt den Zustand des Relais abhängigen vom aktuellen Zustand. Gibt den neuen Zustand als boolean zurück. |
void setState(boolean on) | Setzt den aktuellen Zustand des Relais auf den Wert des boolean on . |
Die Beispielapplikation initialisiert kurz das Relais. Danach wird es einige Male hin und her geschaltet, um das Toggle
zu demonstrieren.
Alles in allem eine kurze und kompakte Anwendung. Die Herausforderung bei einem Relais liegt mehr in der richtigen Verkabelung als in der
Software.
src/main/java/com/pi4j/crowpi/applications/RelayApp.java
package com.pi4j.crowpi.applications;
import com.pi4j.context.Context;
import com.pi4j.crowpi.Application;
import com.pi4j.crowpi.components.RelayComponent;
/**
* This example shows how to use the relay component by creating a clock-like sound by repeatedly toggling the relay on and off.
*/
public class RelayApp implements Application {
@Override
public void execute(Context pi4j) {
// Create a new RelayComponent with default Pin
RelayComponent relay = new RelayComponent(pi4j);
// Turn on the relay to have a defined state
relay.setStateOn();
sleep(1000);
// Make a clock alike sound by toggle the relay every second once
for (int i = 0; i < 10; i++) {
System.out.println(relay.toggleState());
sleep(1000);
}
// That's all so turn off the relay and quit
relay.setStateOff();
System.out.println("off");
sleep(2000);
}
}