Markisen Steuerung

Hallo!

Ich bin ein Neuling im Thema Arduino etc. Bin ausgelernter Installationstechniker und mache Zurzeit eine Weiterbildung.
Muss nun für die Schule, ein Projekt mit Arduino realisieren. Ich muss mir alles selber erlernen, habe keinen Unterricht.

Zum Projekt: Ich soll über Arduino eine Markisen Steuerung, mit Lichtsensor, Windsensor und Regensensor erstellen.

Habe mir schon ein Arduino Uno, ein Arduino Motorshield, einen 10V Schrittmotor, einen Regen und Windsensor von Watterott und alles weitere was man halt noch braucht (Widerstände, Breadboard, Jumperkabel usw.) besorgt.

Wetterstation--> http://macherzin.net/Arduino++Sensoren++Wind+und+Regen?highlight=regensensor

Hab schon einige Zeit am PC verbracht, schon viele Youtube Tutorials angeschaut, und schon einiges gelesen. Habe schon einige kleine Erfolge mit Arduino erlebt, zb LED blinken lassen, LED über einen Schalter geschalten, Schrittmotor zum laufen gebracht. Aber halt alles mit Hilfe von Tutorials. Alleine hätte ich es nicht geschafft.

Ich dachte mir, ich konzentriere mich zuerst auf den Lichtsensor und den Motor. Also wenn es Hell ist, soll der Schrittmotor eine gewisse Anzahl von Umdrehungen nach links machen und wenn es dunkel wird umgekehrt. Wenn das klappt wende ich mich an den Wind und Regensensor.

Mein Problem ist, dass ich nicht viel Ahnung vom programmieren habe und ich bei dem meisten gelesenen Artikeln nur Bahnhof verstehe. Bin aber bereit mich reinzuhängen und hoffe dass ich in diesem Forum ein wenig Hilfe bekomme.
Hat vielleicht schon mal jemand sowas gemacht oder kennt jemand seine Seite wo so eine Steuerung erklärt wird??
Mir ist klar dass ich kein fertiges Projekt finden werde. Aber ein wenig Starthilfe wäre trotzdem toll. :wink:

mfg Andreas

Hi Andreas,
ich bin auch noch Anfänger. Am meisten konnt ich mir von den Beispielen auf.
funduino.net aneignen.

Theorie vermittelt dieser jung Herr exzellent:

Gruß Dan

Weiterbildung aber kein Lernstoff dazu?? Das macht keinen Sinn.
Das klingt eher so, als ob deine Lehrkraft etwas fertiges für zu Hause haben möchte :smiley:
Wenn dass der Fall ist, plane auch direkt eine weitere LED ein sowie eine RTC. Denn dann würde ich das so machen, ihm die makefile und nicht den C Code mitgeben. Über die RTC wird sicher gestellt, dass er das ganze nur 1 Woche nutzen kann. Danach blinkt eine LED und signalisiert, "Jetzt will ich entlohnt werden"

Was soll das Projekt genau können?

Wenn Sonne vorhanden (Lichtsensor), Markise ausfahren.
Wenn Regen vorhanden (Regensensor), Markise ausfahren (oder einfahren, je nachdem was gewünscht)
Wenn starker Wind (Windsensor), Markise einfahren.

Wofür genau brauchst du den Motor? Für die Simulation brauchst du sowas nicht.
Eventuell planst du noch ein paar Reedschalter/Endschalter ein für Markise ausgefahren oder komplett eingefahren.

Zur Veranschaulichung, wie dein Motor läuft, reichen 2 Leds. 1. Led für auffahren (erlischt, wenn Reed/Endschalter auf kommt). 2. Led für zufahren (erlischt, wenn Reed/Endschalter zu kommt).

Diese Teile kannst du dann später mit Relais ersetzen für den Motor.
Mit etwas suchen wirst du vermutlich auch ein fast identisches Programm finden, aber die Aufgabenstellung ist meiner Meinung nach doch recht trivial, da die Sensoren entsprechend mit den Libarys schon passend ausgewertet werden können.

Richtig :wink:

Hatten damals berufsbegleitend zur Ausbildung auch Lehrgänge in Elektronik (SPS, Frequenzumrichter, etc.). Dort hatte der Lehrer einen ähnlichen Plan. Damals haben wir ihm einen Zähler eingebaut, der nach x-Schaltungen einfach aufhört. Das ganze wurde dann im nichtflüchtigen Speicher geschrieben. Er hat es selbst nicht bemerkt. 6 Monate später eine weitere Fortbildung und da hat er uns drauf angesprochen, dass unser Projekt noch Fehler hat. Es würde nicht mehr gehen.

Als wir es ihm erklärten, musste er uns ein Mittagsessen ausgeben und gut wars. ]:smiley: Geld wollten wir nicht für nehmen, denn die Fortbildung war für uns sowas wie bezahlter Urlaub. Der Lehrer selber hatte mit SPS Systemen nichts am Hut, bin mir jetzt auch nicht mehr 100% sicher, was für einen Teil er gemacht hat. Glaube irgendwas mit Wirtschaft.

