找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 8721|回复: 4

[RobotC]声音传感器

[复制链接]
发表于 2013-7-30 15:39:47 | 显示全部楼层 |阅读模式
话说我很久都没有发教程了,不知道大家都发飙了没有
废话不多说,上代码
QQ截图20130718100728.png
前面学了那么多知识,先试着读懂上面的代码
试着回答下面的问题
1、sensorSoundDB是什么意思,代表什么,有什么用
2、程序一开始为什么使用wait1Msec(1000)语句
DB大家都懂了,是声音的强度的单位,在这里规定声音传感器检测的声音强度以DB为单位
程序一开始使用等待语句是为了使程序稳定下来
把这两个问题弄清楚后就不难弄懂整段程序意思,机器人会执行什么动作
  1. #pragma config(Sensor, S2,     soundSensor,         sensorSoundDB)
  2. #pragma config(Sensor, S1,     touchSensor,         sensorTouch)
  3. task main()
  4. {
  5.         ClearTimer(T2);
  6.         while(time1[T2]<5000)
  7.         {
  8.                 motor[motorA]=SensorValue[soundSensor];
  9.                 motor[motorC]=SensorValue[soundSensor];

  10.         }
  11.         wait1Msec(1000);
  12.         while(time1[T2]>5000)
  13.         {

  14.                 if(SensorValue[touchSensor]==0)
  15.                 {
  16.                         motor[motorA]=100;
  17.                         motor[motorC]=100;
  18.                 }
  19.                 if(SensorValue[touchSensor]==1)
  20.                 {
  21.                         motor[motorA]=0;
  22.                         motor[motorC]=0;
  23.                         if(SensorValue[touchSensor]==0)
  24.                         {
  25.                                 StopAllTasks();
  26.                         }
  27.                 }

  28.         }

  29. }
复制代码
上面是一段代码,复制到RobotC的命令栏,然后在把他整齐的排列,你就知道整段程序的意思
这里面要说的是time1[T2]
表示 第二个时间,是以1s为单位的时间
还有就是StopAllTasks();语句
表示停止所有函数任务
试着把它烧到NXT里,执行任务
有助于理解语句

做个随堂测试,只用发代码上来就好啦
使用声音传感器(S2,单位为Db),以声音的大小控制马达的功率

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-7-31 22:25:11 | 显示全部楼层
没有发飙,耐心等待。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-9-9 02:47:05 | 显示全部楼层
这是不是说5000ms内声音越大速度越快,5000ms外如果触碰传感器没碰到则按功率100前进?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-9-18 21:14:44 | 显示全部楼层
063101444 发表于 2013-9-9 02:47
这是不是说5000ms内声音越大速度越快,5000ms外如果触碰传感器没碰到则按功率100前进?

理论上是这样子的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2017-2-21 21:18:12 | 显示全部楼层
  1. #pragma config(Sensor, S2,     soundSensor,         sensorSoundDB)
  2. task main()
  3. {
  4. wait1Msec(1000);       
  5. ClearTimer(T2);
  6. while(time1[T2]<30000)
  7. {
  8. int DB;
  9. DB=SensorValue(soundSensor);
  10. motor[motorB]=DB;
  11. motor[motorC]=DB;
  12. }


  13. }
复制代码
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-15 15:33 , Processed in 0.099864 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表