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

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

[复制链接]
anywill 提问时间:2016-10-26 22:31 /



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

收藏 2 评论9 发布时间:2016-10-26 22:31

举报

9个回答
anywill 回答时间:2016-10-26 22:34:20
库作者Simon Ford 微信截图_20161026223312.png
weigr 回答时间:2016-10-26 23:03:12
有机会弄弄
zengyi703-16313 回答时间:2016-10-27 08:06:09
支持一下。
笑鸟007 回答时间:2016-10-27 09:57:38
支持一下!!
xyx365 回答时间:2016-10-28 18:57:51
谢谢分享学习一下
一卡车龙眼仔z 回答时间:2017-11-11 10:25:36
666,原来Mbed还有直接控制舵机的函数
epochal 回答时间:2017-11-11 12:07:37
支持!!!
carmelo 回答时间:2018-11-19 14:46:06
Nicede 的帖子
单片机爱好者 回答时间:2020-6-24 20:07:44
有导出的keil工程吗? 需要一个STM32F103C8T6  的工程,自己导出来的编译错误太多了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版