Hauslichtautomatisierung

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

zurück zum Hauptartikel: Praktikum Produktionstechnik

Abb. 1 Projekthaus
Autor: Anivesh Kumar, Linus Sauermann, Torben Moratz
Betreuer: Marc Ebmeyer, Prof. Dr. T.M Wibbeke

Einleitung

Im 7. Semester des Studiengangs Mechatronik ist das Praktikum „Produktionstechnik II“ dem Modul „Produktionstechnik und Management“ zugeordnet. In diesem Praktikum entwickeln die Studierenden mechatronische Systeme, die mittels SPS (Speicherprogrammierbare Steuerung) gesteuert werden.

Im Rahmen des Projekts „Hauslichtautomatisierung“ wird ein Smart-Home-System im kleinen Maßstab mit einer Lichtsteuerung und einer Jalousiesteuerung aufgebaut und simuliert. Die Steuerung erfolgt über eine Siemens SPS vom Typ SIMATIC ET 200SP.

Aufgabenstellung

Es wird ein Modellhaus gebaut, das über eine Beleuchtung und automatisierte Jalousie verfügt. Die Steuerung erfolgt später über eine Siemens-SPS vom Typ SIMATIC ET 200SP in Kombination mit einem HMI.

Funktionale/Technische Systementwurf

Abb. 2 Funktionaler Systementwurf

Technischer Systementwurf

Im Dach des Hauses befindet sich ein Potentiometer, das der SPS die Tageszeit als Eingangssignal vorgibt. Die SPS wertet den Potentiometerwert aus und gibt anschließend zwei analoge Steuersignale im Bereich von 0 bis 4,4 V an eine von uns gelötete Platine aus. Diese Platine passt die Signale an und wandelt sie in für die LED-Streifen geeignete Spannungen um.

Zeitgleich sendet die SPS ein Steuersignal an den Arduino für die Jalousien. Die Jalousien werden über einen 5-V-Schrittmotor angesteuert, der vom Arduino betrieben wird. Abhängig vom SPS-Signal fahren die Jalousien in drei Stufen:

- geschlossen,

- halb geöffnet,

- vollständig geöffnet.

Zu Beginn wird der Referenzpunkt (Nullpunkt) über einen Endlagentaster angefahren: Beim Drehen des Schrittmotors betätigt die Achse einen definierten Endschalter. Dadurch erhält der Arduino ein Signal, speichert diese Position intern als Referenz (Merker) und steuert anschließend die weiteren Jalousie-Positionen über eine festgelegte Anzahl an Schritten an.

Komponentenspezifikation

Tabelle 1: Materialliste
Nr. Anz. Beschreibung
1 4 LED-Streifen - Inventronics GmbH - LF1100TW-G5 -927.965-09 L2
2 1 24V Netzteil
3 1 Schrittmotor 28BYJ-48 mit ULN2003 Treiberplatine
4 1 Arduino Mega 2560
5 1 Harting Industriestecker für Verbindung mit SPS -> Verdrahtung nach Schaltplan
6 1 Hutschiene mit Klemmen zur Stromverteilung
7 1 Lochkarte-Platine
8 8 10 kOhm Widerstände
9 8 39 Ohm Widerstände
10 8 Transistor BC547C
11 1 Haus aus Holz
12 4 Aus Alu-Vollmaterial gefräste Fenster
13 20 3D-gedruckte Möbel
14 1 10 kOhm Potentiometer

Umsetzung

Für die Umsetzung des Projektes haben wir uns folgende Aufgaben in der hier genannten Reihenfolge überlegt:

