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
Weiches Auf- und Abblenden mit delay vs millis()
22.12.2020, 14:40
Beitrag #1
Weiches Auf- und Abblenden mit delay vs millis()
Hallo Gemeinde,
ich habe ein Problem mit dem Ablauf eines Fadingeffektes.
Wenn ich für die zeitliche Ablaufsteuerung mit delay() arbeite, werden die LEDs weich Ein- und Ausgeblendet. Da ich aber noch einige Schaltbefehle im Gesamtsketch benötige, muss ich delay() durch millis() ersetzen.
Lasse ich den Sketch mit millis() laufen, ist die Aufblendzeit deutlich kürzer, die Abblendzeit ist so kurz, dass sie fast nur noch meßtechnisch erfassbar ist. Veränderungen an den Parametern in der Zählerschleife (aktuell 12 Schritte) oder der Pausenzeit (aktuell 50) führen nur dazu, dass die LEDs flackern, mit halber Helligkeit leuchten u. a. nicht erwünschte Effekte. Ausserdem tritt gelegentlich ein Doppelblitzen der LEDs auf.

Anbei der Sketch. Ich habe ihn so dargestellt dass der gewünschte Effekt eintritt wenn "delay()" aktiv und "fadingPause" deaktiviert ist. Durch Umestzung von // ist der Sketch so konfiguriert wie ich dachte dass er laufen müsste.

Code:
const int PfeilspitzeLinks = 9;
int Status = LOW;
long fadingPause = 0;
long pausenzeit = 50;

void setup()
{
  pinMode(PfeilspitzeLinks, OUTPUT);
  }

void loop()

