你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2161|回复: 9

ARM®mbed OS入门开发 按键控制舵机旋转

[复制链接]

61

主题

1071

回帖

17

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2016-10-26 22:31:01 | 显示全部楼层 |阅读模式



ARM®mbed OS入门开发  按键控制舵机旋转


舵机是一种位置带齿轮减速的伺服驱动器,
其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,
将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,
再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。
适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,
通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。一般舵机旋转的角度范围是0 度到180 度。
舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,
标准PWM(脉冲宽度调制)信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms到2ms 之间,
但是,事实上脉宽可由0.5ms 到2.5ms 之间,脉宽和舵机的转角0°~180°相对应。
9G2.jpg
9G3.jpg


舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。
以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
这只是一种参考数值,具体的参数,请参见舵机的技术参数。小型舵机的工作电压一般为4.8V或6V,转速也不是很快,
一般为0.22/60度或0.18/60度,所以假如你更改角度控制脉冲的宽度太快时,舵机可能反应不过来。
如果需要更快速的反应,就需要更高的转速了。
本例程用的舵机型号为TOWER PRO  SG90的三根线分别用棕、红、橙三种颜色进行区分,
棕色为接地线,红色为电源正极线,橙色为信号线。

本程序中将信号线接到D9引脚,模拟输出PWM信号。
9G1.jpg
//mbed+nucleo070
//按键控制舵机左右转,复位键舵机复位
#include "mbed.h"
#include "Servo.h"//mbed里simen的舵机库

Servo myservo(D9);//舵机控制引脚

DigitalOut myled(LED1);
DigitalOut myled1(LED2);
DigitalIn pb(USER_BUTTON);//用户键按下左转
DigitalIn pb1(D10);       //另一键按下右转,照片无此键
int button1=0;
int button2=0;
float servo=0;

// SPST Pushbutton demo using internal PullUp function
// no external PullUp resistor needed
// Pushbutton from P8 to GND.
int main()
{
      myservo=0;
      pb.mode(PullUp);
      pb1.mode(PullUp);
   while(1)
    {
     myled = pb;
     myled1 = pb1;
       if(pb==0)
        {
          myservo = myservo+0.1;
          wait(0.2);
        }
      else if(pb1==0)
        {
         myservo=myservo-0.1;
         wait(0.2);
        }
    }
}

377555531510836691.jpg

回复

使用道具 举报

61

主题

1071

回帖

17

蝴蝶豆

论坛元老

最后登录
2020-12-9
 楼主| 发表于 2016-10-26 22:34:20 | 显示全部楼层
库作者Simon Ford 微信截图_20161026223312.png
回复 支持 反对

使用道具 举报

0

主题

134

回帖

0

蝴蝶豆

初级会员

最后登录
2017-7-1
发表于 2016-10-26 23:03:12 | 显示全部楼层
有机会弄弄
回复 支持 反对

使用道具 举报

4

主题

484

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-8-12
发表于 2016-10-27 08:06:09 | 显示全部楼层
支持一下。
回复 支持 反对

使用道具 举报

1

主题

304

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-9-1
发表于 2016-10-27 09:57:38 | 显示全部楼层
支持一下!!
回复 支持 反对

使用道具 举报

0

主题

159

回帖

0

蝴蝶豆

高级会员

最后登录
2017-3-9
发表于 2016-10-28 18:57:51 | 显示全部楼层
谢谢分享学习一下
回复 支持 反对

使用道具 举报

1

主题

27

回帖

0

蝴蝶豆

初级会员

最后登录
2017-12-9
发表于 2017-11-11 10:25:36 | 显示全部楼层
666,原来Mbed还有直接控制舵机的函数
回复 支持 反对

使用道具 举报

0

主题

2175

回帖

3

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2017-11-11 12:07:37 | 显示全部楼层
支持!!!
回复 支持 反对

使用道具 举报

0

主题

9

回帖

0

蝴蝶豆

初级会员

最后登录
2020-10-10
发表于 2018-11-19 14:46:06 | 显示全部楼层
Nicede 的帖子
回复 支持 反对

使用道具 举报

1

主题

126

回帖

14

蝴蝶豆

高级会员

最后登录
2020-9-28
发表于 2020-6-24 20:07:44 | 显示全部楼层
有导出的keil工程吗? 需要一个STM32F103C8T6  的工程,自己导出来的编译错误太多了
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版