Tabelle 2: Aufgabenlsite
Nr. Beschreibung
1 Rohgestell des Hauses aus Holz anfertigen
2 Fenster einbauen
3 Boden einbauen
4 Kanten des Hauses mit Umleimer und Blech verdecken
5 Leuchten drucken, LED-Streifen einlassen, Leuchten einbauen
6 Welle für Jalousie drehen
7 Adapter von Motor auf Jalousiewelle drucken
8 Zuleitung für Haus einbauen
9 Hartingstecker und Buchse verdrahten + einbauen
10 Endlagentaster für Jalousie verbauen
11 Netzteil verbauen
12 Klemmleisten verbauen
13 Möbel 3D Drucken
14 Potenziometer verbauen
15 Steuerungsplatine verlöten
16 Programmierung SPS
17 Programmierung Arduino

Beleuchtung

Abb. 3 Inventronics GmbH - LF1100TW-G5 -927.965-09 L2


Für die Beleuchtung des Hauses werden vier LED-Streifen der Inventronics GmbH (Modell: LF1100TW-G5 -927.965-09 L2) verwendet, die auf 24-V-Basis betrieben werden. Die vier LED-Streifen ermöglichen eine dimmbare Beleuchtung des Modellhauses, wahlweise in Kaltweiß oder Warmweiß. Die +24 V müssen dabei dauerhaft anliegen. Durch eine kontrollierte Stromabführung am CW (Coldwhite) und WW (Warmwhite) Kontakt wird die Lichtfarbe und die Dimmung gesteuert. Die Stromabfuhr wird durch die selbst erstellte Platine realisiert.

Verbindung SPS

Die Verbindung zwischen Haus und SPS wird mittels Hartingstecker realisiert. Dafür haben wir einen Hartingstecker an eine vieladrige Leitung gelötet und die benötigten Kontakte an die SPS selbst angeschlossen. Hausseitig gibt es das Äquivalent für das Haus. In die Wand des Hauses ist eine Buchse eingelassen, in der alle Kontakte mit einzelnen Adern verbunden wurden. Die verplanten Kontakte sind gemäß Anschlussplan verdrahtet. Es sind allerdings noch viele Kontakte frei belegbar.

Schaltplatine

Im Folgenden ist die angestrebte Lichtkurve zu sehen. Sie ist aus der Steuerung von Triluxleuchten inspiriert und passt sich dem durchschnittlichen Tagesverlauf des Sonnenlichts an. Es folgt dem Human-Centric-Lighting-Konzept.

Abb. 4 Steuerspannung/Tageszeitverlauf für LED-Streifen

Ein im Dach des Hauses eingebauter Potentiometer liefert ein analoges Signal an die SPS SIMATIC ET 200SP. Das System ist so ausgelegt, dass 0 V der Uhrzeit 00:00 entspricht und 10 V (Maximalspannung der SPS) der Uhrzeit 23:59.

Die SPS liest die analogen Werte des Potentiometers ein und wertet sie aus. Auf dieser Grundlage steuert sie über zwei LED-Platinen insgesamt vier Signale für die Kaltweiß- und Warmweiß-Kanäle der LED-Streifen.

Abb. 5 Schaltplan für die Steuerung des LED-Streifens

Die Schaltung besteht aus einer Platine mit insgesamt 8 Sektoren. Jeder Sektor dient zur Ansteuerung von jeweils einem CW oder WW Lichtkanal. Durch die NUtzung von den vollen 8 Sektoren kann für jede Leuchte separat die direkte und die indirekte Beleuchtung gesteuert werden. Angeschlossen sind aktuell allerdings nur 2 Sektoren und somit leuchten alle Leuchten sowohl direkt als auch indirekt gleich. Für den Betrieb der LED-Streifen ist eine Versorgungsspannung von 24 V erforderlich, die über eine externe Spannungsquelle bereitgestellt wird. Jeder LED-Streifen besitzt zwei separate Kanäle: einen für Kaltweiß und einen für Warmweiß.

Zur Ansteuerung der einzelnen Kanäle werden insgesamt acht Transistoren vom Typ BC547C eingesetzt. Damit lässt sich je LED-Streifen eine Steuerspannung im Bereich von 0 bis 4,4 V bei einem Strom von ca. 73,5 mA zuverlässig bereitstellen.

