Relaismodule

BMZ12TN Többcsatornás MOSFET IO-kártya

Die Karte verwendet MOSFETs anstelle von Relais, die mit Opto pro Kanal isoliert sind. Die Eingangsseite kann 5/12/24 Volt sein, die Ausgangsseite kann typabhängig sein, 3,3 / 5/12/24 Volt (muss gemäß dem ausgewählten Wert bestellt werden). Die Anzahl der Kanäle kann ebenfalls ausgewählt werden. Diese Module sind in 4/8/12/16-Kanalversionen (BMZ4TN, BMZ8TN, BMZ12TN, BMZ16TN) eingebaut. Das Gerät kann auch in NPN- oder PNP-Richtung betrieben werden. Das Aussehen des Moduls ist "zivilisiert", es kann auf einer Hutschiene in einem Schrank installiert werden. Ich habe das Modul bei banggood bestellt, von hier.

Technische Daten

   * Stromversorgung: DC3.3 .. 24V    * Betriebsstromaufnahme: 5 .. 10mA    * Ausgang: optokoppelt, isoliert    * Maximaler Ausgangsstrom: 6A    * Ausgangsseitige Spannung: DC5V .. DC24V (fest)    * Schaltzeit: bis zu 1 ms    * Maximale Schaltfrequenz: 2000 Hz    * Installation: Standardschiene (Zylinderschiene)

Verkabelung

Durch Anschließen des SS-Pins können Sie feststellen, ob das Modul in NPN- oder PNP-Richtung arbeitet. Wenn die Versorgungsspannung an den SS-Pin angeschlossen ist, der je nach Konfiguration 5, 12 oder 24 betragen kann, arbeitet das Modul in PNP-Richtung:

PNP VerkabelungNPN Verkabelung

4 csatornás relé modul

Die klassischen Relaismodule sind in 1-2-4-8-Kanal-Versionen für Arduinos erhältlich. Zur Steuerung der Relais sind 15-20 mA pro Kanal erforderlich. Die Relais sind durch Optokoppler von den Eingängen isoliert und wir erhalten auch eine LED-Rückmeldung über ihren Status.

Auf der Ausgangsseite können maximal 30V 10A für Gleichstrom und 250V 10A für Wechselstrom geschaltet werden. Die Ausgangsseite hat auch NO- und NC-Ausgänge.

Ich habe negative Erfahrungen mit dem Modul gemacht. Bei hohen Belastungen habe ich wiederholt festgestellt, dass es mit dem Arduino nicht sofort, sondern nach einer Weile zu einer merkwürdigen Operation kommt. Die gesamte Umschaltung beginnt sich ein- und auszuschalten, in Sekundentakt. Dieser Fehler kann nur bei einem vollständigen Stromausfall behoben werden.

Dieses Problem wird wahrscheinlich durch eine Überlastung des Arduino-Pins verursacht, nach der die Karte versucht, zurückgesetzt zu werden. Da die Last jedoch weiterhin vorhanden ist, wird sie nach dem Hochfahren erneut heruntergefahren. Das Hauptproblem bei diesem Phänomen ist, dass es nicht möglich ist zu wissen, wann es auftreten wird. Um dies zu vermeiden oder zu lösen, wird empfohlen, keine Relaisschaltung zu verwenden (z. B. MOFSET, Halbleiter usw.).

JD jumper

Eine vollständige elektrische Trennung des Relaismoduls Ausgangsseite vom Arduino kann über den JD-Jumper / Stecker erreicht werden:

Wenn sich der Jumper in der VCC-Position befindet, wird das Relais von dem vom Arduino empfangenen VCC angesteuert. Wenn eine externe Stromversorgung an die Position JD-VCC angeschlossen ist, wird der VCC vollständig vom Relais getrennt. In diesem Fall empfiehlt es sich, das Modul wie folgt an den Aurdino anzuschließen:

Beispiel für ein Relaismodul

Relémodul példa
kép forrása: randomnerdtutorials.com

In dieser Konfiguration schaltet der PIR-Bewegungssensor eine 230-V-Lampe mit einer Verzögerung von 10 Sekunden ein. Der JD-Jumper befindet sich hier in der VCC-Position, das Relais wird vom Arduino gespeist. Das Beispielprogramm:

// Relay pin is controlled with D8. The active wire is connected to Normally Closed and common
int relay = 8;
volatile byte relayState = LOW;
 
// PIR Motion Sensor is connected to D2.
int PIRInterrupt = 2;
 
// Timer Variables
long lastDebounceTime = 0;  
long debounceDelay = 10000;
 
void setup() {
  // Pin for relay module set as output
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
  // PIR motion sensor set as an input
  pinMode(PIRInterrupt, INPUT);
  // Triggers detectMotion function on rising mode to turn the relay on, if the condition is met
  attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
  // Serial communication for debugging purposes
  Serial.begin(9600);
}
 
void loop() {
  // If 10 seconds have passed, the relay is turned off
  if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
    digitalWrite(relay, HIGH);
    relayState = LOW;
    Serial.println("OFF");
  }
  delay(50);
}
 
void detectMotion() {
  Serial.println("Motion");
  if(relayState == LOW){
    digitalWrite(relay, LOW);
  }
  relayState = HIGH;  
  Serial.println("ON");
  lastDebounceTime = millis();
}

Angenommen, Sie schalten bereits 230 V ein, möchten Sie möglicherweise die Optik nutzen, um den Arduino von den Relais zu trennen, und zwar mit dem folgenden Zusatz (siehe JD-Überbrückungspunkt oben):


kép forrása: howtomechatronics.com