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

查看: 2166|回复: 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管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版