banner left Boxtec Banner
Platzhalter BoxtecProdukteForumShopKontaktPlaygroundn/aJobs
 

Leistung schalten mit Arduino

Mechanische Relais

Meist verwendet man zum Schalten von höheren Leistungen mit dem Arduino ein mechanisches Relais. Mechanische Relais benötigen zum Erzeugen des nötigen magnetischen Flusses welcher wiederum den Anker bewegt und damit einen Schalter betätigt einen relativ hohen Erreger- oder Steuerstrom.

Daher können mit einem Mikrokontroller resp. Arduino Digital-Ausgang nur kleinste Relais angesteuert werden, die sich auch nur zum Schalten von sehr geringen Leistungen eignen. Sobald höhere Ströme und Spannungen benötigt werden ist auch ein höherer Steuerstrom nötig. Dieser wird dann oft durch eine einfache Verstärkerschaltung mit einem Transistor oder sogar einer Darlingtonstufe bereitgestellt. Oft wird zusätzlich ein Optokoppler zur galvanischen Trennung sowie eine Freilaufdiode zum Schutz vor der Eigeninduktion bei Abfall des Relais eingesetzt.

Vorteile mechanischer Relais

  • Geringe Anschaffungskosten, hohe Verfügbarkeit
  • hohe Einschaltströme und Überbelastbarkeit
  • geringer Kontaktwiderstand
  • Kann Wechsel- und Gleichstrom gleichermassen schalten

Nachteile mechanischer Relais

  • Funkenschlag beim Schalten (keine Verwendung in explosionsgefährdeten Bereichen)
  • Beschränkte Lebensdauer bedingt durch mechanischen Schaltvorgang
  • langsames Ansprechverhalten, hohe Abfallzeiten, keine schnellen Schaltvorgänge möglich
  • Vibrations- und Erschütterungsempfindlich
  • hörbares Schaltgeräusch

Halbleiter-Relais

Im Gegensatz zum mechanischen Relais, verfügt das Halbleiter-Relais über keine mechanischen Komponenten, sondern wird wie der Name andeutet mit Halbleiter-Komponenten gebaut. Halbleiter-Relais sind bestehen meist vereinfacht dargestellt auf der Eingangsseite aus einem Optokoppler welcher das Steuersignal galvanisch vom Lastkreis trennt und abhängig von der geschalteten Stromart einen Transistor (für DC) oder mehrere Thyristoren/Triacs (für AC) ansteuert welche die Last dann effektiv schalten.

Durch Ihren Aufbau benötigen Halbleiter-Relais einen viel kleineren Steuerstrom zum Schalten grosser Leistungen.

Halbleiter-Relais verdrängen je länger je mehr die konventionellen mechanischen Relais in den meisten Anwendungen.

Vorteile Halbleiter-Relais

  • hohe Schaltgeschwindigkeit
  • sehr geringer Steuerstrom
  • keine Schaltgeräusche
  • kein Funkenschlag (geeignet zum Einsatz in explosiven Umgebungen)

Nachteile Halbleiter-Relais

  • höherer Kontaktwiderstand als ein mechanisches Relais, dadurch leichte Erwärmung beim Schalten hoher Lasten
  • kann nur entweder Wechsel- oder Gleichstrom schalten (je nach Modell)
  • teurer als mechanische Relais
  • keine komplette Trennung des Lastkreises und somit minimale Leckströme im ausgeschalteten Zustand
  • Bei Halbleiter-Relais für Gleichstrom muss unbedingt die Polarität beachtet werden

Beispiel Halbleiter-Relais

Beispiel 1: Steuerung eines 230VAC LED-Leuchtmittels

Schalten eines 230VAC LED Leuchtmittels mittels Schaltung eines SSR-10DA 10A Halbleiter-Relais welches direkt vom Arduino Pin 7 gesteuert wird.
Mit folgendem Beispielcode wird unser Lämple nach einer zufälligen Verzögerung von 1-5000ms ein- und danach wieder ausgeschaltet:

SSR Prinzipschema
SSR Schaltung mit Arduino

// Ansteuerung eines Halbleiter-Relais 
// an Pin 7
 
#define SSR_Pin 7
 
void setup() {
  pinMode(SSR_Pin, OUTPUT);
  digitalWrite(SSR_Pin, LOW);
  randomSeed(analogRead(0));
}
 
 
void loop() {
  delay(random(1, 5000));
  digitalWrite(SSR_Pin, HIGH);
  delay(random(1, 5000));
  digitalWrite(SSR_Pin, LOW);
}

Dadurch, dass das SSR-10DA 10A Halbleiter-Relais nur rund 7.5mA Steuerstrom benötigt kann es gefahrlos direkt am Arduino Pin 7 betrieben werden.

Beispiel 2: Steuerung eines 230VAC 2000W Heizlüfters

Wir steuern einen normalen 2KW Heizlüfter mit dem SSR-10DA 10A Halbleiter-Relais. Um es etwas spannender zu gestalten, haben wir einen digitalen Temperatur- und Feuchtesensor DHT11 an Pin 6 angeschlossen und regeln so nun die Raumtemperatur mit dem Heizlüfter (die Luftfeuchtigkeit ist nicht nötig, aber dieser Sensor war grad griffbereit).

Der Arduino Code zum einfachen Regeln der Raumtemperatur mit einem Heizlüfter:

// $Id: ssr_heatreg.pde,v 1.3 2011-10-23 17:52:22 obiwan Exp $
 
#include <dht.h>
 
#define SSR_Pin 7
#define DHT11_PIN 6
#define CHECK_DELAY 10000
 
dht DHT;
 
// 
int sollTemp = 24;
 
void setup() {
  pinMode(SSR_Pin, OUTPUT);
  // stelle sicher, dass Ausgang anfangs ausgeschaltet
  digitalWrite(SSR_Pin, LOW);
  Serial.begin(9600);
}
 
 
void loop() {
  // Reglerfunktion aufrufen
  regulator();
  delay(CHECK_DELAY);  
}
 
// Regler  
void regulator() {
  // Sensor auslesen:
  double dhtData[2];
  readSensor(dhtData);
  Serial.print("Temp: ");
  Serial.print(dhtData[0]);
  Serial.print(" - Hum: ");
  Serial.println(dhtData[1]);
  // Prüfen ob Sollwert erreicht, unter- oder ueberschritten:
  if ( int(dhtData[0]) >= sollTemp && digitalRead(SSR_Pin) == HIGH ) {
    Serial.println("Temperatur erreicht, schalte aus.");
    digitalWrite(SSR_Pin, LOW);
  }
  else if ( int(dhtData[0]) < sollTemp  && digitalRead(SSR_Pin) == LOW ) {
    Serial.println("Temperatur unterschritten, schalte ein.");
    digitalWrite(SSR_Pin, HIGH);
  }  
}
 
// Sensor auslesen
void readSensor(double dhtData[]) {
  int chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case 0:  break;
    case -1: Serial.print("Checksum error,\t\n"); break;
    case -2: Serial.print("Time out error,\t\n"); break;
    default: Serial.print("Unknown error,\t\n"); break;
  }
  dhtData[0] = DHT.temperature,1;
  dhtData[1] = DHT.humidity,1;
}

Für das Auslesen des DHT11 wurde die Library aus dem Arduino Playground verwendet, es existiert aber noch eine weitere Library von Ladyada die den gleichen Zweck erfüllt.

Referenzen

 
reviews/solidstaterelay.txt · Last modified: 2011/10/23 20:53 by boxtec
 
 

zum Seitenanfang

Letzte Aktualisierung: © boxtec internet appliances · the better security products