Ersatz für delay(); in einem Arduino Nano gesucht?
ich benötige einen Ersatz für Delay, der die Ausführung von Subroutinen nicht behindert. Es geht mir dabei nicht um das Blinken einer LED, sondern um die exakte Taktung mit der void loop() wiederholt wird. hat hier jemand eine schlaue Idee void loop() { DateTime now = rtc.now(); // Delay-Ausgleich für den Countdown if (Timer == 0) { Timer = Countdown; } if (timeshift < 4) { timeshift++; } else { timeshift = 0; Timer--; } Temperatur = rtc.getTemperature(); Temperatur = (float)Temperatur; //Sonnenrichtungssensoren auslesen LDR_up = analogRead(A0) + 20; // Sensorkalibrierung LDR_west = analogRead(A2) + 45; // Sensorkalibrierung LDR_east = analogRead(A3); LDR_down = analogRead(A3); Gesamtwert = LDR_up + LDR_west + LDR_east + LDR_down; // Gesamtmenge Licht if (Helligkeitsglaettung > 0) { smooth_lumen(); } else { GM_Lumen = round(Gesamtwert / 10)*10; } //Zeitformatierung Countdown hours = floor(Timer/3600); minutes = floor(Timer/60-(hours*60)); seconds = floor(Timer-((hours*3600)+(minutes*60))); //Potiprozent berechnen Potentiometerwert = analogRead(A6); Potentiometerdifferenz = Potentiometerwert - Potentiometerminimum; Potentiometerproz = 50.0 / Potentiometermax * Potentiometerdifferenz; Potentiometeranz = 100 - (int)Potentiometerproz; // Hinweise zur Richtungssteuerung: // digitalWrite(RELAISX, HIGH); // LOW = nach Osten HIGH = nach Westen // digitalWrite(RELAISZ, LOW); // LOW = nach Oben / HIGH = nach Unten // digitalWrite(RELAIS_PowerX, LOW); // LOW = Power On / HIGH = Power off // digitalWrite(RELAIS_PowerZ, LOW); //LOW Power On / HIGH = Power off anemometer(); // Anemometer auswerten // Wetter- und Lichtabhängiger Algorithmus für die Solarsteuerung if (now.hour() == 3 && now.minute() == 0 && now.second() == 0) // Zeitpunkt für Korrektur der horizontalen 0-Position { angel_reset = 1; } if (Temperatur > Mindesttemperatur) { if (Windmaximum < rpm) { storm_protection(); } else if(angel >= -30 && angel_reset == 1) { angle_reset(); } else if (GM_Lumen < Mindesthelligkeit) {// zu wenig Licht - die Anlage soll in die Neutralstellung fahren neutral_position(); } else // Nachfuehrung im Normalbetrieb { solar_move(); } } // Anzeige für HD44780 2004 LCD (i2c) Display formatieren show_display(); delay(200); }