舵机是我们在控制领域高频率使用的器件,尤其对于arduino玩家不可或缺。简单的使用方法我们在前面的博文中都已经做过介绍。

常规使用

一般控制

一般步骤为包涵一个servo.h的头文件,然后绑定端口,写入转动角就可以了。大体代码如下:


#include <Servo.h>Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boardsint pos = 0;    // variable to store the servo positionvoid setup() {myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}void loop() {for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees// in steps of 1 degreemyservo.write(pos);              // tell servo to go to position in variable 'pos'delay(15);                       // waits 15ms for the servo to reach the position}for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degreesmyservo.write(pos);              // tell servo to go to position in variable 'pos'delay(15);                       // waits 15ms for the servo to reach the position}
}

很简单,在loop中使用了两个for循环,让舵机分180步来回转动。

精细控制

上面的程序对于一般的需求来说,已经足够了。但servo.h还提供了进一步精细控制的两个函数
1、writeMicroseconds(sec)
这个函数需要配合servo.attach(pin, min, max)来使用,它的参数是直接写入时间宽度。
2、Servo.read()
如果只是写入一个角度,那么我们可能无法知道舵机实际到达的位置,这个时候read就能够解决这个问题。
代码如下:

#include <Servo.h>
Servo mysrv;void setup() {// put your setup code here, to run once:Serial.begin(9600);mysrv.attach(9,500,2500);Serial.println(mysrv.read());
}void loop() {// put your main code here, to run repeatedly:mysrv.write(0);mysrv.writeMicroseconds(1000);delay(500);Serial.println(mysrv.read());mysrv.write(1800);delay(500);Serial.println(mysrv.read());}

了解servo.h

打开这个头文件,我们可以看到许多的定义,那么也就对上面的调用更加清晰了。这个文件在

当然,你也可以直接在电脑中搜索一下,找到它。


实际,我们发现,在attach多参数的函数中就是使用的PWM宽度来控制的旋转角度。
那么既然如此,我们其实也可以自己来写自己的servo头文件,来满足我们自己的要求。

我们可以采用很朴实的方法,pinMod()来控制输入输出,用digitalRead与digitalWrite读写,当然配合延时就可以达到控制PWM的宽度了。
感兴趣的玩家可以自己试试。后续博文继续对舵机脉宽进行探讨。

深入了解arduino舵机控制库文件Servo.h相关推荐

  1. Arduino—舵机控制

    舵机是一种位置伺服的驱动器,主要是由外壳.电路板.无核心马达.齿轮与位置检测器所构成. 工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信 ...

  2. 手把手教你看懂并理解Arduino PID控制库——调参改变

    2019独角兽企业重金招聘Python工程师标准>>> 引子 本文将分析<手把手教你看懂并理解Arduino PID控制库>中第三个问题:PID控制参数突变对系统的影响. ...

  3. Arduino舵机控制测试

    舵机是机器人.遥控玩具等领域不可或缺的一个控制器组件,主要用于位置.角度等方面的控制与定位. 其机构主要是由外壳.电路板.无核心马达.齿轮与位置检测器所构成.其工作原理是由接收机或者单片机发出信号给舵 ...

  4. 手把手教你看懂并理解Arduino PID控制库——引子

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Lib ...

  5. C语言库文件ctype.h中重要的库函数

    C Primer Plus第七章分支跳转章节中,提到了ctype.h头文件中的一些用于判断字符类型的库函数接口. isalnum() 字母数字 isalpha() 字母 isblank() 标准的空白 ...

  6. C/C++ 数学库文件 (math.h)

    目录 1.三角函数 Trigonometric functions 1.1. cos() 函数 1.2 sin() 正弦函数 1.3. tan() 正切函数 1.4. acos() 反余弦函数 1.5 ...

  7. Arduino学习之二——舵机控制

    舵机是一种电机,它使用一个反馈系统来控制电机的位置.大多数舵机是可以最大旋转180°的.也有一些能转更大角度,甚至360°.舵机比较多的用于对角度有要求的场合,比如摄像头,智能小车前置探测器,需要在某 ...

  8. Arduino教程 模拟输入输出以及电机和舵机控制

    一.模拟输入输出 0x01.输入: Arduino采用analogRead(analogInPin)函数读取0~5V的模拟信号,返回0~1023的整数 如:读入为500,那么测得电压为5×(500/1 ...

  9. arduino的180度舵机与360度舵机控制

    文章目录 前言 一.180度舵机 二.360度舵机 三.区别于应用 1.区别 2.应用 总结 前言 许多时候我们都会用到舵机,目前市面上的舵机大致分为两种,一种是180度舵机,另一种是360度舵机,下 ...

最新文章

  1. 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)...
  2. 在Windows上部署AMP(Apache2.4+MySQL8.0+PHP7.2)
  3. Hibernate 事物隔离级别 深入探究
  4. 【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算
  5. cdr 表格自动填充文字_做平面广告设计,AI和CDR如何选择?
  6. CoreException: Could not get the value for parameter compilerId for plugin execution default-compile
  7. 【java笔记】模拟B/S服务器
  8. 如何得到DataTable的列名
  9. 科技信息它们叫嚣:没有我们,谈什么iPhone8!
  10. Rockchip | Rockchip固件升级工具
  11. 学习笔记二:关于自激振荡
  12. Java线上兼职家教_基于ssh/bs/java/asp.net/php/web的兼职家教网站
  13. java独步寻花,江畔独步寻花
  14. Linux-无密码访问、远程拷贝、无密码登录
  15. win10 系统屏幕黑屏只有鼠标光标在动,问题解决
  16. Python全栈笔记(练习题,持续更新)
  17. 树莓派wifi探针_树莓派重新开始|搭建博客、网盘、流媒体与离线下载服务
  18. 第三方SDK编写文档 - iOS
  19. 服务器里面的文件复制不出来,云服务器 拷贝文件进去弄不了
  20. rust和gta5哪个吃配置_10款游戏体感嗨翻天的Steam大作,GTA5险无缘榜单,吃鸡仅排第三...

热门文章

  1. windows定时对指定文件夹压缩然后存放在指定的文件夹下
  2. ajax的send方法参数格式,Ajax中send参数
  3. HTTP原理/post和get
  4. 华为系统更新后通知栏变大了_华为手机下滑通知栏不见了
  5. 马云创业经历『转载』
  6. 英特尔服务器芯片组路线图,10纳米来了!英特尔服务器处理器线路图曝光!
  7. rabbitmq的启动命令
  8. 【Python】switch语法你真的懂吗
  9. 事业单位计算机技术岗位中级职称,事业单位技术岗能从11级直接转9级吗?
  10. 学习Oracle日记(九)--ORACLE 创建函数