《Arduino实战》——2.3 反应测试仪

简介:

本节书摘来自异步社区《Arduino实战》一书中的第2章,第2.3节,作者 【美】Martin Evans , Joshua Noble , Jordan Hochenbaum ,译者 况琪,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 反应测试仪

这是你在本章中最后一次电路修改。你要在电路中再添加两个LED,最好是一红一绿,它们被用作开始和停止指示灯。最初是红色LED点亮,当它熄灭且绿色LED点亮时,你要尽可能快地按下按钮,来让在前一节中搭建的LED序列暂停。反应速度处于平均水平的人,可以在序列有2个或者3个LED亮起时将其停止。

2.3.1 电路图

请看图2-10给出的电路图,注意新加入的两个LED是如何连接到Arduino的。绿色的LED6和红色的LED7已被添加到电路中,一起加入的还有两个220Ω的限流电阻,R7和R8。


screenshot

2.3.2 连接

图2-11展示了连接完成后的Arduino和面包板,已将两个新加的LED和两个电阻添加到了现有的电路中。

这就是本章最后完成的电路。下面让我们看一下本章的倒数第二个程序。


screenshot

2.3.3 测试反应速度的程序

下列代码清单给出了反应测试仪的程序,请将其仔细地输入一个新的程序文件中。

代码清单2.4 反应测试仪

screenshot
screenshot

randomSeed(analogRead(0));

传递给randomSeed的值取自未连接的0号模拟引脚的模拟输入值。由于电气噪声的影响,一个未连接的模拟引脚的输入值是不断变化的。

变量state用于控制程序逻辑,并且已经与按钮的状态绑定。第一次按下按钮时,会触发下列事件:原来的5个LED熄灭,红色的stopLed点亮,绿色的goLed熄灭。在一段随机的时间之后,stopLed熄灭,goLed点亮,并启动由原来的5个LED构成的序列,5个LED一个接一个地点亮。按下按钮会停止LED点亮的过程。再次按下按钮会使整个流程重新开始。

2.3.4 烧写和测试

将Arduino连接到USB电缆,确保你的程序已经被正确编译,然后将其写入到Arduino中。按下按钮试玩一下,看看你的反应速度有多快。你还可以跟别人比拼,看谁的反应速度是最快的。

你还可以在程序中再加入一些代码,让它用定时器更精确地记录反应时间。我们会在下一节中讲到这些。

相关文章
|
10月前
|
传感器 存储 缓存
Arduino学习笔记4
Arduino学习笔记4
145 0
|
10月前
|
传感器 存储 C语言
Arduino学习笔记1
Arduino学习笔记1
138 0
|
10月前
|
传感器 存储 运维
Arduino学习笔记2
Arduino学习笔记2
103 0
|
10月前
|
传感器 计算机视觉
Arduino学习笔记3
Arduino学习笔记3
|
10月前
|
传感器 安全 机器人
Arduino学习笔记5
Arduino学习笔记5
117 0