/*
Es soll eine Zeitmessung zwischen dem Drücken des grünen Tasters und dem Erreichen eines Schwellwertes gemessen Werden.
Der Schwellwert wird hier durch einen Schalter dargestellt. Ist dieser eingeschaltet, so ist der Schwellwert überschritten.
Während die Messung läuft, soll die LED leuchten.
*/
bool lastStartButtonState = LOW;
bool startButtonState = LOW;
bool lastStopButtonState = LOW;
bool stopButtonState = LOW;
bool timeMeasurement = LOW;
const int startButtonPin = 2;
const int stopButtonPin = 3;
const int ledPin = A0;
int startTime=0;
int deltaTime=0;
void setup() {
Serial.begin(9600);
Serial.println("Zeitmessung");
pinMode(startButtonPin, INPUT);
pinMode(stopButtonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
startButtonState = digitalRead(startButtonPin);
stopButtonState = digitalRead(stopButtonPin);
if (lastStartButtonState==0 && startButtonState==1 && stopButtonState==0 && timeMeasurement==0){
startTime=millis();
timeMeasurement=1;
//Serial.println("Started measuring");
}
if (stopButtonState==1 && timeMeasurement==1){
deltaTime=millis()-startTime;
Serial.print(deltaTime);
Serial.print(" ms\n");
//Serial.println("stopped measuring");
timeMeasurement=0;
}
if(timeMeasurement==1){
digitalWrite(ledPin, HIGH);
}
if(timeMeasurement==0){
digitalWrite(ledPin, LOW);
}
lastStartButtonState = startButtonState;
lastStopButtonState = stopButtonState;
delay(20);
}