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
Zeitmessung
08.02.2019, 08:24 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2019 11:33 von Bitklopfer.)
Beitrag #1
Zeitmessung
Hallo liebe Community,

ich habe mir jetzt endlich auch ein Arduino gekauft und arbeite mich ins Programmieren ein. Bin also noch neu hier im ForumWink

Ich blicke da noch nicht so durch. Ich möchte mit einem Schalter eine Led zum Leuchten bringen und die Zeit messen vom ersten Leuchten bis z.B. ich den Schalter 10 Mal gedrückte habe.
Das mit dem Leuchten bekomme ich hin aber die Zeitmessung verstehe ich nicht.

Das ist mein Programmcode für nur um die Led zum Leuchten zu bekommen. Aber wo füge ich da die Zeitmessung ein ?
Code:
int ledPin = 13;
int buttonPin = 2;
int tasterstatus=0;

void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(ledPin, HIGH);     //..dann soll die LED leuchten..
delay(200);
digitalWrite(ledPin, LOW);    
}

void loop()
{
tasterstatus=digitalRead(buttonPin);
if (tasterstatus == HIGH)         //Verarbeitung: Wenn der taster gedrückt ist (Das
                                //Spannungssignal ist hoch)..
{                                 
digitalWrite(ledPin, HIGH);       //..dann soll die LED leuchten..
delay(5000);                                //..und zwar für für 5 Sekunden (5000 Millisekunden).
digitalWrite(ledPin, LOW);        //danach soll die LED aus sein.
}                                               
else                                             // ...ansonsten...
{                                             //Programmabschnitt des else-Befehls öffnen
digitalWrite(ledPin, LOW);            // ...soll die LED aus sein.
}
}
...man klicke im Editor zuerst auf "#" und schließe dann mit "Close Tags" ab. lgbk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2019, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2019 10:42 von Chopp.)
Beitrag #2
RE: Zeitmessung
Hallo,
Schön das du ein neues Hobby hast.
Aber zuerst solltest du dir merken einen Sketch
in Code Tags einzubetten, damit man es hier besser lesen kann.
Wie das geht steht hier.

Als nächstes solltest du dir die Code Referenz runterladen und durchlesen.
Die ist ganz oben oder auch hier.

Jetzt zu deinen Problem:
Du benutzt delay, ist manchmal egal, aber meistens nicht gut.
Bei delay wartet der Controller diese Zeit ab und macht einfach nichts.
Also Zeit messen kannst du in deiner delay Zeit nicht.
Was du brauchst ist millis. Ich finde den Beitrag von Arne am besten zu verstehen.
millis(), das unbekannte Wesen

Du brauchst praktisch 2 Zustandsvariablen.
Eine die erkennt ob die LED an ist um die Startzeit zu merken,
und eine die deinen Taster zählt damit die Zeit beim 10 mal drücken stoppt.
Aber vorsicht, ein Taster muß entprellt werden, sonst zählt der mehrmals.
Ist also ein Fallstrick für Anfänger.
Gruß, Markus

Edit: Hab Quatsch erzählt.
Du brauchst 3 Variablen.
Eine um sich die Startzeit zu merken wenn die LED an geht,
Eine die den Taster zählt,
Und eine die sich die Endzeit merkt.
Dann brauchst du nur die Endzeit - Startzeit rechnen, und schon hast du die Leuchtdauer.
Gruß, Markus ( Bin noch nicht wach, hab Spätschicht )

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2019, 15:08
Beitrag #3
RE: Zeitmessung
Danke für die schnelle Antwort, ich werde das sobald wie möglich durcharbeitenWink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler bei Zeitmessung Fox 15 2.545 24.05.2017 09:19
Letzter Beitrag: SkobyMobil

Gehe zu:


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