基于Arduino主板的反应时间测试小游戏
//Arduino IDE
//稍微解释一下volatile, 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。
volatile int pretime;
volatile float actime;
void setup()
{
pinMode(4, OUTPUT);
pinMode(A1, INPUT);
pretime = random(500, 5000);
actime = 0;
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while (true)
{
digitalWrite(4,HIGH);
if (digitalRead(A1))
{
digitalWrite(4,LOW);
pretime = random(500, 5000);
delay(pretime);
digitalWrite(3,HIGH);
actime = 0;
while (true)
{
if (digitalRead(A1))
{
digitalWrite(3,LOW);
break;
}
else
{
delay(1);
actime = actime + 0.001;
}
}
Serial.println(String("你的反应时间为:") + String(actime) + String(" 秒."));
delay(1000);
}
}
}
一个基于Arduino主板的简易反应时间测试小游戏,
开始时,黄灯(4号串口,下同)常开,按下按钮时黄定熄灭,红灯(3号串口,下同)会在某一时段亮起,之后玩家要尽可能快地再次按下按钮,红灯熄灭,程序会打印你的反应时间(即红灯亮起的时间),黄灯会再次亮起,等待下一次测试。
随便做着玩的,有需要的可以自取。
顺便测试一下视频卡片。