Hallo, ich bräuchte mal eure Hilfe bei nem Programm. Ich komm einfach auf keine einfache aber effektive Lösung... Zu meinem Programm: Mein Motor läuft für ein paar Sekunden, wenn ein Analogwert (Phototransistor) und ein Füllstand (errechnet mit einem Abstandsensor) unter einem gewissen Wert liegt. Funktioniert auch einwandfrei. Aber ich möchte, dass dies nur einmal bei Dämmerungung, also bei Unterschreiten des Analogwerts passiert und nicht ständig bei einem Schatten, längere Dunkelheit oder ähnliches. Also möchte ich diese Funktion nach einer Aktivierung für z.B. 9 Stunden sperren. Wie ist das möglich?? Bitte um Hilfe... Ausschnitt des Codes: // Auswertung - Automatik-Betrieb - Motor Start else if (fototransistor_wert <= 100 && abstand <= behaeltergroesse && abstand >= 5) { motor_start(); motor_bit = 1; } // Motor stoppen else if (motor_bit == 1) {motor_stop1();} int motor_stop1() { // Aktuelle Zeit bestimmen unsigned long aktuelle_Zeit_2 = millis(); // Überprüfung der Laufzeit des Motors if (aktuelle_Zeit_2 - alte_zeit_motor > motor_laufzeit) { // Vergleichszeit aktualisieren alte_zeit_motor = aktuelle_Zeit_2; // Motor Stop setzen analogWrite(Ausgang3_PWM, 0); } }
Mit einem Timer jede minute messen und wenn der Wert bei z.B. 10 Messungen hintereinander unter dem Grenzwert liegt den Motor starten. Eine starke längere Abdunklung durch Beispielsweise Gewitterwolken wird man damit jedoch nicht abfangen können.
"Kopfschmerzen mit Bildern" habe ich den ganzen Tag, vielleicht liegts daran, dass einfach zu wenig Informationen vorhanden sind? schneller Tipp zum sperren: schnapp dir einen möglichst langsamen, möglichst 16bit Timer, setz beim Auslösen einen vorher berechneten Wert und lass den vom Timer herunterzählen. Wenn er 0 erreicht, dann ist die Sperre abgelaufen und die Schaltung wieder "scharf" Tipp: 9 Stunden == 32400 Sekunden Alternativ: RTC
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.