1 x pro Stunde, serial.Print aus dem -void loop-

Hey,

ich bin blutiger Anfänger was die Arduino Programmierung angeht und Brauche für ein Projekt ein wenig Unterstützung.

In meinem -void loop- werden Prozesse und Abhängigkeiten ermittelt, diese sollen mit der ganz normalen Arbeitsgeschwindigkeit durchlaufen.

Zusätzlich muss jedoch 1 x pro Stunde ein Serial.Print der Werte erfolgen.

Ein delay(3600000) am Ende meines -void loop- führt dazu das ich den Serial.Print zwar nur jede Stunde bekomme, dass jedoch die Abhängigkeiten auch nur jede Stunde einmal ermittelt werden und das darf eben nicht sein.

Ich hoffe ihr wisst jetzt ein bisschen was meine Problem ist und könnt mir eine schnelle Hilfestellung geben.

Das loest man mit Millis:

void loop() {
  static uint32_t prevMillis;
  if (millis() - prevMillis > 3600000) {
    prevMillis = millis();
    Serial.println("Werte senden");
  }
  /* restlicher Code in Loop */
}

Schredder1212:
Ich hoffe ihr wisst jetzt ein bisschen was meine Problem ist und könnt mir eine schnelle Hilfestellung geben.

Kleines Beispiel:

void einmalProStunde()
{
  const long EINESTUNDE=3600000; // in Millisekunden
  static unsigned long lastTime=millis();
  unsigned long nowTime=millis();
  if (nowTime-LastTime>=EINESTUNDE)
  {
    Serial.println("Schon wieder eine Stunde vergangen");
    lastTime=nowTime;
  }
}

void loop()
{
einmalProStunde();
// und dann das, was sonst noch so ausgeführt werden soll.
}
#include <INTERVAL.h>

void setup()
{
 Serial.begin(9600);
}

void loop()
{
  INTERVAL(3600000UL)
  {
     Serial.println("Schon wieder eine Stunde vergangen");
  } 
}