Hallo Forum,
Wir machen gerade ein Projekt mit dem Arduino.
Dabei verwenden wir einen Fotowiderstand, der die Lichtintensität messen soll. Ist ein bestimmter Wert unterschritten, soll sich ein Servomotor beginnen zu drehen z.B. um 5 Grad. Ansonsten bleibt der Motor so wie er ist. Der Motor soll sich jedoch immer nur um z.B. die 5 Grad drehen und danach sollen erneut die Werte, die der Fotowiderstand liefert, abgerufen werden. Wird der Wert dann wieder unterschritten soll sich der Motor erneut drehen. Wir verwenden in dem Programm dabei das if/else Prinzip. Das Problem liegt darin, dass wenn der Wert unterschritten wird der Motor sich zwar zu drehen beginnt aber nach den 5 Grad dann auch nicht aufhört. Das heißt alle if´s werden zu Beginn einmal aktiviert und dann läuft das Programm einfach durch, ohne anzuhalten und den Sensorwert erneut abzufragen. Erst wenn die gesamte loop einmal durchgelaufen ist, fängt der Sensor wieder an Werte auszulesen.
Über Eure Hilfe wären wir wirklich dankbar!
Zur Orientierung: Das ist unser bisheriges Programm.
Setze doch bitte deinen Sketch in Code-Tags, damit wir den auch gut lesen können.
Verwende dazu die Schaltfläche </> oben links im Editorfenster. Das kannst du auch nachträglich machen. Dazu den Sketch markieren und die Schaltfläche klicken.
Damit wird dieser für alle besser lesbar.
Code-Tags erledigt.
Danke Uwe.
Edit:
Was soll das sein ?
Ist doch klar, wenn der abgefragte Lichtwert immer gleich ist, läuft der auch überall durch.
Und darauf achten, ob Du mit viel, oder wenig
Licht beginnen möchtest (if Bedingung)
Sonst fährt er mit jedem loop zu und bis zur "Lichtgrenze" wieder auf
leider wurde unsere Frage falsch verstanden. Das Problem liegt darin, dass der Lichtwert je nach Position des Servomotors und somit auch des Widerstandes schwankt. Deshalb soll immer nach jeder Drehung neu gemessen werden. Ist der Wert höher als die if-Angabe (die immer >650 ist) soll der Motor stehen bleiben. Ist der Wert unterschritten soll der Motor weiter drehen. Jetzt ist die Frage, wie man dies erreichen kann. Momentan ist es noch so, dass der Lichtwert nur einmal am Anfang abgefragt wird und dann das gesamte Programm durchläuft.