Wow, in so kurzer Zeit schon so viel Antworten. Hätte ich ehrlich gesagt nicht erwartet. Freut mich riesig, dass einem hier so toll geholfen wird. :smiley:

Das ist sehr richtig, Weiterbildung ohne Kurs ist wirklich nicht sehr sinnvoll. Ist aber leider so. Dieses Projekt ist jedoch nur ein kleiner Teil der Ausbildung.

Ich soll ein Messemodel erstellen, die Steuerung soll so aussehen:
Sonnenschein--> Markise ausgefahren
Dunkelheit--> Markise eingefahren
Regen-->Markise fährt ein
Starker Wind-->Markise fährt ein
Wenn der Wind bzw der Regen aufhört soll sie wieder ausfahren.

Es soll dann wirklich eine kleine Markise, die ich selber basteln muss( kA noch wie), ein bzw ausfahren.
Aber mit diesem Thema beschäftige ich mich später. Erstmals konzentriere ich mich auf den Prototyp. Also die Sensoren und den Motor.

mfg Andreas

Wie lange ist für das Projekt angesetzt? Wieso sowas für eine Messe sein muss, weiß ich jetzt gerade auch nicht. Ist jetzt keine Erfindung, die sonderlich neu wäre.

Du solltest dir aber nicht nur Tutorials im Internet anschauen sonder auch aktiv mit einem Buch (gedruckt) für C - und/oder Arduino arbeiten. Der Programmierstil ist bei den Tutorials auch nicht immer zwingend das Wahre. Ich sag nur delay(), weils den Code doch so übersichtlich hält etc.

Bis Ende Dezember soll es fix fertig sein. Bis Mitte September soll der Prototyp laufen. :fearful: Ich weiß dass ist schon bald aber ich habe jz zwei Wochen Urlaub, in denen ich mich voll und ganz dem Projekt widmen kann. :wink:

Ja klar gibt es so etwas schon. Das Modell wird nie auf einer Messe vorgestellt. Soll nur dazu dienen selbständig ein wenig übers programmieren usw. zu lernen.

Dann habe ich Messemodel falsch verstanden.

Das würde mich jetzt auch interessieren, Licht kann ich ja nun per Smartphone schalten, nun sind die Rolladen dran.
Vorallem interessiert mich wie man es machen soll, mit endabschalter oder einfach per Zeit.
Momentan hab ich solche Rollotron, die kann man anlernen. Taste solange halten bis hoch/runter gefahren werden soll. Bei einem war die Steuerung in die Luft geflogen, weil die Last zu hoch war.

Wäre aber gut wenn man das ganze mit endabschalter machen kann. Bei Markisen wird man es sogar müssen, wird mit der Zeit nicht funktionieren. Es sei denn man berechnet jede einzelne Bewegung, wäre quatsch.
Jemand ne Idee welche endabschalter dazu geeignet wären?

Dass mit dem Termin, kannste dir schon mal ausm Kopf jagen, wird nix.
Es sei denn jemand erledigt den ganzen Job für dich.

Sonnensensor eigenbau

Über die Zeit schalten würde ich niemals machen! Wenn du ihn anlernen kannst, wäre das schon nicht verkehrt. Aber eine Überwachung des Stromverlaufs und über Endschalter wäre nicht verkehrt. Gerade wenn sich etwas einklemmt.

Welche Möglichkeiten gibt es, wenn zB auf der Fensterbank Blumentopf steht oder Kinder ihre Spielzeuge mal kurz abgelegt haben...
Wie soll dies erkannt werden?

Was mir grad so einfällt, wäre so eine Lichtschranke. Die könnte man auch als endabschaltung nehmen.

Hier ein Link, Arduino/Loxone.

skorpi08:
Welche Möglichkeiten gibt es, wenn zB auf der Fensterbank Blumentopf steht oder Kinder ihre Spielzeuge mal kurz abgelegt haben...
Wie soll dies erkannt werden?

Das muss man sehen, meist haben es die Steuerungen sowas intern schon mit drin. Nennt sich dann Prallschutz oder ähnlich.
Das wird meist über den Strom in den Wicklung erledigt. Diese sind dann aber relativ empfindlich. Eine Eichel reicht, dass das Garagentor nicht zufährt :wink: Kann man aber einstellen.

Gerade auf solche selbstgebaten Überwachungen würde ich mich nicht darauf verlassen, zumal das an der 230V wieder rangeht.
Deutlich sinnvoll wären Reedkontakte, Endschalter oder Lichtschranken. Wobei der Prallschutz damit noch nicht zwingend funktioniert, jedoch die Endabschaltung.

Ich habe mir gedacht, dass ich es mit Zeit mache. Ich wüsste nämlich nicht wo ich die Endschalter positionieren sollte. Es handelt sich ja um eine Markiese und die fährt ins Freie.
Alles schön nach der Reihe, Rom wurde auch nicht an einem Tag erbaut. Mein Ziel ist es zur Zeit dieses Grundprinzip zu programmieren.

