Somfy Unterputz-Funkempfaenger


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Dachfenster Steuerung
(Regensensor mit Arduino)


Regensensoren gehören zu den ziemlich verbreiteten Signal-Gebern. Sie werden in Bereich der Hausinstallationen oft gemeinsam mit anderen Sensoren in den auf Wetterstationen basierenden Steuerungen, die darüber hinaus auch die Windstärke und Helligkeit messen, verwendet. In der Praxis kommen sie meistens mit einer eingebauten Heizung vor. Beim Regen oder zu hoher Windstärke werden automatisch z.B. Jalousien und Markisen eingefahren oder Fenster geschlossen. Mit den Signalen von den Gebern kann man auch bestimmte Funktionen, die manuell ausgeführt werden, unterbinden. In Schaltzentralen werden mit den Signalen die aktuellen Wetterverhältnisse visualisiert. Ein weiteres Beispiel für Anwendung solchen Sensoren sind wissenschaftliche Wetter-Messstationen.

Regensensor mit Auswärtungsmodul

Regensensor mit Auswärtungsmodul

Ein Regensensor besteht aus mehreren Leiterbahnen, die beim Regen durch die Regentropfen kurzgeschlossen werden. Dadurch ändert sich der Gesamtwiderstand des Sensors. Der Widerstand wird gemessen und ausgewertet. Ist eine bestimmte, voreingestellte Widerstandsschwelle erreicht, wird ein Signal ausgegeben.
Die Widerstandswerte, die der Sensor annehmen kann, werden in unserem Beispiel von einem Schaltmodul ausgewertet. Das Herz der Mini-Elektronik stellt der Operationsverstärker LM358 dar. Auf der kleinen Platine findet sich auch ein Potenziometer, mit dem man die Schaltschwelle einstellen kann. Sobald der eingestellte Wert erreicht wird, wird an dem Anschluss TTL des Moduls ein Signal generiert. Das Signal führen wir dann weiter zu Arduino (Anschluss D2). Für das Experiment kann jeder beliebige Regensensor angewendet werden. Dabei ist lediglich darauf zu achten, dass das Signal den Wert von 5V nicht überschreitet. Die Betriebsspannung von Arduino beträgt nämlich 5V. Handelt es sich um ein anderes Signal, muss es entsprechend mit z.B. einem Spannungsteiler oder Spannungsregler an Arduino angepasst werden.

Die Schaltung

Mit dem Regensensor soll ein Dachfenster gesteuert werden. Wenn es regnet, soll das Fenster automatisch geschlossen werden. Beim schönen Wetter, wenn der Regen vorbei ist, soll das Fenster wieder automatisch geöffnet werden. Um das Geschehen besser zu visualisieren, kommt ein kleiner Schrittmotor zum Einsatz. Mit einem an der Achse des Motors befestigtem Hebel wird das Fenster hoch bzw. runter gefahren. Da der Motor etwas mehr Leistung braucht, als Arduino direkt liefern kann, wird ihm ein Treiber vorgeschaltet, der uns das Stromproblem abnimmt. Wie ein Schrittmotor funktioniert, wird hier nicht näher erläutert. Zu beachten ist lediglich, dass die externe Stromversorgung für den Motor groß genug ausgewählt werden muss.
In der Praxis sind Antriebe, die Fenster, Jalousien, Markisen etc. bewegen mit Endschaltern (oder anderen Sensoren), die die Endlagen abfragen, ausgestattet. Unsere einfache Einrichtung verfügt über solche Endabfragen nicht. So könnte passieren, dass es zu unerwünschten Kollisionen kommt. Um ihnen vorzubeugen, legen wir Folgendes fest: Der automatische Ablauf darf nur dann gestartet werden, wann das Fenster zuvor manuell komplett geschlossen wurde. Um das zu gewährleisten, bekommt unsere Schaltung zwei Taster fürs manuelles Hoch- und Runterfahren des Fensters. Mit einem Schalter kann dann die Automatik je nach Bedarf ein oder ausgeschaltet werden. Zwei Leuchtdioden zeigen den aktuellen Wetterstand an. Blaue Leuchtdiode steht für Regen, die gelbe für schönes Wetter.

