Ich bräuchte bitte mal wieder etwas Unterstützung bei einer Sache.
Welche Funktion oder besser gesagt welchen Befehl benutzt man für die Timer/Countdownfunktion?
Gibt es sowas oder ist das dann immer gleich mit einem kompletten Sketch verbunden?
Folgendes habe ich vor:
Ich lese mit einem CanShield die km/h aus dem Fahrzeug aus. Wenn ein bestimmter km/h Wert erreicht wurde, möchte ich diesen gerne 2 Sekunden lang speichern und mit dem erneut ausgelesenen Wert nach den 2 Sekunden vergleichen lassen.
Ebenso würde ich gerne wenn ein bestimmter km/h Wert erreicht ist 5 Sekunden verstreichen lassen bis eine Aktion ausgeführt wird.
Ich denke das beschreibt es ganz gut was der Timer/Countdown für eine Aufgabe hat.
Ist das so überhaupt realisierbar und wenn ja, wie würde man das Speicherarm angehen?
Ich bedanke mich Vorab und freue mich auf Hilfe eurerseits
@gregorss
Ok, dann versuche ich es noch besser zu beschreiben.
Ich lese mit einem CanShield die Geschwindigkeit aus einem Fahrzeug aus (funktioniert schon)
Mit der Geschwindigkeit möchte ich gerne folgendes machen.
Ich fahre z.B. 100 km/h (dieser Wert soll nun 2 Sekunden lang gespeichert werden)
Nach den 2 Sekunden fahre ich meinetwegen nur noch 70 km/h.
Nun sollen diese beiden Werte V1 und v2 für eine Berechnung der Bremsverzögerung genutzt werden.
Und das immer und immer wieder.
Ebenfalls soll beispielsweise bei einer Geschwindigkeit von 120 km/h ein Countdown von 5 Sekunden ablaufen, bevor eine andere Aktion ausgeführt wird.
Ich habe mich mal im Playground umgesehen und das hier gefunden, damit (wenn ich das richtig verstehe) sollte das doch funktionieren, oder?
//Flash two LEDs at different rates using Simon Monk's Timer library
//http://www.doctormonk.com/2012/01/arduino-timer-library.html
//
//Jack Christensen 30Sep2013
//
//Beerware license: Free for any and all purposes, but if you find it
//useful AND we actually meet someday, you can buy me a beer!
#include "Timer.h" //http://github.com/JChristensen/Timer
const int LED1 = 8; //connect one LED to this pin (with appropriate current-limiting resistor of course)
const int LED2 = 10; //connect another LED to this pin (don't forget the resistor)
const unsigned long PERIOD1 = 1000; //one second
const unsigned long PERIOD2 = 500; //ten seconds
Timer t; //instantiate the timer object
void setup(void)
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
t.oscillate(LED1, PERIOD1, HIGH);
t.oscillate(LED2, PERIOD2, HIGH);
}
void loop(void)
{
t.update();
}
Bei mir Windows IDE 1.6.5 (integrierte Entwicklungsumgebung, im Fenster steht "Arduino 1.6.5").
Datei/Beispiele/02.Digital/BlinkWithoutDelay zeigt die Verwendung der Funktion millis(). Durch den Vergleich (Subtraktion) des aktuellen Wertes von millis() mit einem alten Wert kann die vergangene Zeit bestimmt werden. Steht ja schon in #4.
Hatte die Tage viel um die Ohren und bin jetzt wieder dazu gekommen zu schauen !
Vielen Dank für die Tipps, ich werde mir das mit dem BlinkWithoutDelay anschauen und berichten ob ich zurecht komme