{
  
  {  
    if (millis() > pausenzeit + fadingPause )
    for (int aufblenden = 0 ; aufblenden <= 255; aufblenden += 12) // Fade in von Minimum bis Maximun in 5 Schritten:
    
    {
      analogWrite(PfeilspitzeLinks, aufblenden);
      fadingPause = millis();
      //delay(50);
    }
    
    if (millis() > pausenzeit + fadingPause )
    for (int abblenden = 255 ; abblenden >= 0; abblenden -= 12) // Fade in von Maximum bis Minimun in 5 Schritten:

    {
      analogWrite(PfeilspitzeLinks, abblenden);
      fadingPause = millis();
      //delay(50);
    }
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:45
Beitrag #2
RE: Weiches Auf- und Abblenden mit delay vs millis()
Du hast millis noch nicht verstanden.

Grundprinzip: Schaue auf die Uhr - muss ich was tun - ja -> nächste Helligkeitsstufe schalten und Zeitpunkt merken.

Die for-Schleifen müssen da raus und durch if mit milis ersetzt werden. Schau Dir nochmal BlinkWithoutDelay an und lies die Nachtwächtererklärung und die Erklärung von Arne.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:46
Beitrag #3
RE: Weiches Auf- und Abblenden mit delay vs millis()
So wie du millis() einsetzt, funktioniert es nicht.
Die Funktion millis() ist deine Uhr und hat ständig einen anderen Wert.
Lass dir millis() mal im seriellen Monitor und in der Loop anzeigen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:49
Beitrag #4
RE: Weiches Auf- und Abblenden mit delay vs millis()
(22.12.2020 14:45)Tommy56 schrieb:  Du hast millis noch nicht verstanden.

Grundprinzip: Schaue auf die Uhr - muss ich was tun - ja -> nächste Helligkeitsstufe schalten und Zeitpunkt merken.

Die for-Schleifen müssen da raus und durch if mit milis ersetzt werden. Schau Dir nochmal BlinkWithoutDelay an und lies die Nachtwächtererklärung und die Erklärung von Arne.

Gruß Tommy

Ich werde milli(s) wohl nie verstehen. Mathematik und Logik waren noch nie meine Stärke. O.K. nach dem xten Versuch - Projekt gestorben. Trag mich mal aus der Mitgliedliste aus, ich werde mir in Zukunft wohl besser Bausätze kaufen.
Schöne Feiertage und bleib gesund.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:52
Beitrag #5
RE: Weiches Auf- und Abblenden mit delay vs millis()
(22.12.2020 14:49)do1xxy schrieb:  Ich werde milli(s) wohl nie verstehen. Mathematik und Logik waren noch nie meine Stärke. O.K. nach dem xten Versuch - Projekt gestorben. Trag mich mal aus der Mitgliedliste aus, ich werde mir in Zukunft wohl besser Bausätze kaufen.
Schöne Feiertage und bleib gesund.

Du gibst aber schnell auf.
Deine Funkamateurlizenz hast du doch auch nicht in einem Monat gemacht ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:52
Beitrag #6
RE: Weiches Auf- und Abblenden mit delay vs millis()
(22.12.2020 14:49)do1xxy schrieb:  Ich werde milli(s) wohl nie verstehen. Mathematik und Logik waren noch nie meine Stärke. O.K. nach dem xten Versuch - Projekt gestorben.
Solange Du Dir das selbst einredest, wird sich daran auch nichts ändern.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 14:57
Beitrag #7
RE: Weiches Auf- und Abblenden mit delay vs millis()
(22.12.2020 14:52)hotsystems schrieb:  
(22.12.2020 14:49)do1xxy schrieb:  Ich werde milli(s) wohl nie verstehen. Mathematik und Logik waren noch nie meine Stärke. O.K. nach dem xten Versuch - Projekt gestorben. Trag mich mal aus der Mitgliedliste aus, ich werde mir in Zukunft wohl besser Bausätze kaufen.
Schöne Feiertage und bleib gesund.

Du gibst aber schnell auf.
Deine Funkamateurlizenz hast du doch auch nicht in einem Monat gemacht ?

Normalerweise beiß ich mich in Problemen fest und löse sie auch, aber das Thema millis() stößt bei mir auf eine Blockade. Mit 63 Jahren ist zumindest meine Auffassungsgabe nicht mehr so gut. So geht es mir auch bei C4FM. Ist nun mal so.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2020, 15:00
Beitrag #8
RE: Weiches Auf- und Abblenden mit delay vs millis()
(22.12.2020 14:57)do1xxy schrieb:  Normalerweise beiß ich mich in Problemen fest und löse sie auch, aber das Thema millis() stößt bei mir auf eine Blockade. Mit 63 Jahren ist zumindest meine Auffassungsgabe nicht mehr so gut. So geht es mir auch bei C4FM. Ist nun mal so.
So jung und schon so blockiert?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  4 mal Blink ohne Delay Blende8 2 389 02.03.2021 18:36
Letzter Beitrag: Blende8
  von delay auf millis umgestellt, klappt nur nicht. Servo Geschwindigkeit einstellen. gutschy 8 668 21.02.2021 15:22
Letzter Beitrag: gutschy
  Frage zu Delay-Alternative Holzwurm56 13 957 24.01.2021 21:55
Letzter Beitrag: Franz54
  Servos ohne delay juergen001 23 2.287 30.10.2020 16:49
Letzter Beitrag: MicroBahner
  Probleme mit millis(); timer basteldin 3 926 01.09.2020 19:04
Letzter Beitrag: basteldin
  millis Schleife bleibt hängen Cubicany 10 1.699 28.06.2020 18:39
Letzter Beitrag: Tommy56
  Fehler bei delay über 32767 Kleingärtner 5 1.115 07.05.2020 18:51
Letzter Beitrag: Kleingärtner
  Hilfe Millis treibt mich in den Wahnsinn Nefrett 17 2.583 04.05.2020 20:53
Letzter Beitrag: Tommy56
  Wie bekomme ich DIESES Delay weg. DO3GE 9 1.673 18.04.2020 12:44
Letzter Beitrag: Fips
  delay-millis()-while-Sensorenabfrage RCudino 22 3.272 01.04.2020 06:46
Letzter Beitrag: RCudino

Gehe zu:


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