Arduino reaktionstid testare (3 / 4 steg)
Steg 3: Ladda upp skissen
int switchPin = 2;
int ledPin = 13.
booleska lastButton = låg;
booleska currentButton = låg;
booleska igång = false;
booleska timer = false;
lång starttid;
långa endTime;
långa randomTime;
float elapsedTime;
void setup()
{
pinMode (switchPin, ingång);
pinMode (ledPin, produktionen);
Serial.BEGIN(9600);
}
Boolean debounce(boolean last)
{
booleska ström = digitalRead(switchPin);
om (sista! = nuvarande)
{
Delay(5);
Nuvarande = digitalRead(switchPin);
}
returnera aktuell;
}
void loop()
{
currentButton = debounce(lastButton);
om (lastButton == låg & & currentButton == hög)
{
Började =! Började;
lastButton = hög;
}
lastButton = currentButton;
om (igång == true & & timer == false)
{
Random();
timer = sant;
}
om (igång == false & & timer == true)
{
Stop();
timer = false;
}
}
void Random()
{
randomTime = random(4,10);
randomTime = randomTime * 1000;
digitalWrite (ledPin, hög);
Delay(100);
digitalWrite (ledPin, låg);
Delay(randomTime);
Start();
}
void Start() {
startTime = millis();
digitalWrite (ledPin, hög);
}
void Stop() {
endTime = millis();
elapsedTime = (endTime - startTime) + 5;
elapsedTime = elapsedTime/1000;
Serial.Print ("tid sekunder:");
Serial.println(elapsedTime);
digitalWrite (ledPin, låg);
}