• 360度舵机和180度舵机控制方法小结(转)


    转载:http://blog.csdn.net/u012223913/article/details/51242054

    首先先明确一点,360度舵机无法像180度舵机一样控制角度,它只能控制方向和速度。

    arduino的<servo.h>库提供两个函数控制舵机。write()writeMicroseconds();这两个函数都可以控制360/180这两种舵机。

    write()

     1 servo.write(x); //x->[0,180]; 

    360度舵机:

    通过x设定舵机的速度(0代表一个方向的全速运行,180代表另一个方向的全速运行,90则不动)。

     1 #include <Servo.h> 
     2 
     3 Servo myservo;
     4 
     5 void setup() 
     6 { 
     7   myservo.attach(9);
     8   myservo.write(90);  // 舵机不动
     9 } 
    10 
    11 void loop() 
    12 {} 

    180度舵机:

    通过x设定舵机舵盘的角度。

    #include <Servo.h> 
    
    Servo myservo;
    
    void setup() 
    { 
      myservo.attach(9);
      myservo.write(90);  // 在中间位置
    } 
    
    void loop() 
    {} 

    值得注意的是如果x不等于90,360度舵机会一直不停的转。而180度舵机在到达设定角度后会停下。

    writeMicroseconds()

     1 servo.writeMicroseconds(x) //x->[1000,2000] 

    360度舵机:

    这个函数对于360度舵机的作用就是write()函数的模拟版,[1000,2000]对应[0,180]。比如writeMicroseconds(1500)相当于write(90),舵机不动。

    180度舵机 :

    通过x设定角度,一般来说1000是完全逆时针旋转后的位置,2000是完全顺时针旋转的位置,1500在中间。

    注意有些制造商并不完全遵守这个标准,所以舵机经常会对700到2300之间的数值产生反应。实际数值可以自己试试。

     1 #include <Servo.h> 
     2 
     3 Servo myservo;
     4 
     5 void setup() 
     6 { 
     7   myservo.attach(9);
     8   myservo.writeMicroseconds(1500);  // 舵机设定为中间位置。
     9 } 
    10 
    11 void loop() 
    12 {}
  • 相关阅读:
    utf8.php
    common.php
    ubuntu 12.04 下 Vim 插件 YouCompleteMe 的安装
    Linux 获取文件夹下的所有文件
    poj 1659 Frogs' Neighborhood Havel-Hakimi定理 可简单图定理
    Huffman Coding 哈夫曼编码
    hdu 4778 Gems Fight! 博弈+状态dp+搜索
    print neatly 整齐打印 算法导论
    poj 2533 Longest Ordered Subsequence 最长递增子序列
    poj 3783 Balls 动态规划 100层楼投鸡蛋问题
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/6269629.html
Copyright © 2020-2023  润新知