An der Basis jedes Transistors wird ein 39-Ω-Widerstand verwendet, der zur Strombegrenzung beiträgt. Zusätzlich ist auf der Emitter-Seite jedes Transistors ein 10-kΩ-Widerstand verbaut, der als Pull-Down-Widerstand dient und den Transistor bei 0 V Basisspannung sicher sperrt.

Die genannten Komponenten wurden auf einer Lochrasterplatine aufgebaut und verlötet. Die daraus gefertigte Steuerplatine wurde anschließend zur Beleuchtungssteuerung im Dach des Modellhauses montiert.

Abb. 6 Pin-Belegung für die Signale des LED-Streifens an SPS ET-200


Jalousien Steuerung

Das Jalousie-System besteht aus einer Welle, einem Taster (Endschalter), den an der Achse befestigten Jalousien sowie einem 28BYJ-48-Schrittmotor.

Ursprünglich war vorgesehen, die Jalousien direkt über die Siemens-SPS SIMATIC ET 200SP zu steuern. Aufgrund der hohen Programmierkomplexität und des knappen Zeitrahmens wurde jedoch entschieden, einen Arduino Mega 2560 als pragmatische Zwischenlösung einzusetzen.

Beim Systemstart verfährt der Arduino den Schrittmotor zunächst in Richtung „Öffnen“, bis die Achse den Taster betätigt. Beim Auslösen des Tasters wird ein Signal an den Arduino übergeben; diese Position wird anschließend als Referenzpunkt gespeichert und als Merker für den Jalousie-Status verwendet. Abhängig von der über das Potentiometer eingestellten Tageszeit sendet die SPS dann ein Steuersignal an den Arduino Mega, der daraufhin den Schrittmotor entsprechend ansteuert und die Jalousien in die gewünschte Position verfährt.

Schaltplan für Arduino

Abb. 7 Verdrahtungsplan für die Jalousiensteuerung mit Arduino

Arduino Code für die Jalousien Steuerung

/********************************************************************************************************
                        Produktionstechnik II Prakitum WS2025/26 

   Aufgabe       :       Arduino_Mega_Hauptprogramm.ino

   Betreuer      :       Prof. Dr. T. M. Wibbeke, Marc Ebmeyer

   Autor         :       Anivesh Kumar && Linus Sauermann && Torben Moratz 

   Datum         :       Lippstadt,den 08.12.2025

   Letzte Änderung:       Lippstadt,den 05.01.2026

   Software       :       Arduino IDE 2.3.4

   Hardware       :       Arduino Mega 2560

   Anmerkung      :       
                        

   Quellen        :    Ralf Sneiders(o.J) Arduino lernen - Anleitungen mit Praxisaufgaben und Beispielen 8. Auflage - S.57-59

  Status          :     Fertig

 *******************************************************************************************************/

#include <Stepper.h> //Stepper Motor bibliothek
const int SPU = 2048;
Stepper SM(SPU, 3,5,4,6);
int SM_reset_button = 10; //Reset button für anfangsposition
//Button für Full open, Half open und geschlossen modis 
int FO_Button = 9;
int HO_Button = 11;
int Ge_Button = 12;

static int SMPhase = 0;
static int SMSchritte = 0; 
void setup() {
  //Serielle schnittstelle
  Serial.begin(9600);
  SM.setSpeed(10);
  pinMode(SM_reset_button,INPUT_PULLUP);

  pinMode(FO_Button,INPUT_PULLUP);
  pinMode(HO_Button,INPUT_PULLUP);
  pinMode(Ge_Button,INPUT_PULLUP);
}

