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 [1]


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 21.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; // anzahl von Schrittmotor schritte in eine umdrehung 
Stepper SM(SPU, 3,5,4,6); //schrittmotor objekt erstellung 
int SM_reset_button = 10; //Reset button für anfangsposition
//Button für Full open, Half open und geschlossen modis 
int FO_Button = 9; // Pinbelegung für Full Open Signal an arduino
int HO_Button = 11; // Pinbelegung für Half Open Signal an arduino
int Ge_Button = 12; // Pinbelegung für Geschlossen Signal an arduino

static int SMPhase = 0; // Merker für hauptprogramm
static int SMSchritte = 0; // Schritte zum bewegen
void setup() //Setup schleife
{
  
  Serial.begin(9600); //Serielle schnittstelle erzeugung
  SM.setSpeed(10); //schrittmotor geschwindigkeit 
  pinMode(SM_reset_button,INPUT_PULLUP); // Signal zustand definieren von Reset button auf input durch interne pullup widerstand 

  pinMode(FO_Button,INPUT_PULLUP); // Signal zustand definieren von full open button
  pinMode(HO_Button,INPUT_PULLUP); // Signal zustand definieren von half open button
  pinMode(Ge_Button,INPUT_PULLUP); // Signal zustand definieren von geschlossen button
}

void loop() //unendlichlose schleife
{
  
  Serial.println(digitalRead(SM_reset_button)); //signal zustand des reset buttons ausgabe 
  if (SMPhase ==0) // Wenn merker 0 ist 
  {
  if (digitalRead(SM_reset_button)!=LOW) // wenn signal aus reset button 0 ist 
  {
    SM.step(1); // mit einem schritt weiter 
  }
  else // sonst
  {
    SMPhase++; // merker erhöhung
    SMSchritte = 0; // reset von schritte auf 0
    SM.step(0); // nicht mehr bewegen
    delay(20); //20ms pause 
  }
  }
  else if(SMPhase ==1) //wenn merker 1 ist 
  {
    //Zero State - Modus
    if(digitalRead(FO_Button)!=LOW && digitalRead(HO_Button)!=LOW && digitalRead(Ge_Button)!=LOW) //wenn alle signale low sind
    {
      SM.step(0); //nicht bewegen
    }    

    //bei Full Open - Modus
    if(digitalRead(FO_Button)==LOW && (SMSchritte == 0)) // wenn Full open button signal auf low ist, und wenn schritte 0 sind 
    {
      SM.step(0); // nicht bewegen
      SMSchritte = 0; //kein schritte zählen
    }
    else if(digitalRead(FO_Button)==LOW && SMSchritte == 4096) // wenn Full open button signal auf low ist, und wenn schritte 4096 sind 
    {
      SM.step(4096); // 2x umdrehung - Halbwegs öffnen
      SMSchritte = 0; // schritte löschen
    } 
    else if(digitalRead(FO_Button)==LOW && SMSchritte == 8192) // wenn Full open button signal auf low ist, und wenn schritte 8192 sind 
    {
      SM.step(8192); //4x umdrehung - voll öffnen
      SMSchritte = 0; //schritte löschen
    }  

    // bei Half open - Modus

    if(digitalRead(HO_Button)==LOW && SMSchritte == 4096) // wenn half open button signal auf low ist, und wenn schritte 4096 sind 
    {
      SM.step(0); //nicht bewegen
      SMSchritte = 4096; //schritte speichern
    }
    else if(digitalRead(HO_Button)==LOW && SMSchritte == 0) // wenn half open button signal auf low ist, und wenn schritte 0 sind 
    {
      SM.step(-4096); //2x umdrehung in uhrzeigersinn um halbwegs zu öffnen
      SMSchritte = 4096;  // schritte speichern
    }
    else if(digitalRead(HO_Button)==LOW && SMSchritte == 8192) // wenn half open button signal auf low ist, und wenn schritte 0 sind 
    {
      SM.step(4096); // 2x umdrehung um Halbwegs zu öffnen
      SMSchritte = 4096; //schritte speichern
    }

    // Geschlossen - Modus
   if(digitalRead(Ge_Button)==LOW && SMSchritte == 8192) // wenn geschlossen button signal auf low ist, und wenn schritte 0 sind 
    {
      SM.step(0); //nicht bewegen
      SMSchritte = 8192; // schritte speichern
    }
    else if(digitalRead(Ge_Button)==LOW && SMSchritte == 4096) // wenn geschlossen button signal auf low ist, und wenn schritte 4096 sind 
    {
      SM.step(-4096); // 2x Umdrehung in uhrzeigersinn - Halbwegs zu schließen
      SMSchritte = 8192; // schritte speichern
    }
    else if(digitalRead(Ge_Button)==LOW && SMSchritte == 0) // wenn geschlossen button signal auf low ist, und wenn schritte 0 sind 
    {
      SM.step(-8192); // 2x Umdrehung in uhrzeigersinn - voll schließen
      SMSchritte = 8192; // schritte speichern
    }
    

  
  }
}

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.

Probleme

Im Verlauf der Projektarbeit traten mehrere Probleme und Herausforderungen auf, die sowohl technischer als auch organisatorischer Natur waren.

Ein Problem ergab sich bei der Ansteuerung der Jalousien. Ursprünglich war vorgesehen, den Schrittmotor direkt über die Siemens SPS SIMATIC ET 200SP zu betreiben. Während der Umsetzung zeigte sich jedoch, dass die hierfür notwendige Programmierung und Signalaufbereitung deutlich komplexer und zeitintensiver gewesen wäre als zunächst angenommen. Aus diesem Grund wurde kurzfristig auf den Einsatz eines Arduino Mega 2560 als Zwischeneinheit umgestellt. Diese Entscheidung vereinfachte zwar die Motoransteuerung, führte jedoch zu zusätzlichem Verdrahtungs- und Integrationsaufwand.

Auch bei der Beleuchtungssteuerung traten kleinere Schwierigkeiten auf. Die selbst gelötete Steuerplatine musste mehrfach angepasst werden, um stabile und reproduzierbare Steuerspannungen im Bereich von 0 bis 4,4 V zu gewährleisten. Insbesondere die Dimensionierung der Widerstände und das Verhalten der Transistoren unter Last erforderten mehrere Tests und Korrekturen, da die Simulation andere Werte zeigte als die Realität.

Zusätzlich stellte die fehlende Anzahl an analogen Ausgängen der SPS eine Einschränkung dar. Dadurch konnte die ursprünglich geplante feinere und getrennte Ansteuerung aller Lichtkanäle nicht vollständig realisiert werden. Stattdessen wurden aktuell nur zwei Sektoren der Platine genutzt, wodurch alle Leuchten identisch angesteuert werden.

Abschließend erschwerte die Abstimmung zwischen mechanischem Aufbau, Elektrik und Software die systematische Fehlersuche. Änderungen in einem Teilbereich (z. B. Verdrahtung oder Softwarelogik) hatten häufig Auswirkungen auf andere Komponenten, was den Test- und Inbetriebnahmeprozess verlängerte.

Lessons Learned

Im Rahmen des Projekts konnten zahlreiche technische, methodische und organisatorische Erkenntnisse gewonnen werden.

Eine zentrale Erkenntnis war die Bedeutung einer realistischen Zeitplanung. Insbesondere die Integration verschiedener Teilsysteme (Mechanik, Elektrik und Software) erwies sich als deutlich zeitaufwendiger als ursprünglich angenommen. Für zukünftige Projekte ist es sinnvoll, mehr Zeit für die Inbetriebnahme, Fehlersuche und das Testen einzuplanen.

Darüber hinaus zeigte sich, dass eine frühzeitige Entscheidung über die Systemarchitektur essenziell ist. Die nachträgliche Umstellung der Jalousiensteuerung von einer direkten SPS-Ansteuerung auf eine Arduino-basierte Lösung vereinfachte zwar die Programmierung, führte jedoch zu zusätzlichem Integrationsaufwand. Eine detailliertere Voranalyse der Steuerungsanforderungen hätte diesen Mehraufwand reduzieren können.

Im Bereich der Elektronik wurde deutlich, wie wichtig wiederholtes Testen und schrittweises Vorgehen beim Aufbau eigener Schaltungen ist. Die Entwicklung und Optimierung der Steuerplatine trug wesentlich zum Verständnis von Transistorbeschaltungen, Strombegrenzung und Signalaufbereitung bei.

Positiv hervorzuheben ist zudem die interdisziplinäre Zusammenarbeit im Team. Durch die Aufteilung der Aufgaben nach individuellen Stärken konnten mechanische, elektrische und programmiertechnische Arbeiten parallel durchgeführt werden. Dies förderte nicht nur den Projekterfolg, sondern auch das Verständnis für die jeweiligen Fachbereiche.

Insgesamt hat das Projekt das praktische Verständnis für SPS-gestützte Automatisierungssysteme sowie für die Kopplung unterschiedlicher Steuerungssysteme (SPS und Mikrocontroller) deutlich vertieft.

Zusammenfassung

Im Rahmen des Praktikums „Produktionstechnik II“ wurde ein Modellhaus mit automatisierter Beleuchtungs- und Jalousiesteuerung entworfen und größtenteils umgesetzt. Ziel war es, eine Smart-Home-Lichtsteuerung im kleinen Maßstab zu realisieren, das über eine Siemens SPS SIMATIC ET 200SP gesteuert wird und verschiedene mechatronische Komponenten integriert.

Der mechanische Aufbau des Hauses, die Installation der Beleuchtung sowie der Aufbau und die erfolgreiche Erprobung der selbst entwickelten Steuerplatine konnten vollständig abgeschlossen werden. Auch die Jalousienmechanik sowie die Arduino-basierte Motorsteuerung wurden funktionsfähig realisiert.

Nicht vollständig abgeschlossen werden konnte die finale Programmierung und Inbetriebnahme der SPS. Eine erste Version des SPS-Programms liegt jedoch bereits vor und kann mit überschaubarem Zeitaufwand vervollständigt werden. Ebenso stehen die abschließende Verdrahtung und der Systemtest der Jalousiensteuerung noch aus.

Trotz dieser offenen Punkte bewerten wir das Projekt insgesamt als gelungen. Innerhalb des begrenzten Zeitrahmens konnte ein technisch durchdachtes und optisch ansprechendes System aufgebaut werden, das die grundlegenden Funktionen einer Hausautomatisierung anschaulich demonstriert. Das Projekt stellte eine wertvolle praktische Ergänzung zur theoretischen Lehre dar und vermittelte wichtige Erfahrungen im Bereich der mechatronischen Systementwicklung.

Literatur

1. Inventronics GmbH (2023) LF1100TW-G5 -927.957-09 L2, online im Internet: https://1015608.app.netsuite.com/core/media/media.nl?id=41213346&c=1015608&h=hiy-tl-DUjeNs333ZxCGXPQ1ESbJLNI_UgsbIS-gUEF4jKWQ&_xt=.pdf, Abruf am 21.01.2026

2. Ralf Sneiders(o.J) Arduino lernen - Anleitungen mit Praxisaufgaben und Beispielen 8. Auflage - S.57-59, Abruf am 05.01.2026