Dämmerungsfunktion deaktiviern

Gast #4460092
Lesenswert?
• ▲
▼
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);
  }
}
Gast #4460989
Lesenswert?
• ▲
▼
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.
#4460993
Lesenswert?
• ▲
▼
"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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.