Fenster auf/zu Antrieb

Fenster Auf-Zu Mechanismus

Schaltplan

Schaltplan

Dachfenster Steuerung - Schaltplan

Testschaltung

Testschaltung

Das Programm (Sketch)

In der Schaltung werden insgesamt 10 digitale Anschlüsse des Arduino verwendet. Vier davon werden als Eingänge definiert (Taster S1 und S2, Schalter S3 sowie der Regensensor). Die Restlichen fungieren als Ausgänge.
Mit zwei Ausgängen werden die LEDs LD1 und LD2 angesteuert. Sie visualisieren das Signal des Regensensors. Mit den Ausgängen D3 bis D6 wird der Schrittmotor gesteuert. Als Hilfe dient dabei die Bibliothek „Stepper.h“, die vorinstalliert werden muss. Der Motor führt in Automatik bei Öffnen oder Schließen des Fensters jeweils 450 Schritte aus. Um eine volle Drehung auszuführen, muss der Motor 2048 Schritte abfahren. Mit 450 Einzelschritten legt er einen Winkel von ca. 80° zurück. Mit den Tastern S1 und S2 (Arduino Anschlüsse D11 und D12) kann der Motor manuell bewegt werden.

// *******************************************************************************
// Dachfenster-Steuerung mit einem Regensensor
// Schrittmotor Steuerung mit ULN2003
// Arduino Nano, IDE 1.8.12
// *******************************************************************************

#include <Stepper.h>
  
Stepper myStepper(2048, 3, 5, 4, 6);   
int Regensensor = 2;
int LED_Regen = 8;
int LED_kein_Regen = 9; 
int Auto_Schalter = 10;
int Taster_Fenster_Auf = 11;
int Taster_Fenster_Zu = 12;
bool Fenster_Zu = true;         
bool Regen = false;   

void setup() {
    pinMode (Regensensor, INPUT_PULLUP);
    pinMode (Auto_Schalter, INPUT_PULLUP);
    pinMode (Taster_Fenster_Auf, INPUT_PULLUP);
    pinMode (Taster_Fenster_Zu, INPUT_PULLUP);
    pinMode (LED_Regen, OUTPUT);
    pinMode (LED_kein_Regen, OUTPUT);
    myStepper.setSpeed(5);          // Geschwindigkeit .............................
}

void loop() {
                                    // LEDs Steuerung ..............................
    if (digitalRead(Regensensor) == LOW) { 
        digitalWrite(LED_Regen, LOW); 
        digitalWrite(LED_kein_Regen, HIGH); 
        Regen = false; } 
        else { 
        digitalWrite(LED_Regen, HIGH);
        digitalWrite(LED_kein_Regen, LOW); 
        Regen = true; }  
                                     // Fenster manuell aufmachen ..................
    if (digitalRead(Taster_Fenster_Auf) == LOW) {
        myStepper.step(1); }
                                     // Fenster manuell schließen ..................
    if (digitalRead(Taster_Fenster_Zu) == LOW) {
        myStepper.step(-1); 
        Fenster_Zu = true; }    
                                     // Automatik aktiv ............................
    if (digitalRead(Auto_Schalter) == LOW) {
                                     // Fenster AUF ................................
                                     // (Fenster geschlossen + kein Regen) .........
        if (not Regen && Fenster_Zu) {
            myStepper.step(-450);    // Anzahl der Schritte ........................
            Fenster_Zu = false; 
            delay (1000); } 
                                     // Fenster ZU .................................
                                     // (Fenster offen + Regen) ....................
        if (Regen && not Fenster_Zu)   {
            myStepper.step(450);     // Anzahl der Schritte ........................
            Fenster_Zu = true; 
            delay (1000); } 
    }
}
// *****************************************************************************
    

Kurzvideo

Kurzvideo: Dachfenster gesteuert mit einem Regensensor


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz