INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Probleme mit Blinklicht auf bestimmte Zeit
19.10.2019, 18:51
Beitrag #1
Probleme mit Blinklicht auf bestimmte Zeit
Ich möchte einen Magnet 10 Sekunden im Wechsel (Intervall) an und ausschalten. Dies sollte mit Millis geschehen, da andere Funktionen Zeitgleich aktiviert werden. Der angehängte Sketch funktioniert nur ohne die If-Schleife und nur vom void setup aus. Dann schaltet der Magnet sich innerhalb von 10 im Intervall aus und an. Dies funktioniert aber bekanntlich im Setup Teil nur genau einmal. Und das auch ohne If Schleife. Ich möchte aber den Magnet-Intervall starten wenn ein Kontakt (digitalRead(contact_35_act_34) kurz auf HIGH ist. Hat jemand eine Idee wie man das ganze modifizieren kann, damit es läuft?


Code:
//Magnet activation and intervall setup

unsigned long overallStartTime;
unsigned long MagnetStartTime;
unsigned long overallPeriod = 10000;
unsigned long blinkPeriod = 100;
unsigned long currentTime;
const byte Soli_42_execute = 42;
boolean blinking = true;

void setup() {

  //Magnet Intervall Mode

  pinMode(Soli_42_execute, OUTPUT);
  overallStartTime = millis();
  MagnetStartTime = overallStartTime;
  digitalWrite(Soli_42_execute, LOW);


void loop() {

if (digitalRead(contact_35_act_34) == HIGH) {  // Magnet function activation

    currentTime = millis();
    if (currentTime - MagnetStartTime >= blinkPeriod && blinking)  //LED blink time check
    {

      digitalWrite(Soli_42_execute, !digitalRead(Soli_42_execute));  //change state of LED
      MagnetStartTime = MagnetStartTime + blinkPeriod;  //save the new blink start time
    }

    if (currentTime - overallStartTime >= overallPeriod && blinking)  //overall time check
      digitalWrite(Soli_42_execute, LOW);
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2019, 19:03
Beitrag #2
RE: Probleme mit Blinklicht auf bestimmte Zeit
Millis() ist genau die richtige Lösung.
Allerdings bei den wiederkehrenden Funktionen kannst du besser die fertige Funktion "simpleTimer" verwenden.
SimpleTimer

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2019, 21:38
Beitrag #3
RE: Probleme mit Blinklicht auf bestimmte Zeit
(19.10.2019 19:03)hotsystems schrieb:  Millis() ist genau die richtige Lösung.
Allerdings bei den wiederkehrenden Funktionen kannst du besser die fertige Funktion "simpleTimer" verwenden.
SimpleTimer

Danke! Habs gerade überflogen und ich glaube dieses simple timer library hätte ich nun schon öfter brauchen können. Werde das morgen mal testen und ein feedback geben.

Mal eine frage ganz nebenbei. Ich habe das Gefühl, das der Intervall in meinem Code mit 500ms An/Aus, das schnellste ist was der Arduino schafft. Bin schon weiter runter auf 50ms, da ist aber kein Unterschied zu den 500ms erkennbar. Kann es sein, das mit delay eine schnellere Frequenz zu erreichen ist? Was ist den die schnellste Frequenz die der Arduino erreichen kann?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2019, 21:51
Beitrag #4
RE: Probleme mit Blinklicht auf bestimmte Zeit
(19.10.2019 21:38)Prospekteur schrieb:  Ich habe das Gefühl, das der Intervall in meinem Code mit 500ms An/Aus, das schnellste ist was der Arduino schafft.
Da machst Du was falsch. 500ms sind für den Arduino eine halbe Ewigkeit.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2019, 09:21 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2019 09:23 von Prospekteur.)
Beitrag #5
RE: Probleme mit Blinklicht auf bestimmte Zeit
(19.10.2019 21:51)MicroBahner schrieb:  
(19.10.2019 21:38)Prospekteur schrieb:  Ich habe das Gefühl, das der Intervall in meinem Code mit 500ms An/Aus, das schnellste ist was der Arduino schafft.
Da machst Du was falsch. 500ms sind für den Arduino eine halbe Ewigkeit.

Ich muß dazu erwähnen, das der Magnet über einen Mosfet gesteuert wird (5v in/ 48v out). Müsste mal schauen wie schnell ein Mosfet seine Schaltzustände als Intervall auf Zeit ändern kann. Aber Du hast Recht vermutlich liegt es an einem anderen Fehler der von mir verursacht wird;-).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2019, 09:31
Beitrag #6
RE: Probleme mit Blinklicht auf bestimmte Zeit
(20.10.2019 09:21)Prospekteur schrieb:  Ich muß dazu erwähnen, das der Magnet über einen Mosfet gesteuert wird (5v in/ 48v out).
Auch für einen MosFet dürften 500ms eine ziemliche Ewigkeit sein Wink

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2019, 10:53
Beitrag #7
RE: Probleme mit Blinklicht auf bestimmte Zeit
(20.10.2019 09:21)Prospekteur schrieb:  Ich muß dazu erwähnen, das der Magnet über einen Mosfet gesteuert wird (5v in/ 48v out). Müsste mal schauen wie schnell ein Mosfet seine Schaltzustände als Intervall auf Zeit ändern kann. Aber Du hast Recht vermutlich liegt es an einem anderen Fehler der von mir verursacht wird;-).

Zu verstehen ist das aber nicht.
Im Eingangspost schreibst du etwas von mehreren Sekunden und jetzt sollen es kleiner 500ms sein.
Wie passt das zusammen.
Wenn es Probleme macht, poste doch mal den aktuellen Sketch.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2019, 12:16 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2019 12:17 von Prospekteur.)
Beitrag #8
RE: Probleme mit Blinklicht auf bestimmte Zeit
(20.10.2019 10:53)hotsystems schrieb:  
(20.10.2019 09:21)Prospekteur schrieb:  Ich muß dazu erwähnen, das der Magnet über einen Mosfet gesteuert wird (5v in/ 48v out). Müsste mal schauen wie schnell ein Mosfet seine Schaltzustände als Intervall auf Zeit ändern kann. Aber Du hast Recht vermutlich liegt es an einem anderen Fehler der von mir verursacht wird;-).