void loop() {
  
  Serial.println(digitalRead(SM_reset_button));
  if (SMPhase ==0)
  {
  if (digitalRead(SM_reset_button)!=LOW)
  {
    SM.step(1);
  }
  else 
  {
    SMPhase++;
    SMSchritte = 0;
    SM.step(0);
    delay(20);
  }
  }
  else if(SMPhase ==1)
  {
    //Zero State - Modus
    if(digitalRead(FO_Button)!=LOW && digitalRead(HO_Button)!=LOW && digitalRead(Ge_Button)!=LOW)
    {
      SM.step(0);
    }    

    //Full Open - Modus
    if(digitalRead(FO_Button)==LOW && (SMSchritte == 0))
    {
      SM.step(0);
      SMSchritte = 0;
    }
    else if(digitalRead(FO_Button)==LOW && SMSchritte == 4096)
    {
      SM.step(4096);
      SMSchritte = 0;
    } 
    else if(digitalRead(FO_Button)==LOW && SMSchritte == 8192)
    {
      SM.step(8192);
      SMSchritte = 0;
    }  

    // Half open - Modus

    if(digitalRead(HO_Button)==LOW && SMSchritte == 4096)
    {
      SM.step(0);
      SMSchritte = 4096;
    }
    else if(digitalRead(HO_Button)==LOW && SMSchritte == 0)
    {
      SM.step(-4096);
      SMSchritte = 4096; 
    }
    else if(digitalRead(HO_Button)==LOW && SMSchritte == 8192)
    {
      SM.step(4096);
      SMSchritte = 4096;
    }

    // Geschlossen - Modus
   if(digitalRead(Ge_Button)==LOW && SMSchritte == 8192)
    {
      SM.step(0);
      SMSchritte = 8192;
    }
    else if(digitalRead(Ge_Button)==LOW && SMSchritte == 4096)
    {
      SM.step(-4096);
      SMSchritte = 8192;
    }
    else if(digitalRead(Ge_Button)==LOW && SMSchritte == 0)
    {
      SM.step(-8192);
      SMSchritte = 8192;
    }
    

  
  }
}

Programmierung vom Haus

Für die Programmierung des Hauses ist uns bedauerlicherweise die Zeit ausgegangen. Geplant ist, dass die SPS abgreift, welche Spannung über dem Potenziometer abfällt. Diese Spannung soll zu einer Uhrzeit zwischen 0:00 Uhr und 23:59 Uhr umgerechnet werden. Entsprechend der Uhrzeit soll jeweils ein Steuerungswert für die direkte und für die indirekte Beleuchtung gemäß der bereits dargestellten Kurve gemappt und ausgegeben werden. Diese Steuerspannung liegt dann an der Steuerplatine an, welche die Leuchten ansteuert.

Des Weiteren ist vorgesehen, dass die SPS in bestimmten Zeitspannen die Jalousie in eine ihrer drei Stellungen versetzt. Dies wird aufgrund mangelnder Analogausgänge durch eine digitale Ansteuerung eines Arduinos realisiert. Das Programm ist fertig geschrieben, allerdings noch nicht final erprobt.


Zusammenfassung

Um das Projekt nun final fertigzustellen, fehlen also noch die Programmierung der SPS, sowie die Verdrahtung des Arduinos und die Testung des Programms. Eine erste Version des SPS-Programms befindet sich im entsprechenden SVN-Ordner. Die Verdrahtung ist gemäß Schaltplan erfolgt und die Platine wurde ausgiebig getestet. Die Anschlüsse an der Platine sind auch gemäß Schaltplan mit Fähnchen beschriftet.

Wir schätzen, dass für die Programmierung der SPS noch ca. ein Zeitaufwand von 2 Std. besteht, wenn der Programmierer mäßige Erfahrungen aufweist. Für das Anschließen der Jalousiesteuerung würden wir ebenfalls ca. 2 Stunden einplanen.

Insgesamt bewerten wir als Team das Projekt, trotz alledem, dass es nicht fertig ist, als gelungen. Für den durchaus kurzen Zeitrahmen, der zur Verfügung stand, haben wir viele wichtige Punkte abgehakt und ein Projekt erstellt, welches durchaus sowohl optisch ansprechend, als auch technisch gut durchdacht ist.