Grundprinzip:

1=>Wenn LDR Wert größer als xxx // dann scheint die Sonne
2=>Motor z.B. Links drehen bis zum Erreichen der gewünschten Position // Markies rausfahren
3=>Wenn LDR Wert kleiner als xxx // Dann scheint die Sonne nicht und es ist fast dunkel
4=>Motor z.B. Rechts drehen bis zum Erreichen der gewünschten Position // Markiese reinfahren

die Werte in Punkt 1 und 3 müssen unterschiedlich sein damit die Markiese nicht ständig raus und reinfährt.

Bis jz hab ich es so weit geschafft, dass mein Schrittmotor sich nach rechts dreht wenn es hell ist und sich nach links dreht wenn es dunkel ist. Ich weiß, ist noch nicht viel, aber ich bin ja noch sehr unerfahren.
Jetzt komme ich aber nicht weiter, habe schon so viel gegoogelt aber finde nichts. Wie kann ich dem Schrittmotor sagen, dass er nach gewissen Schritten aufhören soll und warten soll bis sich der LDR sagt,dass es dunkel oder hell geworden ist?

Hier mein code:

#include <Stepper.h>

int pinPWM_A = 3;
int pinPWM_B = 11;
int pinDir_A = 12;
int pinDir_B = 13;
int schritte_def =200;
int sensor = 0;

Stepper motor(schritte_def , pinDir_A, pinDir_B);

void setup(){

motor.setSpeed(200);
digitalWrite(pinPWM_A,HIGH);
digitalWrite(pinPWM_B,HIGH);

Serial.begin(9600);

}

void loop(){
sensor = analogRead(A0);
Serial.println(sensor);
delay (10);

if (sensor < 45) {
motor.step(-200);
delay(1000);
}
else {
motor.step(200);
delay(1000);
}
}

Mit Zeiten macht man sowas nicht. Des weiteren kannst du delay mit millis ersetzen -> Blink Without Delay

Den Endschalter einfach am Ende positionieren. Wie sieht deine Schaltung derzeit aus? Gibt es da schon einen Aufbau? Für den Test ohne den Aufbau kannst du dir auch ein Stück Blech an die Welle anbringen. Dieser drückt dann auf den Endschalter.

Moin,

google mal nach 'Rohrmotor'.
Damit werden Rolladen und auch Markisen bewegt.
Die Endschalter sind im Rohrmotor und werden nach Anzahl der Umdrehungen betätigt.
Die Drehrichtung wird durch zwei unterschiedliche Drähte angesteuert.

Schrittmotoren oder Zeitsteuerung sind x~!x#.

Gruss
Kurti

kurti:
Moin,

Schrittmotoren oder Zeitsteuerung sind x~!x#.

Gruss
Kurti

]:smiley: Richtig. Aber es scheint nur ein kleines Gerät zu sein, was die Funktion zeigt. Ob es für sowas Rohr/Jalousienmotoren gibt?

OK, danke für die Tipps. Diese Rohrmotoren kosten aber gar nicht so wenig. Und den Schrittmotor hab ich jz schon zuhause. Muss doch mit dem auch funktionieren.

Kann ich da normale Taster verwenden? Ich habe da mal was von Reed Kontakten gelesen, die werden über einen Magnet ausgelöst was ich so recherchiert habe. Also brächte ich keine Berührung.

Mit Tastern geht sowas nicht. Da müssen Endschalter mit einer Rollgabel darn

Mit Reedkontakten sollte es auch gehen.

OK, überredet. Werde mir solche Endschalter besorgen. Kann ja bis dorthin normale Schalter verwenden und diese per Hand drücken, bis ich diese habe. Wichtig für mich ist, das Programm zum Laufen zu bringen. Meine Schaltung sieht zurzeit so aus, dass alle Komponenten am Tisch liegen und mit Jumper Kabel verbunden sind. Also Arduino Uno + Arduino Motorshield, der LDR und mein 10V bipolar Schrittmotor. Wind und Regensensor baue ich erst später in die Schaltung ein.

Das soll doch "nur" ein Modell sein, richtig?
Und rat mal, warum dein Ding Schrittmotor heisst ?
Du sagst ihm, wieviele Schritte er in die eine und in die andere Richtung fahren soll.

Wenn du 1000 Schritte rausgefahren bist, fährst du wieder 1000 zurück und das Ding steht da wo es am Anfang war.
Das Problem ist, dass du nicht weisst, wo er am Anfang steht, und was passiert, wenn du gnadenlos 1000 Schritte weit fährst. :wink:
Musst also in vielen loop() Durchläufen jeweils wenige Schritte fahren, jedesmal den Schalter abfragen und dir merken, wie weit du insgesamt gefahren bist.

Ein richtiger Rolladen- oder Markisenmotor (230V~) im Rohr hat damit nichts zu tun. Den kannst du, nachdem er "angelernt" wurde, beliebig lange auf RAUS oder REIN stellen.