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

2.4 反应速度计:谁真正拥有最快的反应时间

Arduino实战
在本章的最后一个程序中,会使用一个定时器更精确地测定你的反应时间。电路可以保持不变,只需要对程序做一些修改。

2.4.1 测定反应速度的程序

下列代码清单给出了新的反应速度计的程序,你可以修改之前的程序,也可以新建一个程序文件然后输入以下代码。


在这个程序中,添加了一个定时器用来准确地测定你的反应时间。当时间被测定后,数据会通过串口发送出来。串口在程序的setup函数中使用下列命令C:UsersAdministratorAppDataRoamingTencentUsers330842669QQWinTempRichOle2$@2VSST70VFGY$8EWIA0{7.png启动:

Serial.begin(9600);

数字9600是波特率,也就是Arduino发送数据的速率。为了能解码这些数据,上位机程序(在这个例子里是串口监视器)的波特率设置必须要与Arduino的保持一致。

当需要输出数据时,你可以使用两个函数:Serial.printC:UsersAdministratorAppDataRoamingTencentUsers330842669QQWinTempRichOle[G)49Q0ZES093B)](8Y}TKV.png和Serial.println图像说明文字。这两个函数唯一的区别在于,Serial.println函数会在输出字符串的结尾添加一个回车换行符。

2.4.2 烧写和测试

确保程序已经正确编译,然后将其烧写到Arduino。跟之前一样,用按钮来控制反应速度计的开始和停止。 图2-12展示了最终完成并且正在工作中的作品。

为了看到反应时间,需要使用Arduino IDE中的串口监视器,请确保波特率已经设置为9600。图2-13展示了一些记录到的反应时间。


显示这些反应时间有助于平息你跟你朋友之间的争论!

《Arduino实战》——2.4 反应速度计:谁真正拥有最快的反应时间的更多相关文章

  1. 《Arduino实战》——3.4 小结

    本节书摘来异步社区<Arduino实战>一书中的第3章,第3.4节,作者:[美]Martin Evans ,Joshua Noble ,Jordan Hochenbaum,更多章节内容可以 ...

  2. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  3. Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记

    极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...

  4. 强化学习实战 | 表格型Q-Learning玩井字棋(四)游戏时间

    在 强化学习实战 | 表格型Q-Learning玩井字棋(三)优化,优化 中,我们经过优化和训练,得到了一个还不错的Q表格,这一节我们将用pygame实现一个有人机对战,机机对战和作弊功能的井字棋游戏 ...

  5. 原创QQ影音DLL劫持漏洞+动画实战教程

    1.什么是DLL DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成 ...

  6. Arduino单片机使用和开发问题记录

    1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上查遇到这个问题的人比较多,有说驱动问题的,有 ...

  7. Annikken Andee–Arduino与Android间的简易连接

    一个Arduino的兼容板,允许你显示并控制来自Android设备的Arduino应用.无需Anroid APP开发. 点击:观看视频 什么是Annikken Andee? Annikken Ande ...

  8. Arduino单片机使用和开发问题记录(转)

    源:Arduino单片机使用和开发问题记录 1.将程序上传到板子时Arduino IDE提示“avrdude: stk500_getsync(): not in sync: resp=0x00” 网上 ...

  9. Asp.NET Core2.0 项目实战入门视频课程_完整版

    END OR START? 看到这个标题,你开不开心,激不激动呢? 没错,.net core的入门课程已经完毕了.52ABP.School项目从11月19日,第一章视频的试录制,到今天完整版出炉,离不 ...

随机推荐

  1. HDU6024:Building Shops(简单DP)

    Building Shops Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. 分治与递归-Fibonacci数列兔子问题

    裴波那契(Fibonacci leonardo,约1170-1250)是意大利著名数学家.在他的著作<算盘书>中许多有趣的问题,最富成功的问题是著名的“兔子繁殖问题”: 如果每对兔子每月繁 ...

  3. 【Linux】系统管理

    软件包管理 一 软件包分类 源码包: .tar.gz .tar.bz2 二进制包: .rpm 二 二进制包安装 (一) rpm命令手动管理二进制包 (挂载光盘) 1 包名-版本号-发布次数-适合lin ...

  4. MyBatis(七):使用注解替代xml文件

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  5. "三号标题"组件:<h3> —— 快应用组件库H-UI

     <import name="h3" src="../Common/ui/h-ui/text/c_h3"></import> < ...

  6. Markdown自动生成目录

    Markdown自动生成目录 使用npm语法生成 1.安装npm 2.安装doctoc插件 3.执行生成 参考 Markdown自动生成目录 使用npm语法生成 1.安装npm 我的系统是deepin ...

  7. 关于node中两个模块相互引用却不会死循环的问题

    关于node中两个模块相互引用却不会死循环的问题 node中是通过require来导入加载模块的,require有两个作用: 1.加载文件模块并执行里面的代码 2.拿到被加载文件模块导出的接口对象 现 ...

  8. 怎么高效学习python?其实只需要这个方法,快速掌握不叫事儿

    很多人想学python,并且希望能快速高效的学习python,但一直都没有找到合适的方法,下面谈一下我的方法. 首先,高效入门python 怎么高效学习python?想要高效,就要先搞清楚你这个阶段, ...

  9. Jmeter命令行执行并生成HTML报告

    前提:准备好jmeter脚本,找到jmeter配置文件查看生成的日志格式是否为csv,如果不是请改为csv 注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本1.使用命令行执行脚 ...

  10. 计算机视觉中的对象检测,Python用几段代码就能实现

    目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection)应用非常广泛,比如自动驾驶.视频监控.工业质检.医疗诊断等 ...