Zu verstehen ist das aber nicht.
Im Eingangspost schreibst du etwas von mehreren Sekunden und jetzt sollen es kleiner 500ms sein.
Wie passt das zusammen.
Wenn es Probleme macht, poste doch mal den aktuellen Sketch.

Hab mich oben tatsächlich etwas unglücklich ausgedrückt;-). Wenn der Kontakt (digitalRead(contact_35_act_34) auf HIGH schaltet soll 10 Sekunden lang sich der Magnet im 500ms Takt An- und Ausschalten (Intervall). Also ich möchte 10 Sekunden lang den 500ms Intervall laufen lassen und dann den Magnet abschalten. Der Sketch oben ist mein Sketch den ich gerade zum testen des Magnetintervalles benutze. Erst wenn der korrekt läuft, werde ich Ihn in den gesamten Sketch einfügen;-). Danke übrigens für Eure rege Hilfe;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Probleme mit SD-Karten und Displayansteuerung gleichzeitig reichs 7 202 13.11.2019 18:55
Letzter Beitrag: reichs
  Nextion und die Probleme mit Arduino.... alpenpower 7 444 17.10.2019 13:51
Letzter Beitrag: Tommy56
  Aktivierung nur in einer bestimmten Zeit Prospekteur 48 2.205 14.09.2019 12:57
Letzter Beitrag: MicroBahner
  Probleme mit dem Sloeber-Plugin in Eclipse mash3010 4 1.521 26.06.2019 15:15
Letzter Beitrag: MartinZ
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 18 12.445 27.05.2019 15:53
Letzter Beitrag: Hellow2
  delay Zeit falsch golex 9 1.252 24.05.2019 21:18
Letzter Beitrag: GuaAck
  LAN- Probleme mit Arduino UNO und W5100 Ethernet Shield SpooN 32 2.806 13.05.2019 16:54
Letzter Beitrag: SpooN
  Probleme Mit Sleep Hoeuzitry 1 549 20.04.2019 22:36
Letzter Beitrag: Chopp
  Probleme mit DCF-77 Empfänger von Pollin unkreativ 11 1.330 04.04.2019 10:48
Letzter Beitrag: unkreativ
  Wiegezelle und hx711 Probleme Haukini 2 771 24.03.2019 16:27
Letzter Beitrag: Haukini

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste