舵机的控制方法其实和摩登7学过的直流减速电机的控制方法是很相似的。摩登7都采 用PWM 信号来控制它们,但 PWM 信号的作用又有所不同。控制舵机所使用的PWM 信号是有些特殊的,它的周期是20ms, 脉冲的宽度从1~2ms 秒之间,脉冲的宽度就对应 了电机从0°~180°的不同角度。摩登7希望舵机转动到哪个角度,就用主控板发出那个角 度所对应占空比的PWM 信号就可以了。舵机的PWM 控制如图11-3所示。当然,在此 之前,舵机肯定要连接到主控板上有PWM 功能的端口才行。
了解这些原理后,下一个问题自然是:该如何编写程序让主控板能够控制舵机的运 动呢?其实也没那么复杂,摩登7的Arduino 中天然就有了舵机控制的功能,它自带了一个 用于控制舵机的“库”。只要用它生成一个“舵机对象”,然后使用“舵机对象”的函数就行 了。至于什么是“库”、什么是“对象”,就属于C 语言中比较高J的内容了。摩登7目前在 使用舵机时只要掌握它们的使用方法就足够了。下面是一段Z简单的应用“舵机库”控制 舵机运动的程序 。
#include
const int ServoPin=9; Servo myServo;
void setup(){
myServo.attach(ServoPin);
void loop(){
myServo.write(0);
delay(500);
//用这个语句引人舵机库
//选用有PWM功能的9号端口作为舵机端口 //创建一个叫 myServ o 的舵机对象
//将舵机对象和端口绑定起来
//让舵机转动到0°的位置
//等待一段时间让舵机转动到位
myServo.write(180); delay(500);
//让舵机转动到180°的位置
//等待一段时间让舵机转动到位
}
在这个程序中,摩登7把舵机插到主控制板的9号端口上,然后让它在0°~180°之间不 停地反复运动。同学们以后自己使用舵机时,只要将舵机插到任何一个有PWM 功能的 端口上,然后将上面程序中的myServo 改为你选定的名字,再之后就可以用write 函数照 猫画虎地控制舵机的位置了。
![]() |
| 机器人底盘 Disinfection Robot 消毒机器人 讲解机器人 迎宾机器人 移动机器人底盘 商用机器人 智能垃圾站 智能服务机器人 大屏机器人 雾化消毒机器人 展厅机器人 服务机器人底盘 具身智能教育机器人 智能配送机器人 导览机器人 |