基于Arduino主板的简易反应时间测试小游戏

基于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号串口,下同)会在某一时段亮起,之后玩家要尽可能快地再次按下按钮,红灯熄灭,程序会打印你的反应时间(即红灯亮起的时间),黄灯会再次亮起,等待下一次测试。

随便做着玩的,有需要的可以自取。

顺便测试一下视频卡片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值