关于舵机运行时间一个小问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5842|回复: 6

[已解决] 关于舵机运行时间一个小问题

[复制链接]
发表于 2013-5-21 12:47 | 显示全部楼层 |阅读模式
本帖最后由 chylove 于 2013-5-22 18:42 编辑

    麻烦大家看一下:
    例如一个程序:
    servo函数库定义、初始化省略。
    int run()
    {
       for(i=0;i<=180;i++)
      {
        int pos1=map(i,0,180,50,60);
        int pos2=map(i,0,180,60,50);
        int pos3=map(i,0,180,50,60);
        servo1.write(pos1);
        servo2.write(pos2);
        servo3.write(pos3);
        delay(5);
      }
    }
    void loop()
    {
      run();
    }
  
     请问在run函数内每个舵机是多长时间写入一次角度。忽略map的运行时间?是20+5=25ms还是20x3+5=65ms?
     跪求各位大哥大姐指教。。。毕业论文马上要交了,要处理一些数据,麻烦大家帮帮忙。不胜感激!!
发表于 2013-5-21 14:02 | 显示全部楼层
run()前后各读取一次系统时间,然后相减,串口输出这个数据,就是运行一次的时间了。
求人不如自己想办法的。
 楼主| 发表于 2013-5-21 15:25 | 显示全部楼层
i7456 发表于 2013-5-21 14:02
run()前后各读取一次系统时间,然后相减,串口输出这个数据,就是运行一次的时间了。
求人不如自己想办法的 ...

不知道如何读取系统时间
发表于 2013-5-21 17:07 | 显示全部楼层
chylove 发表于 2013-5-21 15:25
不知道如何读取系统时间
http://arduino.cc/en/Reference/Millis

http://arduino.cc/en/Reference/HomePage
这里的其他函数,有时间的话,都好好看看吧
 楼主| 发表于 2013-5-21 18:39 | 显示全部楼层
i7456 发表于 2013-5-21 17:07
http://arduino.cc/en/Reference/Millis

http://arduino.cc/en/Reference/HomePage

真的谢谢了!!
 楼主| 发表于 2013-5-21 20:37 | 显示全部楼层
本帖最后由 chylove 于 2013-5-21 20:50 编辑
chylove 发表于 2013-5-21 18:39
真的谢谢了!!

我试了一下,我发现串口传输数据要花费大量的时间,其中一个例子就是,我在调试的过程中要画出舵机的运行曲线,我用了Serial chart这个串口小工具,利用Serial.print(pos1,DEC)等语句将数据串口输出,从而绘制曲线,但这时我发现机器人的总体运行速度大大降低,如果把串口输出语句去掉,机器人的移动速度就会大大提升。可能是我的串口数据量太大了吧。所以说这种方法还是有一定的局限性,我需要的是理论上的时间。
发表于 2013-5-22 09:02 | 显示全部楼层
chylove 发表于 2013-5-21 20:37
我试了一下,我发现串口传输数据要花费大量的时间,其中一个例子就是,我在调试的过程中要画出舵机的运行 ...

既然你只是需要知道个时间,让串口输出运行需要的时间这个功能,只运行1次就好了,没必要每个循环都运行一次。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 05:31 , Processed in 0.069185 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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